Top secrets sources NedoPC pentevo

Rev

Rev 1047 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?


; LAST UPDATE: 21.02.2023 savelij

                TITLE "menu_execute.a80"

; § £à㧪  á «¥­âë
TAPELOAD        LD H,CMOS_BYTE_00
                CALL READCMOS
                AND M_EMUL_TAPE
                JP NZ,EMULTAPLOAD
                LD IX,TAPE_LDT
        RST8 _WINW
TAPELOAD1       CALL MEMSET                     ; ¢ëáâ ¢¨«¨ ०¨¬ë ¯ ¬ï⨠¨ âãà¡ë
                LD HL,BAS4TAPE
                LD DE,0x5C3A
                LD BC,EBAS4TAPE-BAS4TAPE
                LDIR                            ; ¯¥à¥¬¥­­ë¥ ¡ á¨ª  ᤥ« «¨ FOR ONLY TAPE
                LD HL,ERROR_TAPE
                PUSH HL
                LD (0x5C3D),SP                  ; ¯¥à¥å¢ â ®è¨¡ª¨ ¥á«¨ ¥áâì ¦¥« ­¨¥ ¢¥à­ãâìáï
                LD HL,0xFF58
                LD SP,HL                        ; ¢ëáâ ¢¨«¨ á⥪   «ï ¡¥©á¨ª 48
                LD DE,0x3E08
                LD BC,0xA8
                EX DE,HL
                LDIR                            ; ¯®«®¦¨«¨ èà¨äâ UDG
                LD HL,0x3E00
                PUSH HL
                LD HL,0x1303
                PUSH HL
                LD HL,0x1B76
                PUSH HL                         ; § ¯®«­¨«¨ ¤­® ¯¥à¥áâ ¢«¥­­®£® á⥪ 
                LD IX,0x5CD1                    ; ãáâ ­®¢¨«¨ ¤«ï § £à㧪¨ á «¥­âë
                JP 0x073E                       ; ¯¥à¥å®¤ ­  § £à㧪ã á «¥­âë

; ¯¥à¥å¢ â ®è¨¡ª¨ ¨«¨ ¡à¥ª  ¤«ï ¢®§¢à â 
ERROR_TAPE      LD HL,BAS_VAR
                LD DE,0x5C00
                LD BC,EBAS_VAR-BAS_VAR
                LDIR                            ; ¢¥à­ã«¨ âëमá­ë¥ ¯¥à¥¬¥­­ë¥ ­  ¬¥áâ®
                XOR A
                LD (0x5C3D),BC                  ; á­ï«¨ ¯¥à¥å¢ â稪 ®è¨¡®ª
                OUT (0xFE),A
                DEC A
                LD (gFenv),A
                CALL GLUDIN                     ; ¯®£ã¤¥«¨ ¢  ã çâ® ¡ë«  ®è¨¡ª 
                LD A,1
                LD (gFenv),A
                JP RESTART                      ; ¯¥à¥§ ¯ã᪠HE GLUK

; ᮧ¤ ­¨¥ à ¬ ¤¨áª  ­  640Š
RAM_640         LD HL,RESTART
                PUSH HL
CREATE_TRDRAM
                LD HL,636*4                     ; RAM DISK ­  640 ª¨«®¡ ©â
                LD (SECFREE),HL                 ; ¢ëáâ ¢¨«¨ ¯¥à¥¬¥­­ãî ª®«¨ç¥á⢠ ᥪâ®à®¢ ­  RAM DISK
                DI

        IFNDEF TESTEMUFDD
; test
        PEC_ON M_SHADOW_BF
                LD A,RAM_RAMDISK+1
                LD BC,WIN_P2
                OUT (C),A
                LD HL,0x8000
                LD D,H
                LD E,L
                INC DE
                LD BC,0x0FFF
                LD (HL),L
                LDIR                            ; ®ç¨á⨫¨ áâà ­¨æã TR-DOS ¤¨à¥ªâ®à¨¨
                LD HL,DSKINFO
                LD DE,0x88E1
                LD C,DSK_END-DSKINFO
                LDIR                            ; ¯¥à¥­¥á«¨ è ¡«®­ ¤«ï 9 ᥪâ®à  ¤¨àë
                LD A,ZXSTD_CPU2
                LD BC,WIN_P2
                OUT (C),A
        PEC_OFF M_SHADOW_BF
; test
        ENDIF

                JP CREATE_TRD640

; á¡à®á NEOGS
RESETNGS        LD A,C_GRST
                OUT (GSCTR),A
                JP RESTART

; file not found
FILE_NONE       LD IX,FILENONE
        RST8 _WINW
                JP STUPID1

; ¯à®¢¥àª  ¢¨àâã «ì­®£® ¯à¨¢®¤ 
CMP_VIRTUAL     LD H,VIRT_REAL_DRIVE
                CALL READCMOS
                LD A,(DRV_SYM)
                LD D,A                          ; ­®¬¥à ⥪ã饣® ॠ«ì­®£® ¤¨áª®¢®¤ 
                LD A,L
                RRCA
                RRCA
                AND 3                           ; ­®¬¥à ॠ«ì­®£® ¤¨áª®¢®¤  ¨§ CMOS
                CP D
                JR NZ,PRT_NONETRDOS
                LD IX,ERR_VIRTUAL
                JR PRT_NONETRDOS1

PRT_NONETRDOS   LD IX,NONETRDOS
PRT_NONETRDOS1
        RST8 _WINW
                JR STUPID1

; ¢ë¢®¤ ¯®¬®é¨
VIEW_HELP       LD IX,WIN_HELP
        RST8 _WINW
VIEWHELP1       CALL PRINTTIME
                EI
                HALT
                BIT 5,(IY+1)
                CALL Z,CP_TIME_KOSHAK
                JR Z,VIEWHELP1
                RES 5,(IY+1)
                JR STUPID1

LDFDI_ERROR     LD IX,LDFDIERROR
        RST8 _WINW
                JR STUPID1

_STUPID         LD IX,MSTUPID
                CALL DRAWWIN
                LD HL,_STUPID
                LD (DSTUPID),HL
STUPID1         LD SP,0
TEK_SP          EQU $-2
                CALL SET_7FFD_0
                EI
                CALL RESET_VG
                CALL EXIT4ERROR
;               LD A,0xFF
;               LD (gFenv),A
;               CALL GLUDIN                     ;HL
;               LD A,1
;               LD (gFenv),A
                JP RESTART

; ¯¥à¥å®¤¨«ª  ¢ ¡ á¨ª 128
BAS128          CALL SYSTEM
                CALL MEMSET
                DI
                CALL INIT_LOADTAPE
                XOR A
                CALL SET_7FFD
                RST 0

; á¡à®á 㪠§ â¥«ï § £àã§ç¨ª  TAPE
INIT_LOADTAPE
        PEC_ON M_SHADOW_BF
                LD BC,WIN_P2
                XOR A
                OUT (C),A
                LD HL,0x8000
                LD (HL),A
                INC L
                LD (HL),A
                INC L
                LD (HL),A
                LD B,HIGH (WIN_A2)
                LD A,0x7D
                OUT (C),A
        PEC_OFF M_SHADOW_BF
                RET

; ¯¥à¥å®¤¨«ª  ¢ ¡ á¨ª 48
BAS48           CALL SYSTEM
                CALL MEMSET
                CALL INIT_LOADTAPE
                LD A,0x30
                CALL SET_7FFD
                RST 0

; ¯¥à¥å®¤¨«ª  ¢ âëमá
DOS128          CALL SYSTEM
                CALL MEMSET
                LD IX,0
                JP DOSIX

; ¬¥­îå  § ç¨á⪨ áâà ­¨æ, ä®à¬ â¨à®¢ ­¨ï à ¬¤¨áª  ¨ ¤¨áª¥â­ë© ª®¯¨à
_KILLS          LD IX,MKILLS
        RST8 _WINW
                JP _RULILKA

; á¡à®á ¢ basic 48 á® áâ ­¤ àâ­®© ¯à®è¨¢ª®© ¯à¨ ¢ëª«î祭­®¬ âãà¡® ०¨¬¥
BAS48STD        DI
                CALL SET_EMU_TAPE
                LD BC,PENT_CONF
                LD A,0x14
                OUT (C),A
                LD BC,CONF_128
                LD A,0x30
                OUT (C),A
        PEC_ON M_SHADOW_BF
        ATMPORT WIN_A0,0x3F
        EVOPORT WIN_P0,0
                LD HL,0
                LD (HL),H
                INC L
                LD (HL),H
                INC L
                LD (HL),H
        ATMPORT WIN_A0,ROM_BAS48_STD
        PEC_OFF M_SHADOW_BF
                JP 0

; á¡à®á ¢ basic 128 á® áâ ­¤ àâ­®© ¯à®è¨¢ª®© ¯à¨ ¢ëª«î祭­®¬ âãà¡® ०¨¬¥
BAS128STD       DI
                CALL SET_EMU_TAPE
                LD BC,PENT_CONF
                LD A,0x14
                OUT (C),A
        PEC_ON M_SHADOW_BF
        ATMPORT WIN_A0,0x3F
        EVOPORT WIN_P0,0
                LD HL,0
                LD (HL),H
                INC L
                LD (HL),H
                INC L
                LD (HL),H
        ATMPORT WIN_A0,ROM_BAS48_128
                LD BC,CONF_128
                XOR A
                OUT (C),A
        ATMPORT WIN_A0,ROM_BAS128_STD
        PEC_OFF M_SHADOW_BF
                JP 0

; HDD BOOT
HDD_BOOT        LD HL,ADR_CAT
                PUSH HL
        RST8 _COM_DEV,_COMHDDN,_DEV_INIT
                LD A,H
                POP HL
                AND A
                JR NZ,HDDBOOT1
HDDBOOT4        PUSH HL
                CALL MEMSET
                POP DE
                PUSH DE
                LD HL,HDDBOOT2
                LD BC,EHDDBOOT2-HDDBOOT2
                LDIR
                RET

HDDBOOT1        LD IX,HDDBOOT_ERROR
        RST8 _WINW
                JP STUPID1

HDDBOOT2        LD HL,0x6000                    ; £à㧨âì ¡ã¤¥¬ ª ª ¨ ¡ë«  ¤à¥á
                PUSH HL                         ; ¯®á«¥ § £à㧪¨ § ¯ã᪠¥¬ § £à㦥­­®¥
                LD BC,0
                LD DE,2
                LD A,0x30
        RST8 _COM_DEV,_COMHDDN,_DEV_READ
                RET

                LD DE,2                         ; £à㧨¬ ­ ç¨­ ï á ᥪâ®à  2 ¨¡® LBA
                LD BC,0xFF00+PN_1F6
                LD A,0xE0                       ; ¢ë¡à «¨ ¬ áâ¥à ¨ lba ०¨¬
                OUT (C),A
                LD C,PN_1F5
                OUT (C),D
                LD C,PN_1F4
                OUT (C),D
                LD C,PN_1F3
                OUT (C),E
                LD C,PN_1F2
                LD A,0x30                       ; £à㧨¬ ᥪâ®à®¢ ª ª ¨ ¡ë«®
                OUT (C),A
                EX AF,AF'                       ; á¯àïâ «¨ ª®«¨ç¥á⢮ ᥪâ®à®¢ § £à㧪¨
                LD C,PN_1F7
                LD A,0x20
                OUT (C),A                       ; ª®¬ ­¤  ç⥭¨ï
                LD C,PN_1F7
HDDRD1_         IN A,(C)
                AND 0x88
                CP 8
                JR NZ,HDDRD1_
                EX AF,AF'

HDDRD2_         EX AF,AF'
                XOR A
                LD C,PN_1F0
READSC1_        IN E,(C)
                INC C
                IN D,(C)
                DEC C
                LD (HL),E
                INC HL
                LD (HL),D
                INC HL
                DEC A
                JR NZ,READSC1_
                LD C,PN_1F7
HDDRD3_         IN A,(C)
                AND 0x80
                JR NZ,HDDRD3_
                EX AF,AF'

                DEC A
                JR NZ,HDDRD2_
                RET
EHDDBOOT2

                include "hdd_cd_boot.a80"

HDDRDLN EQU $-HDDREAD

; CD BOOT
CDBOOT  XOR A
        CALL CLS
        CALL MEMSET
        CALL HDDBINI
        EI
        JP CDBOOTGO

UMOUNTIMAGE
        RST8 _MOUNTER,_GET_VIRT_BITS
                AND 0x0F
                JP Z,RESTART
                LD IX,WDISMOUNT
        RST8 _WINW
                JP _RULILKA                     ; ¢®§¢à é ¥¬áï ª ®¡é¥¬ã ã¯à ¢«¥­¨î

; ¤¥¬®­â¨à®¢ ­¨¥ ¢á¥å ¤¨áª®¢
DISMOUNT_ALL    LD A,3
        RST8 _MOUNTER,_CLOSEMOUNT
                LD A,2
        RST8 _MOUNTER,_CLOSEMOUNT
                LD A,1
        RST8 _MOUNTER,_CLOSEMOUNT
DISMOUNT_A      XOR A
DISMOUNT_DRV
        RST8 _MOUNTER,_CLOSEMOUNT
                JP RESTART

DISMOUNT_B      LD A,1
                JR DISMOUNT_DRV

DISMOUNT_C      LD A,2
                JR DISMOUNT_DRV

DISMOUNT_D      LD A,3
                JR DISMOUNT_DRV

; á¡à®á CMOS
RESET_CMOS
        RST8 _CMOS_RW,_CLEAR_CMOS
                CALL SET_MODES
                JP RESTART

; ãáâ ­®¢ª  § ¤¥à¦ª¨ ¤® ®¯à¥¤¥«¥­¨ï HDD
HDDTIMEOUT      LD H,HDD_TIMEOUT
                CALL READCMOS
                LD E,A
                AND 0x0F
                INC A
                CP 10
                JR C,HDDTIMEOUT1
                XOR A
HDDTIMEOUT1     LD D,A
                LD A,E
                AND 0xF0
                OR D
                LD L,A
                CALL WRITECMOS
                AND 0x0F
                ADD A,'0'
                LD (TXT_HDDTIMEOUT),A
                JR REPRINT_MENU

; ãáâ ­®¢ª  § ¤¥à¦ª¨ § ¯ã᪠ screensaver
SCRSAVTIMEOUT   LD H,HDD_TIMEOUT
                CALL READCMOS
                LD E,A
                AND 0xF0
                ADD A,0x10
                CP 0xA0
                JR C,.L0
                XOR A
.L0             LD D,A
                LD A,E
                AND 0x0F
                OR D
                LD L,A
                CALL WRITECMOS
                AND 0xF0
                RRCA
                RRCA
                RRCA
                RRCA
                LD (SCRSAV.TIMEOUT),A
                ADD A,'0'
                LD (TXT_SCRSAVDELAY),A
                JR REPRINT_MENU

; ãáâ ­®¢ª  à §à¥è¥­¨ï/§ ¯à¥é¥­¨ï ®§¢ã窨 ª« ¢¨ âãàë
SOUND_KEYS      LD C,M_SOUNDKEYS
                LD HL,SNDKEYS_STAT
SET_MENU        PUSH HL
                LD H,CMOS_BYTE_01
SET_MENU1       CALL READCMOS
                XOR C
                LD L,A
                CALL WRITECMOS
                AND C
                POP HL
                CALL SET_ONOFF
REPRINT_MENU    LD HL,SETUPERTXT
        RST8 _PRINT_MESSAGE
                CALL REST_COLCURS
        RST8 _COM_DEV,_CONTROL_SD
                JP _RULILKA

; ãáâ ­®¢ª  à §à¥è¥­¨ï/§ ¯à¥é¥­¨ï ¤®áâ㯠 ª SD ª à⥠NEOGS
ACS_SDNGS       LD C,M_ACCESSSDG
                LD HL,ACCSSDG_STAT
                JR SET_MENU

; ãáâ ­®¢ª  ¢ë¡®à  ¤à ©¢¥à  ¯à¨­â¥à 
AYPRN_SETUP     LD C,M_TYPE_FONT
                LD HL,ETXT_AYPRINTER
                JR SET_MENU

; ¢ª«î祭¨¥/¢ëª«î祭¨¥  ¢â®áâ àâ  TAP ä ©«  ¯à¨ ¢ë¡®à¥ ¢ FILE BROWSER
AUTO_TAPE       LD C,M_AUTO_TAPE
                LD HL,TXT_AUTOTAPE
                PUSH HL
                LD H,CMOS_BYTE_00
                JR SET_MENU1

; ¤«ï १¨¤¥­â  HONEY COMANDER
; ¢ª«î祭¨¥/¢ëª«î祭¨¥ १¨¤¥­â 
REZID_SETUP     LD C,M_REZIDENT
                LD HL,TXT_REZIDENT
                JR SET_MENU

; ¢ª«î祭¨¥/¢ëª«î祭¨ï ¯®àç¨ à¥§¨¤¥­â  ¯à¨ § ¯ã᪥
KILL_REZID      LD C,M_KILL_REZIDENT
                LD HL,TXT_KILLREZID
                PUSH HL
                LD H,CMOS_BYTE_03
                JR SET_MENU1

; ãáâ ­®¢ª  ¯¥à¥¤ ¢ë¢®¤®¬ ¬¥­î SETUP
SETUPM          LD IX,SETUPER
                LD H,CMOS_BYTE_01
                CALL READCMOS
                LD B,A
                AND M_SOUNDKEYS
                LD HL,SNDKEYS_STAT
                CALL SET_ONOFF
                LD A,B
                AND M_ACCESSSDG
                LD HL,ACCSSDG_STAT
                CALL SET_ONOFF
                LD H,CMOS_BYTE_00
                CALL READCMOS
                AND M_AUTO_TAPE
                LD HL,TXT_AUTOTAPE
                CALL SET_ONOFF
                LD H,HDD_TIMEOUT
                CALL READCMOS
                LD D,A
                AND 0x0F
                ADD A,'0'
                LD (TXT_HDDTIMEOUT),A
                LD A,D
                AND 0xF0
                RRCA
                RRCA
                RRCA
                RRCA
                ADD A,'0'
                LD (TXT_SCRSAVDELAY),A
        RST8 _WINW
                JP _RULILKA

; ãáâ ­®¢ª  à §à¥è¥­¨ï/§ ¯à¥é¥­¨ï í¬ã«ï樨 «¥­âë
SET_EMU_TAPE    LD H,CMOS_BYTE_00
                CALL READCMOS
                AND M_EMUL_TAPE
                RET Z
                LD BC,BREAK_LOW
                LD A,LOW (ADRBRK_EMUTAP)
                OUT (C),A
                LD B,HIGH (BREAK_HIGH)
                LD A,HIGH (ADRBRK_EMUTAP)
                OUT (C),A
        PEC_ON M_BREAK_BF
                RET

                include sdcardboot.a80

SONGLN          CALL START_SONGLN
                JP RESTART

START_SONGLN    DI
                PUSH IX
                PUSH IY
                LD A,0x11
                CALL SET_7FFD
                LD A,0x10
                CALL SET_EFF7
                LD HL,0x4000
                LD DE,0xE000
                LD BC,0x1B00
                LDIR
                LD HL,0xD000
                LD DE,0xD001
                LD BC,0x1000
                LD (HL),0
                LDIR
SONGLN1         XOR A
                IN A,(0xFE)
                CPL
                AND 0x1F
                JR NZ,SONGLN1
        PEC_ON M_SHADOW_BF
        EVOPORT WIN_A0,ROM_RST82
                CALL UNP_SONGLN
        EVOPORT WIN_A0,ROM_BAS48|0x80
        PEC_OFF M_SHADOW_BF
                CALL 0xC000
                LD HL,0xE000
                LD DE,0x4000
                LD BC,0x1B00
                LDIR
                LD HL,0xC000
                LD DE,0xC001
                LD BC,0x3FFF
                LD (HL),0
                LDIR
                LD A,0x10
                CALL SET_7FFD
                XOR A
                CALL SET_EFF7
                POP IY
                POP IX
                RET