So I don't have working code yet, however I am trying to avoid spending a lot of time going in the wrong direction.
I have a small 5 button simple board that I want to read as part of an Interrupt. However, because of the limited number of pins on the MKR1010 (not a design flaw, just me with big dreams), want to read my buttons with a single analog line configuring the buttons as a voltage ladder. 10K between each button. This image shows only 4 buttons, but the concept is the same and the code works using analogRead.

This is my starting point...
If my fellow Arduino creators could take a look and let me know if there are any anticipated problems, especially with the Interrupt handling. I'm not sure how much change on incoming analog signal is needed to trigger the ISR.
//How to read five buttons with one analog interrupt pin
int interruptSignal = 16; //pin A1 on MKR 1010
//keys pressed provide a value based on five buttons and resistors in series (10K)
//each key will produce a different value. Below is the upper/lower limits to that
//expected key value. Will result in KeyPressed equalling 1,2,3,4 or 5
int minKeyVal[5]={165,197,250,335,505};
int maxKeyVal[5]={170,203,255,340,510};
//defining variables used by the interrupt function
volatile int keyVal; //the value read on A1
volatile int keyPressed; //the button ID calculated from keyVal
//=================================================================
void setup() {
keyPressed = 0;
//Attach the interrupt:
//how high does the analog signal have to go to trigger the IRS?
//is an analog comparator with AREF using AR_INTERNAL1V0 somehow a solution?
attachInterrupt(interruptSignal, buttonPress, CHANGE);
//when no buttons pressed, the value on A1 is zero
}
//=================================================================
void loop() {
if (keyPressed > 0) {
noInterrupts();
mainProcessing(keyPressed); //the main processing code is contained here
keyPressed = 0;
interrupts();
} else {
idleProcessing();
}
}
//=================================================================
void buttonPress() { //the interrupt function
//ISR should be fast, but a tiny loop shouldn't be too bad
//as the rest of my processing is not time dependent
//can minKeyVal[] and maxKeyVal[] be seen/used here?
for (int k = 0; k < 5; k++) {
if (keyVal > minKeyVal[k] && keyVal < maxKeyVal[k]) {
keyPressed = k+1;
}
}
}
//=================================================================
void mainProcessing(key) {
{
// do a bunch of stuff here
//
//
idleProcessing();
}
//=================================================================
void idleProcessing() {
{
// do other stuff here
//
//
}