Top secrets sources NedoPC pentevo

Rev

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

;---------------------------------------