Top secrets sources NedoPC pentevo

Rev

Rev 838 | Rev 952 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?


;LAST UPDATE: 03.03.2020 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 Šˆ‹Ž€‰’
;               JR KILRAMd

;‘Ž‡„€ˆ… €Œ „ˆ‘Š€ € 896 Šˆ‹
;RAM_892                LD HL,RESTART
;               PUSH HL
;               LD HL,892*4                     ;RAM DISK € 896 Šˆ‹Ž€‰’
KILRAMd         LD (SECFREE),HL                 ;‚›‘’€‚ˆ‹ˆ ……Œ…“ž ŠŽ‹ˆ—…‘’‚€ ‘…Š’ŽŽ‚ € RAM DISK
                DI
                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;0XFD
                LD BC,WIN_P2
                OUT (C),A
                PEC_OFF M_SHADOW_BF
                JP CREATE_TRD640

;[‘Ž‘ NEOGS]
RESETNGS        LD A,0X80
                OUT (0X33),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 0XF0
                JP Z,RESTART
                LD IX,WDISMOUNT
                RST8 _WINW
                JP _RULILKA                     ;‚Ž‡‚€™€…Œ‘Ÿ Š Ž™…Œ“ “€‚‹…ˆž

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

        IF 0
;[“‘’€Ž‚Š€ ‡€„…†Šˆ ‡€“‘Š€ 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 (TIMEOUTSCRSAV),A
                ADD A,'0'
                LD (TXT_SCRSAVDELAY),A
                JR REPRINT_MENU
        ENDIF

;[“‘’€Ž‚Š€ €‡…˜…ˆŸ/‡€…™…ˆŸ Ž‡‚“—Šˆ Š‹€‚ˆ€’“›]
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
        IFDEF REZIDENT
;¢ª«î祭¨¥/¢ëª«î祭¨¥ १¨¤¥­â 
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
        ENDIF;REZIDENT

;[“‘’€Ž‚Š€ ……„ ‚›‚Ž„ŽŒ Œ…ž 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

;[ATM CP/M]
ATM_CPM         EI
                HALT
                DI
                PEC_ON M_SHADOW_BF
                LD HL,CPM_PAGES
                LD DE,0X3F
ATM_CPM1        LD BC,CONF_128
                OUT (C),D
                LD BC,LOW (WIN_A3)
ATM_CPM2        OUTI
                LD A,B
                SUB E
                LD B,A
                JR NZ,ATM_CPM2
                LD A,D
                XOR 0X10
                LD D,A
                JR NZ,ATM_CPM1
                LD SP,0X8000
                LD BC,0X177
                LD A,6
                OUT (C),A
                PEC_OFF M_SHADOW_BF
                JP 0X000C

CPM_PAGES       DB 3!0X7F,2!0X7F,4!0X7F,0!0X7F
                DB 3!0X7F,2!0X7F,5!0X7F,ROM_ATMCPM

;[“‘’€Ž‚Š€ €‡…˜…ˆŸ/‡€…™…ˆŸ Œ“‹Ÿ–ˆˆ ‹…’›]
SET_EMU_TAPE    LD H,CMOS_BYTE_00
                CALL READCMOS
                AND M_EMUL_TAPE
                RET Z
                LD BC,BREAK_LOW_WR
                LD A,LOW (ADRBRK_EMUTAP)
                OUT (C),A
                LD B,HIGH (BREAK_HIGH_WR)
                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