Rev 831 |
Go to most recent revision |
Blame |
Compare with Previous |
Last modification |
View Log
| Download
| RSS feed
| ?url?
;LAST UPDATE: 05.08.2019 savelij
TITLE "call_trdos.a80"
SEL_FILES_WIN LD HL,ERS_FLAGS
BIT B_VIEW_IMG,(HL)
JP Z,RESTART
JP FILES_BROWSE
VIEW_IMAGE DI
LD BC,ADR_CAT_FAT
LD L,(IX+_TEK_PKT_L)
LD H,(IX+_TEK_PKT_H)
ADD HL,HL
ADD HL,BC
LD C,(HL)
INC HL
LD B,(HL) ;
LD A,6
RST8 _COM_FAT,_POS_FILES ;
FAT
LD HL,BUF_FILEITEM
RST8 _COM_FAT,_READ_DIR ;
LD DE,0X0B
ADD HL,DE
LD A,(HL)
SBC HL,DE
AND 0X10
JP NZ,_RULILKA ;
PUSH HL
CALL REST_COLCURS ;
CALL REST2X2 ;
POP HL
CALL CPETR3 ;
JP Z,_RULILKA ;
(SCL, TRD ONLY)
LD (TYPE_FILE),A
PUSH AF
RST8 _COM_FAT,_OPEN_FILE
POP AF
DEC A
LD HL,ADR_CAT ;TYPE_FILE=1-TRD
JR Z,VIEWIMG1
LD HL,ADR_CAT+0X200 ;TYPE_FILE=2-SCL
VIEWIMG1 PUSH AF
LD A,5
RST8 _COM_FAT,_READ_FILE
POP AF
JR Z,VIEWIMG3
LD DE,ADR_CAT
LD HL,ADR_CAT+0X200+8
LD A,(HL)
PUSH AF
INC HL
VIEWIMG2 LD BC,0X0E
LDIR
INC DE
INC DE
DEC A
JR NZ,VIEWIMG2
LD HL,ADR_CAT+0X0A00
SCF
SBC HL,DE
LD B,H
LD C,L
LD H,D
LD L,E
INC DE
LD (HL),0
LDIR
LD HL,DSKINFO
LD DE,ADR_CAT+0X8E1
LD BC,DSK_END-DSKINFO
LDIR
POP AF
LD (ADR_CAT+0X8E4),A
VIEWIMG3 LD HL,ERS_FLAGS
RES B_RUN_FAT,(HL) ; TR-DOS
SET B_VIEW_IMG,(HL) ; TR-DOS
JP VIEW_ALL
GLUBOOT LD HL,ERS_FLAGS
RES B_RUN_FAT,(HL) ;
RES B_VIEW_IMG,(HL) ;
TR-DOS
LD HL,ADR_CAT
LD DE,8
LD BC,0X0105
CALL TO_DOS4BAS ; 9
LD A,(ADR_CAT+0XE7)
CP 0X10 ;
TR_DOS
JP NZ,CMP_VIRTUAL ;,
TR-DOS
LD HL,ADR_CAT
LD DE,0
LD BC,0X0905
CALL TO_DOS4BAS ; TR-DOS
LD A,(ADR_CAT+0X8E7)
CP 0X10 ;
TR_DOS
JP NZ,_STUPID
VIEW_ALL LD IX,ADR_CAT
LD DE,0X10
LD A,(ADR_CAT+0X8E4)
AND A
JP Z,NO_BAS
LD B,A ;
LD C,0 ;
EXX
PUSH IX
POP DE
EXX
FIND_BASIC LD A,(IX+8)
CP "B" ;
JR NZ,FINDBAS1
LD A,(IX+0)
DEC A ;
JR Z,FINDBAS1
EXX
PUSH IX
POP HL ;
LD BC,0X10
LDIR
EXX
INC C
FINDBAS1 ADD IX,DE
DJNZ FIND_BASIC
LD IX,WIN_FILES ;
OUT_HOB LD (IX+_NUM_PKT),0
LD (IX+_NUM_KOL_L),C
LD (IX+_NUM_KOL_H),B ;
LD (IX+_TEK_PKT_L),0
LD (IX+_TEK_PKT_H),0 ;
REOUT_HOB LD A,B
OR C ;
JP Z,NO_BAS ;
0,
LD HL,ERS_FLAGS
RES 2,(IY+55) ;
LD A,B
AND A
LD A,V_FILE-2
JR NZ,FINDBAS2 ;
256 ,
LD A,C
CP V_FILE-1
JR C,FINDBAS2
SET 2,(IY+55) ;
LD A,V_FILE-2
FINDBAS2 LD C,A
ADD A,2
LD (IX+_V_SIZE),A ;
LD (IX+_H_SIZE),H_FILE ;
FINDBAS6 BIT B_RUN_FAT,(HL)
JR Z,FINDBAS5 ;
TR-DOS,
LD A,C
CP FH_FILE-1
JR C,FINDBAS9
LD C,FH_FILE-2
FINDBAS9 LD A,C
LD (KOL4OUT),A
LD (IX+_V_SIZE),FH_FILE
LD (IX+_H_SIZE),FV_FILE
RST8 _WINW
JR FINDBAS7
FINDBAS5 LD A,(ERS_FLAGS)
AND M_RUN_FAT
JR NZ,FINDBAS8
LD (IX+_H_SIZE),H_FILE-4
FINDBAS8 RST8 _WINW
FINDBAS7 CALL OUT_TEK_DIR ;
JP _RULILKA
;
OUT_TEK_DIR LD L,(IX+_TEK_PKT_L) ; TR-DOS
LD H,(IX+_TEK_PKT_H) ;
LD E,(IX+_NUM_PKT) ;
XOR A
LD D,A
SBC HL,DE ;
ADD HL,HL
LD A,(ERS_FLAGS)
AND M_RUN_FAT
JR NZ,OUT_TEK_FAT ;
FAT
; TR-DOS
LD DE,ADR_CAT
ADD HL,HL
ADD HL,HL
ADD HL,HL ;
ADD HL,DE ;
LD C,(IX+_V_SIZE)
DEC C
DEC C ;
LD D,(IX+_X_COORD)
LD E,(IX+_Y_COORD)
INC D
INC D
INC E ;
FINDBAS3 LD B,8 ;
PUSH DE
FINDBAS4 LD A,(HL)
INC HL
CALL PRT_SYM
DJNZ FINDBAS4
LD DE,8 ;8
,
8
ADD HL,DE
POP DE
INC E
DEC C
JR NZ,FINDBAS3 ;
RET
; FAT
OUT_TEK_FAT LD DE,ADR_CAT_FAT
ADD HL,DE
LD D,(IX+_X_COORD)
LD E,(IX+_Y_COORD)
INC D
INC E ;
LD C,0
KOL4OUT EQU $-1
OTF2 PUSH BC
LD C,(HL)
INC HL
LD B,(HL)
INC HL
PUSH HL
PUSH DE
LD A,6
RST8 _COM_FAT,_POS_FILES
LD HL,BUF_FILEITEM
RST8 _COM_FAT,_READ_DIR
POP DE
PUSH DE
LD BC,0X0B
ADD HL,BC
LD A,(HL)
SBC HL,BC
AND 0X10
LD A,0 ;
JR NZ,OTF4
LD A,1 ;
OTF4 CALL PRTSPECSYM
LD HL,OUT_NAME_FILET
RST8 _COM_FAT,_GET_LONGNAME
LD (LONG_NAME),A
CALL FILENAME8_3
POP DE
POP HL
POP BC
INC E
DEC C
JR NZ,OTF2
RET
FILENAME8_3 LD A,(ERS_FLAGS)
AND M_RUN_FAT
JR NZ,OTF5
LD B,8
OTF1 LD A,(HL)
INC HL
CALL PRT_SYM
DJNZ OTF1
RET
OTF5 EX DE,HL
LD A,H
ADD A,A
ADD A,A
ADD A,A
LD H,A
INC H
LD (OUT_NAME_FILE+1),HL
LD HL,OUT_NAME_FILET
LD BC,0
LONG_NAME EQU $-2
LD A,FV_FILE6
CP C
JR Z,OTF7
JR NC,OTF6
EX DE,HL
LD HL,FV_FILE6
ADD HL,DE
LD (HL),">"
INC HL
LD (HL),0
JR OTF7
OTF6 SUB C
ADD HL,BC
LD C,A
LD D,H
LD E,L
INC DE
LD (HL)," "
LDIR
XOR A
LD (DE),A
OTF7 LD HL,OUT_NAME_FILE
RST8 _PRINT_MESSAGE
RET
NO_BAS LD HL,ERS_FLAGS
BIT B_VIEW_IMG,(HL)
JP NZ,FILES_BROWSE
LD IX,NOBASIC
RST8 _WINW
JP _RULILKA
RUNFILE DI
CALL SHUT2AY ; AY
LD HL,ERS_FLAGS
BIT B_VIEW_IMG,(HL)
JR Z,RUNFILE2
LD IX,FAT_FILES
LD HL,ERS_FLAGS
SET B_VIEW_IMG,(HL)
JP RUN_HOB ;
SCL
RUNFILE2 LD L,(IX+_TEK_PKT_L)
LD H,(IX+_TEK_PKT_H) ;
LD DE,ADR_CAT
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,DE ;
RUNFILE1 LD DE,RUNNAM
LD BC,8
LDIR
LD HL,0X3E08+0XA7
LD DE,0XFFFF
LD C,0XA8 ;21 ᨬ¢®« UDG
LDDR
LD HL,RUN_BASIC
LD DE,0X5D3B
LD BC,ERUN_BASIC-RUN_BASIC
LDIR ;
CALL MEMSET ;
CALL FOR_RUN
EI
LD BC,0XFF56
CALL 0X1EB7
LD HL,0X1B7D ;
PUSH HL
LD HL,0X6000
LD DE,0X6001
LD BC,0XFF00-0X6000
LD (HL),0
JP 0X33C3
FOR_RUN SET 3,(IY+1)
LD IY,ERR_NR
LD (IY),0XFF
SET 7,(IY+1)
RES 4,(IY+1)
LD HL,0X2758
EXX
LD A,0XC9
LD (TRD_5CC2),A
LD HL,0
LD (NEWPPC),HL
XOR A
LD (NSPPS),A
RET
;
1-4 (A-D)
NEXTDRIVE LD A,(TXT_DRIVE) ;
INC A ;+1,
SUB 0X10 ;
CP "5" ;
4
JR C,SELDRV1
SUB 4 ;
JR SELDRV1
NEXTVIRT LD HL,MAINLOP
PUSH HL
LD A,(ERS_FLAGS)
AND M_CLOCK_ON
RET Z
LD H,VIRT_REAL_DRIVE
CALL READCMOS
AND 3 ;A=
INC A
CP 4
JR C,NEXTVIRT1
XOR A
NEXTVIRT1 LD D,A ;
LD A,L
AND %11111100 ;A=
OR D ;
LD L,A
CALL WRITECMOS ;
RST8 _MOUNTER,_MOUNT_RAMDISK ;
CALL REST2X2
CALL PRT_VIRTDRV
LD A,(ERS_FLAGS)
AND M_MOUSE_ON
RET Z
JP DRAW_MOUSE
;
SELDRV LD A,(LAST_K) ;
SELDRV1 SUB "1" ;
LD HL,MAINLOP ;
PUSH HL
SELDRVPP LD (DRV_SYM),A ;
RLCA
RLCA
LD D,A ;
LD A,(ERS_FLAGS)
AND M_CLOCK_ON
RET Z ;
,
LD H,VIRT_REAL_DRIVE
CALL READCMOS
AND %11110011 ;
OR D ;
LD L,A
CALL WRITECMOS ;
CALL SET_DRIVE ;
CALL REST2X2 ;
CALL PRT_DRV_SYM ;
LD A,(ERS_FLAGS)
AND M_MOUSE_ON
RET Z
JP DRAW_MOUSE ;
;FIX mouse key if no mouse
ONERNCLS LD A,(ERS_FLAGS)
AND M_MOUSE_ON
JR Z,ONERNC1
LD A,0XFA
IN A,(0XDF)
RRA
JP NC,_STUPID
ONERNC1 POP AF
EX (SP),HL
RET
;
ONERR EX (SP),HL
PUSH AF
PUSH DE
PUSH HL
LD DE,0X1303
AND A
SBC HL,DE
POP HL
POP DE
JR Z,ONERR1
PUSH DE
PUSH HL
LD DE,0X0D6B
AND A
SBC HL,DE
POP HL
POP DE
JR NZ,ONERNCLS
; LD A,H
; CP HIGH (0X0D6B)
; JR NZ,ONERNCLS
; LD A,L
; CP LOW (0X0D6B)
; JR NZ,ONERNCLS
ONERR1 POP HL
POP HL
POP HL
POP HL
POP HL
EI
CALL GLUDIN
LD HL,TRD_5CF4
LD A,(HL) ;
INC A
CALL DIV10
LD (NUM_SEC_TXT+1),A
LD A,D
LD (NUM_SEC_TXT),A
INC HL
LD A,(HL) ;
SRL A
LD E,A
ADC A,"0"
SUB E
LD (SIDE_DISK),A ;
LD A,E
CALL DIV10
LD (NUM_TRK_TXT+1),A
LD A,D
LD (NUM_TRK_TXT),A
LD IX,DSK_ERR ;
RST8 _WINW
JP _RULILKA
RESET_VG LD C,0XFF
XOR A
LD IX,0X3FF0 ;OUT (C),A
CALL DOSIX
LD A,(DRV_SYM)
OR 0X3C
LD HL,0X2A53
CALL SET_DOS_PAGE ;ãáâ ®¢ª DOS áâà ¨æë
LD A,0X68 ;è £ § ¤
LD C,0X1F
CALL DOSIX
LD HL,DSTUPID
LD (ERR_SP),HL
LD A,0XC3
LD (TRD_5CC2),A
LD HL,ONERR
LD (TRD_5CC3),HL
RET
SET_DOS_PAGE PUSH HL
DOSIX PUSH IX
JP TO_DOS
;
,
640
DISK_NONE PEC_ON M_SHADOW_BF
LD A,RAM_RAMDISK
LD BC,WIN_P1
OUT (C),A
LD HL,0X7FFF
LD A,(HL)
DEC H
CP "R"
JR NZ,DISK_NONE1
LD A,(HL)
CP "D"
DISK_NONE1 EX AF,AF'
LD A,ZXSTD_CPU1;0XFA
OUT (C),A
PEC_OFF M_SHADOW_BF
EX AF,AF'
LD HL,ERS_FLAGS
RES B_LOAD_IMG,(HL)
JP NZ,CREATE_TRDRAM ;
,
RET
DIV10 LD D,0X30-1
INC D
SUB 0X0A
JR NC,$-3
ADD A,0X0A+0X30
RET
_RETRY LD A,"R"
JR $+4
_IGNORE LD A,"I"
LD HL,0X3F7E
EX (SP),HL
DI
JP TO_DOS