MODULE VECT ; rst 00h jp $+3 db -1 db -1 db -1 db -1 db -1 ; RST 08h. BIOS calls push af ld a,SYS_PORT.BIOS out (SYS_PORT.ON),a pop af ret db 0C9h ; RST 10h. DOS calls jp alt10 ; Main.asm db -1 db -1 db -1 db -1 db -1 ; RST 18h jp alt18 ; Main.asm db -1 db -1 db -1 db -1 db -1 ; rst 20h jp $+3 db -1 db -1 db -1 db -1 db -1 ; rst 28h rst28: push af .page+1: ld a,0 ; сохр. page_module0 out (SLOT0),a pop af jr spec_interrupt ; rst 30h jp $+3 db -1 db -1 db -1 db -1 db -1 ; ; RST 38h. Main Interrupt jp $+3 di push iy push ix push hl push de push bc push af ex af,af' exx push hl push de push bc push af ;call show_clock ; отображение часов ;di ds 4; pop af pop bc pop de pop hl exx ex af,af' pop af pop bc pop de pop hl pop ix pop iy ei reti db -1,-1,-1,-1,-1 ; на границу 0064h ;0064h retn db 0 ; 0066h (от немаск. прерывания в IM0) db 0 db 0 jp $-5 ;================ Конец блока Векторов рестартов ===================== ;------------------------------------------------- ; Вызов обработчика #28 рестарта. ; Использовать свой стек. ;------------------------------------------------- spec_interrupt: ld (.spc_stk),sp ld sp,spec_stack call spec_funcs ; отработка функции .spc_stk+1: ld sp,0 jp rst28 ; вкл. 0-ю стр. фм ds 64 spec_stack: ; стек банки ENDMODULE