device zxspectrum128 org #5e00 start ld c,#f0 ld a,(base_page+1) cp #50-8 jr c,int_mus_first inc c int_mus_first ld a,c ld (int_mus+1),a ld bc,SYSCONFIG ld a,6 out (c),a inc b ld a,%00001110 out (c),a ld sp,#5fff xor a out (#fe),a ld hl,#5800 ld de,#5801 ld bc,#2ff ld (hl),l ldir ld hl,int_loader ld (#5cff),hl ld hl,pages128 ld (page_7ffd+1),hl base_page ld a,8 ;#50-8 add 8 ld (base_page+1),a ld (cps+1),a ld b,5 page_ldir push bc page_7ffd ld hl,pages128 ld a,(hl) inc hl ld (page_7ffd+1),hl ld (cpd+1),a ld hl,copy_pages call set_ports ld hl,cps+1 inc (hl) pop bc djnz page_ldir /* ld b,5 page_ldir push af push bc ld bc,PAGE0 ;#0000 out (c),a ld bc,#7ffd page_7ffd ld hl,pages128 ld a,(hl) inc hl ld (page_7ffd+1),hl out (c),a ld hl,#0000 ld de,#c000 ld bc,#4000 ldir pop bc pop af inc a djnz page_ldir */ ld bc,#1eaf ld a,#60 out (c),a ld a,16-1 ld (cmd_len+1),a ld a,5 ld (cmd+1),a ld hl,copy_main call set_ports ld a,32-1 ld (cmd_len+1),a ld a,2 ld (cmd+1),a ld hl,copy_main call set_ports ld a,0 ld (cmd+1),a ld hl,copy_main call set_ports /* ld a,(cps+1) ld (cms+1),a exx ld bc,PAGE0 ;#0000 out (c),a exx ld hl,#0000 ld de,#6000 ld bc,#4000 ldir inc a exx out (c),a exx ld hl,#0000 ld b,#40 ldir inc a exx out (c),a exx ld hl,#0000 ld b,#20 ldir */ ld bc,#7ffd ld a,#10 out (c),a jp #6000 set_ports ld c,#AF .m1 ld b,(hl) inc hl inc b jr z,dma_stats outi jr .m1 dma_stats ld b,high DMASTATUS in a,(c) AND #80 jr nz,$-4 ret PT3PLAY equ #c000 mus_page equ #f0 int_loader di push hl push de push bc push af int_mus ld a, mus_page ld bc,PAGE3 : out(c), a call PT3PLAY + 5 pop af pop bc pop de pop hl ei ret pages128 db #1,#3,#4,#6,#7 copy_pages db #1a,0 db #1b,0 cps db #1c,0 db #1d,0 db #1e,0 cpd db #1f,0 db #26,#ff db #28,32-1 db #27,DMA_RAM + DMA_DALGN +DMA_ASZ db #ff copy_main ;db #1a,0 ;db #1b,0 ;cms db #1c,0 ;db #1d,0 ;db #1e,#60 cmd db #1f,05 db #26,#ff cmd_len db #28,16-1 db #27,DMA_RAM + DMA_DALGN +DMA_ASZ db #ff end include "tsconfig.asm" SAVEBIN "_spg/loader.bin",start, end-start