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

; 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 LOAD_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