1
0
mirror of https://github.com/UzixLS/zx-sizif-xxs.git synced 2025-07-19 15:22:06 +03:00
Files
zx-sizif-xxs/rom_src/main_test.asm
2022-02-01 18:54:46 +03:00

74 lines
1.4 KiB
NASM

DEVICE ZXSPECTRUM48
OPT --syntax=F
DEFINE TEST_BUILD
org #4000
;INCBIN "EXOLON.SCR",0
org #7070
int_handler:
ei
reti
org #7E00
; INT IM2 vector table
.257 db #70 ; by Z80 user manual int vector is I * 256 + (D & 0xFE)
; but by other references and by T80/A-Z80 implementation int vector is I * 256 + D
; so we just play safe and use symmetric int handler address and vector table with one extra byte
org #8000
app_begin:
di
call save_screen
ld hl, menudefault
ld (var_menumain), hl
call menu_init
ld a, #7e ; set our interrupt table address (#7Fxx)
ld i, a ; ...
im 2
ei
.loop:
halt
call input_process
call menu_process
ld a, #01
out #fe, a
ld a, (var_exit_flag)
or a
jr z, .loop
save_variables:
ret
save_screen:
ld bc, 6912
ld de, var_save_screen
ld hl, #4000
ldir
ret
restore_screen:
ld bc, 6912
ld de, #4000
ld hl, var_save_screen
ldir
ret
includes:
include config.asm
include draw.asm
include input.asm
include pause.asm
include menu.asm
include menu_structure.asm
include font.asm
include strings.asm
variables:
include variables.asm
DISPLAY "Application size: ",/D,$-app_begin
CSPECTMAP "main_test.map"
SAVESNA "main_test.sna",app_begin
SAVEBIN "main_test.bin",#8000,#4000