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