Rev 821 |
Go to most recent revision |
Blame |
Compare with Previous |
Last modification |
View Log
| Download
| RSS feed
| ?url?
; LAST UPDATE: 07.07.2021 savelij
; 26.04.2019 ¯®¯à ¢«¥® ®¯¨á ¨¥ áâàãªâãàë
; 07.07.2021 ¯¥à¥¤ ¢ë§®¢®¬ LD_FILE ¢ ॣ¨ BCDE § £à㦠¥âáï ®¬¥à ª« áâ¥à ®âªã¤ ç¨â âì
LSNAST STRUCT ;§ £®«®¢®ª á ¯è®â®¢
RI DB ?
AHL DW ?
ADE DW ?
ABC DW ?
AAF DW ?
RHL DW ?
RDE DW ?
RBC DW ?
RIY DW ?
RIX DW ?
IFF2 DB ?
RR DB ?
RAF DW ?
RSP DW ?
SIM DB ?
BORD DB ?
RPC DW ?
P7FFD DB ?
PDOS DB ?
LSNAST ENDSTRUCT
RUNSNA_LP_M MACRO PF,PS
ld de,((PF!0x7f)<<8)+(PS!0x7f)
call RUNSNA_LP
ENDM
RUNSNA_LP128_M MACRO PL
ld a,PL
call RUNSNA_LP128
ENDM
RUNSNA_LP5_M MACRO
ld hl,0x8000-27
ld iyl,0x4000/512+1
ld de,((5!0x7f)<<8)+(2!0x7f)
call RUNSNA_LP5
ENDM
RUNSNA ;4ab4
di
ld iyh,0
ld a,0x30 ;¯® 㬮«ç ¨î ¡48
ld (lsna_P7FFD),a
ld a,HIGH(RD_EFF7) ;à §«®ç¨¬ 7FFD
in a,(LOW(RD_EFF7))
ld bc,PENT_CONF
and %11111011
out (c),a
or %00000100
ld (PEFF7+1),a
ld a,1
out (PEVO_CONF),a
;®á¢®¡®¤¨¬ 1 ®ª®
ld bc,WIN_A2
ld a,8!0x7f
out (c),a
ld de,0x8000
ld hl,0x4000
ld b,h
ld c,l
ldir
ld bc,WIN_A1
ld a,8!0x7f
out (c),a
RUNSNA_LP5_M ;§ £à㧨¬ § £®«®¢®ª ¨ 5 áâà ¨æã ¨ ¥éñ çãâì
ld hl,0x8000-27
ld de,lsna_RI
ld bc,27
ldir ;ª®¯¨à㥬 § £®«®¢®ª
RUNSNA_LP_M 2,0 ;§ £à㧨¬ 2 áâà ¨æã ¨ ¥éñ çãâì
RUNSNA_LP_M 0,9 ;§ £à㧨¬ 0 áâà ¨æã ¨ ¥éñ çãâì
ld a,(FILE_SRC+30)
or a
jr z,RUNSNA_ENDLOAD ;¥á«¨ ä ©« ¡®«ìè¥ 64ª, â® á ¯ 128ª !!!! ¤ ¯à®¢¥à¨âì
ld hl,0xc000 ;á®åà 塞 § £®«®¢®ª
ld de,lsna_RPC
ld bc,4
ldir
ld de,0xc000 ;ᤢ¨¥¬ ª®¥æ ᥪâ®à
ld bc,512-4-27
ldir
ld a,(lsna_P7FFD) ;ᬮâਬ 7ää¤
and %111 ;®âᥪ ¥¬ «¨è¥¥
ld (RUNSNA_LP128+1),a
jr z,RUNSNA_NOL0 ;¥á«¨ ã«¥¢ ï â® ¢áñ ¯à ¢¨«ì®
ld bc,WIN_A3 ;¥â, § ç¨â ¯¥à¥ª¨ãâì ªã¤ ¤®
xor 0x7f
out (c),a
ld hl,0x8000
ld de,0xc000
ld bc,0x4000
ldir
ld bc,WIN_A3
ld a,9!0x7f
out (c),a
RUNSNA_LP128_M 0 ;§ £à㧨¬ ã«¥¢ãî ᮢ
RUNSNA_NOL0
RUNSNA_LP128_M 1 ;¨ ®áâ «ìë¥
RUNSNA_LP128_M 3
RUNSNA_LP128_M 4
RUNSNA_LP128_M 6
RUNSNA_LP128_M 7
RUNSNA_ENDLOAD
ld bc,WIN_P2 ;¢¥àñ¬ ¯ £¨ ¬¥áâ®
ld a,00
out (c),a
ld b,HIGH (WIN_A3) ;¢ª«î稬 FF ¯ £ã
ld a,0!0xff
out (c),a
ld a,(lsna_BORD)
out (0xfe),a ;¢®ááâ ®¢¨¬ ¡®à¤¥à
ld a,(lsna_RI) ;ॣ I
ld i,a
ld hl,toFFpage ;¯¥à¥¬¥á⨬ áâ àâ¥à ¢ FF ¯ £ã
ld de,0xA000
ld bc,endFFpage-toFFpage
ldir
ld hl,(0x8066) ;á®åà ¨¬ ª®¤ ¨§ 0x0066
ld de,(0x8068)
ld bc,0xc300
ld (0x8066),bc ;§ ª¨¥¬ ᢮© JP áâ àâ¥à
ld bc,0x2000
ld (0x8068),bc
ld bc,WIN_A2 ;¢¥àñ¬ ¯ £ã ¬¥áâ®
ld a,2!0x7f
out (c),a
ld a,8 ;ᣥ¥à¨¬ NMI
out (PEVO_CONF),a
ld a,1
out (PEVO_CONF),a
halt ;¦¤ñ¬ ¯à¥àë¢ ¨¥
RUNSNA_LP128
cp 0 ;¯à®¢¥à¨¬ ¬®¦¥â áâà ¨æ 㦥 § £à㦥
ret z
xor 0x7f
ld bc,WIN_A2
out (c),a
ld hl,0xc000 ;¯¥à¥ª¨¥¬ ®áâ ⮪
ld de,0x8000
ld bc,512-27-4
ldir
ex de,hl
ld iyl,0x4000/512
jr RUNSNA_L1P
RUNSNA_LP
ld hl,0x8000+512-27
ld iyl,0x4000/512
RUNSNA_LP5
ld bc,WIN_A2
out (c),d
ld b,HIGH (WIN_A3)
out (c),e
RUNSNA_L1P
xor a
out (PEVO_CONF),a
LD DE,(AFILCLS)
LD BC,(AFILCLS + 2)
call LD_FILE
LD (AFILCLS),DE
LD (AFILCLS + 2),BC
ld a,1
out (PEVO_CONF),a
ret
toFFpage
ld (0x0066),hl ;¢®ááâ ®¢¨¬ ª®¤
ld (0x0068),de
ld a,(fsna+LSNAST_SIM) ;०¨¬ ¯à¥àë¢ ¨©
im 0
or a
jr z,RUNSNA_ENDIM
im 1
dec a
jr z,RUNSNA_ENDIM
im 2
RUNSNA_ENDIM
ld bc,WIN_A1 ;¢®ááâ ®¢¨¬ áâà ¨æã
ld a,5!0x7f
out (c),a
xor a
out (PEVO_CONF),a
ld bc,CONF_128 ;¢®ááâ ®¢¨¬ ¯®àâ ª®ä¨£ãà 樨
ld a,(fsna+LSNAST_P7FFD)
out (c),a
cp 0x30 ;¥á«¨ 48ª â® ¢®§¢à â 㦥 á⥪¥
jr z,FFYESRET
ld sp,(fsna+LSNAST_RSP)
ld hl,(fsna+LSNAST_RPC)
push hl
ld (fsna+LSNAST_RSP),sp
FFYESRET
ld bc,PENT_CONF ;®âª«î稬 1024ª
PEFF7
ld a,0
out (c),a
ei
ld a,(fsna+LSNAST_IFF2)
and 4
jr nz,FFENDEI
di
FFENDEI
ld a,(fsna+LSNAST_RR)
rlca
sub 0x15*2
rrca
ld r,a
ld sp,fsna+LSNAST_AHL ;§ ¡¨à ¥¬ ॣ¨áâàë
pop hl
pop de
pop bc
pop af
exx
ex af,af'
pop hl
pop de
pop bc
pop iy
pop ix
ld sp,fsna+LSNAST_RAF
pop af
ld sp,(fsna+LSNAST_RSP)
out (0xbe),a ;¢ë室¨¬ ¨§ NMI
retn
ENDFFCODE
fsna EQU $-toFFpage+0x2000
lsna LSNAST
endFFpage