Rev 961 |
Blame |
Compare with Previous |
Last modification |
View Log
| Download
| RSS feed
| ?url?
; LAST UPDATE: 01.11.2023 savelij
; 07.07.2021 ¯¥à¥¤ ¢ë§®¢®¬ LD_FILE ¢ ॣ¨ BCDE § £à㦠¥âáï ®¬¥à ª« áâ¥à ®âªã¤ ç¨â âì
;SPG runner, version 0.2
;EVO version
;¤ ë© ª®¤ ¨á¯®«ì§ã¥â ®¤ã ¢¥èîî
;äãªæ¨î - LOADING
;ã ¥ñ ⮫쪮 2 ¢å®¤ëå ¯ à ¬¥âà :
;HL - ¤à¥á ªã¤ £à㧨âì
;B - ª®«-¢® ¡«®ª®¢ à §¬¥à®¬ ¢ 2ª,
; ª®â®àë¥ ã¦® § £à㧨âì
;¯¥à¥¤ ¯¥à¢ë¬ ¢ë§®¢®¬ LOADING' , ® ï
;¤®«¦ ¡ëâì ᯮ§¨æ¨®¨à®¢ ç «®
;ä ©« SPG
;§ ⥬, ¯à¨ ª ¦¤®¬ ¯®á«¥¤ãî饬 ®¡à 饨¨
;ª ¥©, ¤®«¦¥ £à㧨âìáï ®ç¥à¥¤®© ªã᮪
;¤ ®£® ä ©« .
; .¥. ¯®á«¥ ª ¦¤®£® ®¡à é¥¨ï ª ¤ ®©
;¯à®æ¥¤ãà¥, ® ¤®«¦ á®åà ïâì ¯®§¨æ¨î
;¢ ãâà¨ ä ©« ¨ ¯à®¤®«¦ âì ç¨â âì ¤ ë¥
;¨§ ¥£® á ⮣® ¦¥ ¬¥áâ , ª®â®à®¬
;®áâ ®¢¨«¨áì ¯à¨ ¯à®è«®¬ ®¡à 饨¨...
; ORG $
PAGER EQU 0X5000;0X4800
LOBU EQU 0XA000
;---------------------------------------
RUNSPG2 LD IYH,0
LD HL,LOBU
LD B,1
CALL LOADING
LD HL,LOBU+32
LD DE,IDNT
LD B,12;á¬.®¯¨á ¨¥ § £®«®¢ª SPG
RAZ LD A,(DE)
CP (HL)
RET NZ
INC HL
INC DE
DJNZ RAZ
;¢ ªà âæ¥ âãâ ¨¤¥â ᪠¨à®¢ ¨¥ ¡«®ª®¢, ª®â®àë¥ ¯® áâà ¨æ ¬ £àã§ïâáï.
;¡«®ª®¢ ¬ ªá¨¬ã¬ 12 ¬®¦¥â ¡ëâì
LD A,(HL)
CP 3
RET NC;¢ë室¨¬, ¥á«¨ ¢¥àá¨ï ¢ëè¥ 0.2 (0X02)
CP 2
JR C,OF4;SPG ¢¥àᨨ 0X00 ¨«¨ 0X01
;SPGv0.2:
LD A,15
LD (VrS+1),A
LD A,16
LD (V2A+1),A
LD (V2F+1),A
LD A,4
LD (V2B+1),A
LD A,15
LD (V2C+1),A
;SPGv0.0/0.1:
OF4 ;LD HL,SPGLOG:CALL SPGLOG
LD HL,LOBU
LD DE,PAGER
LD BC,0X0800
LDIR
;-------
LD HL,MANAG0
LD DE,PAGER
LD BC,32
LDIR;ª¨¤ ¥¬ ¬ £¥à áà ¨æ ¢ § £®«®¢®ª SPG (¨¡® ¯¥à¢ë¥ 32¡ â ¬ ¥ ¯®«ì§ãîâáï)
XOR A
CALL PAGER;¢ª«îç ¥¬ 0î áâà ¨æã
;-------
V2A LD A,8
LD (C0),A;áç¥â稪!
;âãâ ¤ «¥¥ ¯¥à¥®áïâáï ã¦ë¥ ¯¥à¥¬¥ë¥ ¨§ § £®«®¢ª SPG ä ©« , â ¬ à ᯮ«®¦¥¨¥ á⥪ , áâ àâ®¢ë© ¤à¥áá ¨ â.¤.
LD HL,(PAGER+64)
LD (SAR+1),HL
LD A,(PAGER+66)
LD (SPA+1),A
LD HL,(PAGER+74)
LD A,H
CP 0X40
JR NC,NSPZ
LD HL,(SPBU)
NSPZ LD (SSPA+1),HL
LD HL,(PAGER+68)
LD (V2E+1),HL
LD HL,(PAGER+76)
LD A,H
OR L
JR Z,V2Di
LD (V2D+1),HL
V2Di LD BC,(PAGER+78)
LD A,B
OR C
JR Z,MAA
LD A,B
OR A
JR Z,MAA
LD B,1
LD A,C
CP 0X41
JR C,MAA
LD C,0
MAA LD (LAA+1),BC
LD IX,PAGER+128
GROP LD A,(IX+2)
CP 14
JR C,NSPL
LD A,13;®£à ¨ç¥¨¥ ¬ ªá à §¬¥à ¡«®ª , ¤ ¡ë ¯®¢à¥¦¤¥ëå SPG ¥ ¯®«ãç¨âì § â¨à ¨¥ ¢á¥© ¯ ¬ïâ¨.
NSPL LD (SPGL+1),A
LD A,(IX+3)
VrS AND 7
DI
CALL PAGER; ¢ë室¥ ¢ A
; § ç. ¯®àâ 0X7FFD
LD HL,PAGER+512
LD E,(IX)
LD D,(IX+1)
LD BC,0X0600
CALL LC
EX DE,HL
LD A,H
CP 0XA0
JR C,DIPL;⨯® § £à㧨«¨ ¢á¥ ¡«®ª¨ (ãá«®¢¨¥: ª®£¤ ¤à¥á § £à㧪¨ ¡«®ª ¨¦¥ 0XA000 ¯¥à¥å®¤¨¬ ª áâ ¤¨¨ § ¯ã᪠SPG)
SPGL LD B,1
LD A,B
OR A
CALL NZ,LOADING;¨ ç¥ £à㧨¬ ®ç¥à¥¤®© ¡«®ª SPG ä ©« ¢ ¯ ¬ïâì (¢ § ¤ ãî áâà ¨æã)
V2B LD DE,8
ADD IX,DE;ᮡá⢥® ¯¥à¥å®¤¨¬ ª ®¯¨á ⥫î á«¥¤. ¡«®ª
LD A,(C0)
DEC A
LD (C0),A
JR NZ,GROP;¨¤¥¬ § £à㧪ã á«¥¤ ¡«®ª , ¥á«¨ áç¥â稪 ¥ £®¢®à¨â ®¡à ⮣®
;-------
;âãâ ¢ëáâ ¢«ï¥¬ ã¦ë© á⥪, ¯à¥àë¢ ¨ï ¨ â.¤. ã ¨ ¢ª«îç ¥¬ ã¦ãî áâà ¨æã (çâ® ¢ § £®«®¢ª¥ SPG 㪠§ )
;¨ ¤¥« ¥¬ JP § ¤ ë© ¤à¥á
;íªà ç¨áâ¨âì ¥ 㦮
DIPL DI
LD A,63
LD I,A
IM 1
LD IY,0X5C3A
LD HL,PAGER
V2E LD DE,0
LD BC,32
LDIR
LAA LD BC,0
LD A,B
OR C
JR Z,SPA
LD HL,PAGER+192
V2D LD DE,0X5B00
LDIR
SPA LD A,0
V2C AND 7
CALL PAGER
LD A,(PAGER+67);®¯ïâì ᬮâਬ § £®«®¢®ª SPG ä ©«
CP 1
JR NZ,NNx
LD A,(DRVE)
LD (0X5CF6),A
NNx LD A,(V2C+1)
CP 7
JR Z,SSPA
LD HL,PAGER+49
LD E,5
OUTZ LD C,(HL)
INC HL
LD B,(HL)
INC HL
LD A,B
OR C
JR Z,OUTz
LD A,(HL)
OUT (C),A
OUTz INC HL
DEC E
JR NZ,OUTZ
SSPA LD SP,0
SAR JP 0
;-------
LC LD A,(C0)
V2F CP 8
RET NZ;¢ë§ë¢ ¥âáï ⮫쪮 ª®£¤ áç¥â稪 ®¡ã«¨«áï, ç⮡ë ⮫쪮 ®¤¨ à § ®ãî ¢ë§¢ âì
LD A,D
CP 0XA0
JR NC,V01;á ¬ë© ¯¥à¢ë© ¡«®ª ¬®¦¥â £à㧨âìáï ¢ ¤à¥á ¨¦¥ 0Xa000
LD (SREZ+4),DE
ADD A,6
LD D,A
PUSH DE
LD HL,(SAR+1)
LD (SR1+1),HL;áâ àâ®¢ë© ¤à¥á ¢ëáâ ¢«ï¥¬
LD DE,PAGER+0X20
LD (SAR+1),DE;âãâ १¨¤¥â ¡ã¤¥â (¯¥à¥áë« ¥â ¡«®ª, çâ® ®ª § «áï ¢¬¥áâ¥ á § £®«®¢ª®¬ SPG, ¨¡® £à㧨¬ ¡«®ª¨ ¯® 2ª¡)
LD HL,SREZ
LD BC,16
LDIR
POP DE
RET
V01 LDIR
RET
SREZ LD HL,PAGER+512
LD DE,0
LD BC,0X0600
LDIR
SR1 JP 0
IDNT DB "SpectrumProg"
;-------
SPBU DW 0X6000
C0 NOP
DRVE DB 0;®¬¥à ªâ¨¢®£® ¤¨áª®¢®¤
;---------------------------------------
MANAG0 ;I:A - num of PAGE (VALID: 0-15)
PUSH BC
LD C,A
AND %11111000
LD A,C
JR Z,K128
AND 7
OR %01000000
K128 OR 16
LD BC,0X7FFD
OUT (C),A
POP BC
RET
;---------------------------------------
LOADING PUSH IX
LD A,B
ADD A,A
ADD A,A
LD IYL,A
LD DE,(AFILCLS)
LD BC,(AFILCLS + 2)
CALL LOAD_FILE
LD (AFILCLS),DE
LD (AFILCLS + 2),BC
POP IX
RET
;---------------------------------------