mirror of
https://github.com/Tolik-Trek/Sprinter-BIOS.git
synced 2026-06-15 09:21:46 +03:00
54 lines
962 B
NASM
54 lines
962 B
NASM
;
|
||
; before_intPointer EQU #C000
|
||
; INT_POINTER EQU #C002
|
||
; INT_HANDLER EQU #C004
|
||
|
||
|
||
before_intPointer EQU $
|
||
BLOCK #FF - low $,0 ; ¢ëà ¢¨¢ ¨¥ #xxFF
|
||
INT_POINTER: WORD 0
|
||
|
||
ASSERT +low INT_POINTER = #FF, 'ERROR! Not valid interrupt pointer!'
|
||
IFDEF PREBUILD
|
||
ASSERT INT_POINTER-before_intPointer < 16, 'Warning! To much space before INT_POINTER.'
|
||
ELSE
|
||
IF INT_POINTER-before_intPointer > 16
|
||
DISPLAY 'Warning! To much space before INT_POINTER: ',/D,INT_POINTER-before_intPointer
|
||
ENDIF
|
||
ENDIF
|
||
|
||
INT_HANDLER: PUSH AF
|
||
EX AF,AF'
|
||
PUSH AF
|
||
PUSH BC
|
||
PUSH DE
|
||
PUSH HL
|
||
EXX
|
||
PUSH BC
|
||
PUSH DE
|
||
PUSH HL
|
||
PUSH IX
|
||
PUSH IY
|
||
CALL KEYSCAN
|
||
;
|
||
IF STARTUP_SND
|
||
SCF
|
||
.sndSwitch: CCF ; SCF/CCF
|
||
CALL C,STARTUP_SOUND
|
||
ENDIF
|
||
;
|
||
POP IY
|
||
POP IX
|
||
POP HL
|
||
POP DE
|
||
POP BC
|
||
EXX
|
||
POP HL
|
||
POP DE
|
||
POP BC
|
||
POP AF
|
||
EX AF,AF'
|
||
POP AF
|
||
EI
|
||
RETI
|
||
; |