Waar wilden we ook al weer een assembler voor? Voor het afhandelen van interrupts in high level is het het simpelst om de normale interrupts te gebruiken. Hierin worden alle registers gesaved. Wanneer we nu het code address (xt) van een high level woord invullen in de vector voor een interrupt, wordt dat woord om te beginnen normaal uitgevoerd. Het is immers code. Pas bij het beeindigen gaat er iets fout. Het laatste code woord van een high level executie is CODE EXIT PULU, (& Y& )S, \ Haal y van de stack JMP, [] ,R++ Y ( next) \ Jump naar deze y met autoincrement. Ik gebruik mijn assembler notatie. De y waar naartoe gesprongen wordt is de low level interpreter pointer toen ons woord werd aangeroepen. Dit slaat nergens meer op. Als we een woordje maken CODE EXITI PULU, (& Y& )S, \ Haal y van de stack RTI, ( next) \ Return from interrupt kunnen we zo een interrupt routine maken : toggle-led LEDS @ 1 XOR LEDS ! EXITI ; De ; zet er een extra EXIT bij en ook Y wordt twee keer gesaved en teruggezet, maar dat mag de reet niet roesten. (De fast interrupts werken goed samen met een assembler routine: CODE AAP PSHS, (& A& )S, LDA, ## LEDS ##, XORA, #| 1 CO, STA, ## LEDS ##, PULS, (& A& )S, RTI, ENDCODE ) kan je de EXITI er bij maken Frans? En SWI2 ergens in ram laten wijzen, anders kunnen we nog niets testen. Groetjes Albert.