mirror of
https://github.com/Tolik-Trek/Sprinter-BIOS.git
synced 2026-11-15 12:10:52 +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
|
|
; |