промежуточный

This commit is contained in:
Anatoliy Belyanskiy 2023-08-06 06:16:13 +10:00
parent c50040b715
commit f6e41854a8
13 changed files with 374 additions and 265 deletions

View File

@ -10,12 +10,11 @@
;=====================================================================[] ;=====================================================================[]
;Rev. Date Name Description ;Rev. Date Name Description
;---------------------------------------------------------------------[] ;---------------------------------------------------------------------[]
;R13 03-08-2023 BAO „®¡ ¢«¥­ ¢ë¢®¤ ­®¬¥à  ¢¥àᨨ Š®­á®«¨ ¤«ï ª®¬ ­¤ë VERSION
;R12 23-07-2023 BAO „®¡ ¢«¥­  ª®¬ ­¤  REBOOT - ¯¥à¥§ £à㧪  á ¯®«­®© ®ç¨á⪮© ¯ ¬ï⨠;R12 23-07-2023 BAO „®¡ ¢«¥­  ª®¬ ­¤  REBOOT - ¯¥à¥§ £à㧪  á ¯®«­®© ®ç¨á⪮© ¯ ¬ïâ¨
;R11 20-07-2023 BAO <09>®¯à ¢«¥­  äã­ªæ¨ï LCPIR ¤«ï ª®à४⭮£® ¢ë¡®à  á®®¡é¥­¨ï ®¡ ®è¨¡ª¥ ¯à¨ ­®¬¥à¥ ®è¨¡ª¨ > § £®â®¢«¥­­ëå á®®¡é¥­¨© ;R11 20-07-2023 BAO <09>®¯à ¢«¥­  äã­ªæ¨ï LCPIR ¤«ï ª®à४⭮£® ¢ë¡®à  á®®¡é¥­¨ï ®¡ ®è¨¡ª¥ ¯à¨ ­®¬¥à¥ ®è¨¡ª¨ > § £®â®¢«¥­­ëå á®®¡é¥­¨©
;R10 16-05-2023 BAO TE•T MODE AND TEXT ARE RESTORED AFTER RETURNING FROM THE APP ;R10 16-05-2023 BAO TE•T MODE AND TEXT ARE RESTORED AFTER RETURNING FROM THE APP
;R09 ??-??-???? DNS ;????? ???? ;R08 21-02-2003 DNS FIX BUG IN BAT-PARSER, IT SPLIT STRINGS WHEN LINE BEGAN AT #xx00 OFFSET
;R08 21-02-2003 DNS FIX BUG IN BAT-PARSER, IT SPLIT STRINGS
; WHEN LINE BEGAN AT #xx00 OFFSET
;R07 14-12-2002 DNS PARSING BATCH LINE ;R07 14-12-2002 DNS PARSING BATCH LINE
;R06 12-12-2002 DNS ADD %0, %1, %2 ... ;R06 12-12-2002 DNS ADD %0, %1, %2 ...
;R05 11-12-2002 DNS IMPLEMENTED %VAR% ;R05 11-12-2002 DNS IMPLEMENTED %VAR%
@ -25,8 +24,10 @@
;R01 19-11-2002 DNS ADD ENVIRONMENT %VARIABLE% IN ECHO ;R01 19-11-2002 DNS ADD ENVIRONMENT %VARIABLE% IN ECHO
;=====================================================================[] ;=====================================================================[]
include 'shared_includes/constants/bios_equ.inc' includelua 'Shared_includes/lua/Functions.lua'
include 'shared_includes/constants/dss_equ.inc' include 'shared_includes/constants/bios_equ.inc'
include 'shared_includes/constants/dss_equ.inc'
include 'console/version.inc'
; ;
; Standart EQU section ; Standart EQU section
@ -105,7 +106,7 @@ FPRIMAR LD C,Dss.CTRLKey
JP CONSOLE JP CONSOLE
;R07 ;R07
MAKE_BATCH_PRM_ARRAY MAKE_BATCH_PRM_ARRAY:
DEC HL DEC HL
B_SKIP_SPACE B_SKIP_SPACE
INC HL INC HL
@ -122,10 +123,10 @@ B_SKIP_SPACE
LD (HL),D LD (HL),D
INC HL INC HL
EX DE,HL EX DE,HL
B_FIND_SPACE B_FIND_SPACE:
INC HL INC HL
LD A,(HL) LD A,(HL)
CP "!" CP " "+1
JR NC,B_FIND_SPACE JR NC,B_FIND_SPACE
LD (HL),0 LD (HL),0
OR A OR A
@ -187,13 +188,13 @@ ADDBAT PUSH DE
JR NZ,BATLINE JR NZ,BATLINE
EX DE,HL EX DE,HL
LD DE,CMDLINE LD DE,CMDLINE
AND A ;AND A
SBC HL,DE SBC HL,DE
RET Z JR Z,.exit
LD A,L LD A,L
LD (CMDLINE-1),A LD (CMDLINE-1),A
CALL CMDMODE CALL CMDMODE
LD A,(BAT_FM) .exit: LD A,(BAT_FM)
LD C,Dss.Close LD C,Dss.Close
RST ToDSS RST ToDSS
RET RET
@ -214,24 +215,22 @@ NBLINE CALL MOVWORD
LD DE,CMDLINE LD DE,CMDLINE
POP HL POP HL
JP NBLINE JP NBLINE
MOVWORD: LD A,(BAT_LEN)
MOVWORD LD A,(BAT_LEN)
LD B,A LD B,A
M00WORD LD A,(HL) .loop: LD A,(HL)
LD (DE),A LD (DE),A
CP #20 CP ' '
JR C,M01WORD
INC HL INC HL
JR C,.loop2
INC DE INC DE
DJNZ M00WORD DJNZ .loop
SCF SCF
RET RET
.loop2: LD A,(HL)
M01WORD LD A,(HL) CP ' '
CP #20
RET NC RET NC
INC HL INC HL
DJNZ M01WORD DJNZ .loop2
;R08 ;R08
PUSH DE PUSH DE
CALL READBAT CALL READBAT
@ -240,7 +239,7 @@ M01WORD LD A,(HL)
LD A,(BAT_LEN) LD A,(BAT_LEN)
LD B,A LD B,A
OR A OR A
JR NZ,M01WORD JR NZ,.loop2
SCF SCF
;R08 ;R08
RET RET
@ -326,10 +325,12 @@ CONSOLE:
RE_: CALL GETXY RE_: CALL GETXY
CALL GETPATH CALL GETPATH
; CALL VERS ; CALL VERS
LD HL,CMDLINE ;!TEST
LD DE,CMDLINE+1 LD HL,CMDLINE-1
LD DE,CMDLINE
LD (HL),0 LD (HL),0
LD BC,#7F LD BC,#7F ;!HARDCODE ¤«¨­  CMDLINE
LDIR LDIR
CALL INPUT CALL INPUT
CALL CRLF CALL CRLF
@ -344,13 +345,13 @@ GETXY LD C,Dss.Cursor
RST ToDSS RST ToDSS
JP LOCAT JP LOCAT
INPUT XOR A INPUT: XOR A
LD (POSIT),A LD (POSIT),A
LD (SHIFT),A LD (PRINT_S.SHIFT),A
LD (LEN_NEW),A LD (LEN_NEW),A
LD IX,CMDLINE-2 LD IX,CMDLINE-2
CALL CEDIT CALL CEDIT
CALL RES_CUR CALL RES_CUR ;!FIXIT scroll ¯®ç¨­¨âì, âãâ ⮦¥ ¢«¨ï¥â ¢à®¤¥
RET RET
COMP: CALL EVALCMD ;R05 COMP: CALL EVALCMD ;R05
@ -530,9 +531,9 @@ RUN_BAT CALL BATCH
RET RET
; !! <09>¥ ¤¥« âì ®¤­ã ª®¬ ­¤ã > 256 ᨬ¢®«®¢)) !! ; !! <09>¥ ¤¥« âì ®¤­ã ª®¬ ­¤ã > 256 ᨬ¢®«®¢)) !!
BATLIST DZ 'PAUSE' : DW CPAUSE BATLIST: DZ 'PAUSE' : DW CPAUSE
DZ 'REM' : DW CREM DZ 'REM' : DW CREM
CMDLIST DZ 'CD' : DW CCHDIR CMDLIST: DZ 'CD' : DW CCHDIR
DZ 'DIR' : DW DIR DZ 'DIR' : DW DIR
DZ 'ECHO' : DW CECHO DZ 'ECHO' : DW CECHO
DZ 'PATH' : DW CPATH DZ 'PATH' : DW CPATH
@ -710,14 +711,14 @@ CPAUSE LD DE,PAUSMSG
RET RET
;R09
PATHSTR DB "PATH=",0 PATHSTR DB "PATH=",0
CPATH LD A,(DE) CPATH LD A,(DE)
OR A OR A
JP Z,PRNEPATH JP Z,PRNEPATH
INC DE INC DE
CP 9 CP 9 ; Tab
JR Z,CPATH JR Z,CPATH
CP "!" CP "!"
JR C,CPATH JR C,CPATH
@ -751,7 +752,6 @@ PRNEPATH
RST ToDSS RST ToDSS
CALL CRLF CALL CRLF
RET RET
;R09
CSET LD A,(DE) CSET LD A,(DE)
@ -834,7 +834,7 @@ ECHO_FR LD A,#FF
;R04 ;R04
EVALCMD EVALCMD:
XOR A XOR A
LD HL,CMDLINE-1 LD HL,CMDLINE-1
LD C,(HL) LD C,(HL)
@ -862,13 +862,13 @@ MOVLBAK LD A,(HL)
; HL - STRING WITH %VAR% ; HL - STRING WITH %VAR%
EVALSTR EVALSTR
;R04 LD DE,DTA ;R04 LD DE,DTA
VARLOOP ;VARLOOP
LD A,(HL) LD A,(HL)
CP "%" CP "%"
JR Z,TVARIABLE JR Z,TVARIABLE
VARL1 LDI VARL1 LDI
OR A OR A
JR NZ,VARLOOP JR NZ,EVALSTR
LD BC,0 LD BC,0
LD (TVAR_PNT),BC LD (TVAR_PNT),BC
;R04 LD HL,DTA ;R04 LD HL,DTA
@ -887,7 +887,7 @@ IEIGHT DB "EIGHT",0
ININE DB "NINE",0 ININE DB "NINE",0
;R06 ;R06
BAT_PRM_ARRAY BAT_PRM_ARRAY:
DW IZERO, IONE, ITWO, ITHREE, IFOUR, IFIVE, ISIX, ISEVEN, IEIGHT, ININE DW IZERO, IONE, ITWO, ITHREE, IFOUR, IFIVE, ISIX, ISEVEN, IEIGHT, ININE
DW 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DW 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
;R06 ;R06
@ -934,7 +934,7 @@ MVBTP LD A,(HL)
JR NZ,MVBTP JR NZ,MVBTP
DEC DE DEC DE
NOBTP POP HL NOBTP POP HL
JP VARLOOP ;R06 JP EVALSTR ;R06
;R06 ;R06
TVAR1 PUSH HL TVAR1 PUSH HL
@ -960,7 +960,7 @@ TNOVAR POP HL
INC HL INC HL
LD BC,0 LD BC,0
LD (TVAR_PNT),BC LD (TVAR_PNT),BC
JP VARLOOP JP EVALSTR
;R01 ;R01
COMPARE LD A,(DE) COMPARE LD A,(DE)
@ -1647,28 +1647,16 @@ hex8: push af
VERS: LD C,Dss.Version VERS: LD C,Dss.Version
RST ToDSS RST ToDSS
PUSH BC
PUSH DE
LD L,D LD L,D
LD H,0 LD H,E
LD DE,PRM1 LD DE,PRM1
CALL .num_ver ;decim2 ­®¬¥à ¢¥àᨨ (0..9) CALL .Set_Ver_to_PRM ; set DSS version
LD A,'.' ;R13
LD (DE),A LD HL,256*CONSOLE_MODF + CONSOLE_VERS
LD BC,CONSOLE_BUILD
INC DE LD DE,PRM2
POP HL CALL .Set_Ver_to_PRM ; set Shell version
LD H,0 ;R13
CALL .num_mod ;decim2 ­®¬¥à ¬®¤¨ä¨ª æ¨¨ (0..99)
POP HL
LD A,'.'
LD (DE),A
INC DE
CALL .num_build ;decim3 ­®¬¥à ¡¨«¤  (0..999)
XOR A
LD (DE),A
LD DE,VERSMSG LD DE,VERSMSG
JP MESSAGE JP MESSAGE
@ -1707,6 +1695,32 @@ VERS: LD C,Dss.Version
ld (de),a ; á®åà. ¢ ¡ãä¥à¥ ld (de),a ; á®åà. ¢ ¡ãä¥à¥
inc de inc de
ret ret
;
; ‚室:
; L - ­®¬¥à ¢¥àᨨ (0..9)
; H - ­®¬¥à ¬®¤¨ä¨ª æ¨¨ (0..99)
; BC - ­®¬¥à ¡¨«¤  (0..999)
; DE - ­®¬¥à ¯ à ¬¥âà 
.Set_Ver_to_PRM:
PUSH BC
PUSH HL
LD H,0
CALL .num_ver ;decim2 ­®¬¥à ¢¥àᨨ (0..9)
LD A,'.'
LD (DE),A
INC DE
POP HL
LD L,H
LD H,0
CALL .num_mod ;decim2 ­®¬¥à ¬®¤¨ä¨ª æ¨¨ (0..99)
POP HL
LD A,'.'
LD (DE),A
INC DE
CALL .num_build ;decim3 ­®¬¥à ¡¨«¤  (0..999)
XOR A
LD (DE),A
RET
/* /*
VERS: VERS:
LD C,Dss.Version LD C,Dss.Version
@ -1777,8 +1791,7 @@ CEXIT: LD A,(TASKX)
DEC A DEC A
RET Z RET Z
POP HL POP HL
QUIT: LD B,0 QUIT: LD BC,Dss.Exit
LD C,Dss.Exit
RST ToDSS RST ToDSS
RET RET
@ -1804,7 +1817,7 @@ ERR_MSG: INC DE
MESSAGE: CALL FMESAGE MESSAGE: CALL FMESAGE
CALL PRINTZ CALL PRINTZ
CALL GETXY ;CALL GETXY
RET RET
FMESAGE: INC DE FMESAGE: INC DE
@ -1847,12 +1860,14 @@ PUTPRMA: LD A,(HL)
// ret // ret
PRINTZ: LD A,(HL) PRINTZ: LD A,(HL)
INC HL INC HL
OR A OR A
RET Z RET Z
CP "%" CP "%"
JR NZ,.char JR NZ,.char
LD A,(HL) LD A,(HL)
INC HL INC HL
SUB "1" SUB "1"
@ -1902,20 +1917,32 @@ DIR3MSG EQU 10
HELPMSG EQU 11 HELPMSG EQU 11
MSG0: DB 0 MSG0: DB 0
; 0
DB "Volume in drive %1 has no label",CR,LF ; !FIXIT DB "Volume in drive %1 has no label",CR,LF ; !FIXIT
DB "Volume Serial number is %2",CR,LF DB "Volume Serial number is %2",CR,LF
DB "Directory of %3",CR,LF,CR,LF,0 DB "Directory of %3",CR,LF,CR,LF,0
DB "Estex DSS: Version %1",CR,LF,0 ;R02 ; 1
DB "Estex DSS: Version %1",CR,LF
DB "Console: Version %2",CR,LF,0 ;R13
; 2
DB "Current date: %1",CR,LF,0 DB "Current date: %1",CR,LF,0
; 3
DB "Current time: %1",CR,LF,0 DB "Current time: %1",CR,LF,0
; 4
DB "Press any key to continue . . .",CR,LF,0 DB "Press any key to continue . . .",CR,LF,0
; 5
DB "Invalid parametr",CR,LF,0 DB "Invalid parametr",CR,LF,0
; 6
DB "Echo is %1",CR,LF,0 DB "Echo is %1",CR,LF,0
; 7
DB "on",0 DB "on",0
; 8
DB "off",0 DB "off",0
; 9
DB " %1 file(s) %2 bytes",CR,LF,CR,LF,0 DB " %1 file(s) %2 bytes",CR,LF,CR,LF,0
; FILENAME EXT SIZE DATE TIME ; 10 FILENAME EXT SIZE DATE TIME
DB "%1 %2 %3 %4 %5",CR,LF,0 DB "%1 %2 %3 %4 %5",CR,LF,0
; 11
DB "COMMANDS:",CR,LF,CR,LF DB "COMMANDS:",CR,LF,CR,LF
DB "DIR REN | RENAME PATH HELP ",CR,LF DB "DIR REN | RENAME PATH HELP ",CR,LF
DB "CD | CHDIR DEL | ERASE SET VER | VERSION ",CR,LF DB "CD | CHDIR DEL | ERASE SET VER | VERSION ",CR,LF
@ -1935,8 +1962,8 @@ ERR0: DB #00
DZ "File not found" ; 03 - ä ©« ­¥ ®¡­ à㦥­ DZ "File not found" ; 03 - ä ©« ­¥ ®¡­ à㦥­
DZ "Path not found" ; 04 - ­¥¢¥à­ë© ¯ãâì DZ "Path not found" ; 04 - ­¥¢¥à­ë© ¯ãâì
DZ "Invalid handle" ; 05 - ­¥áãé¥áâ¢ãî騩 ä ©«®¢ë© ¬ ­¨¯ã«ïâ®à DZ "Invalid handle" ; 05 - ­¥áãé¥áâ¢ãî騩 ä ©«®¢ë© ¬ ­¨¯ã«ïâ®à
DZ "No free filehandle" ; 06 - ­¥â ᢮¡®¤­®£® ä ©«®¢®£® ¬ ­¨¯ã«ïâ®à  DZ "Too many open files" ; 06 - ­¥â ᢮¡®¤­®£® ä ©«®¢®£® ¬ ­¨¯ã«ïâ®à 
DZ "File exist" ; 07 - ä ©« áãé¥áâ¢ã¥â DZ "File already exist" ; 07 - ä ©« áãé¥áâ¢ã¥â
DZ "File read only" ; 08 - ä ©« ⮫쪮 ¤«ï ç⥭¨ï DZ "File read only" ; 08 - ä ©« ⮫쪮 ¤«ï ç⥭¨ï
DZ "Root overflow" ; 09 - ¯¥à¥¯®«­¥­¨¥ ROOT (ª®à­¥¢®£® ª â «®£ ) DZ "Root overflow" ; 09 - ¯¥à¥¯®«­¥­¨¥ ROOT (ª®à­¥¢®£® ª â «®£ )
DZ "No free space" ; 10 - ­¥â ᢮¡®¤­®£® ¬¥áâ  ­  ¤¨áª¥ DZ "No free space" ; 10 - ­¥â ᢮¡®¤­®£® ¬¥áâ  ­  ¤¨áª¥
@ -1959,14 +1986,14 @@ ERR0: DB #00
DZ "Drive failure" ; 27 - á¡®© ¤¨áª  DZ "Drive failure" ; 27 - á¡®© ¤¨áª 
DZ "Extended error 28" DZ "Extended error 28"
DZ "Extended error 29" DZ "Extended error 29"
DZ "No free memory" ; 30 - ­¥¤®áâ â®ç­® ¯ ¬ï⨠DZ "Not enough memory" ; 30 - ­¥¤®áâ â®ç­® ¯ ¬ïâ¨
DZ "Invalid memory block" ; 31 - ­¥áãé¥áâ¢ãî騩 ¡«®ª ¯ ¬ï⨠DZ "Invalid memory block" ; 31 - ­¥áãé¥áâ¢ãî騩 ¡«®ª ¯ ¬ïâ¨
DZ "Extended error 32" DZ "Extended error 32"
DZ "Maximum PATH size exceeded" ; 33 - ¯à¥¢ë襭 ¬ ªá¨¬ «ì­ë© à §¬¥à ¯¥à¥¬¥­­®© DZ "Maximum PATH size exceeded" ; 33 - ¯à¥¢ë襭 ¬ ªá¨¬ «ì­ë© à §¬¥à ¯¥à¥¬¥­­®©
DZ "Extended error 34" DZ "Extended error 34"
DZ "Too many files in directory" ; 35 - ᫨誮¬ ¬­®£® ä ©«®¢ ¢ ¤¨à¥ªâ®à¨¨ DZ "Too many files in directory" ; 35 - ᫨誮¬ ¬­®£® ä ©«®¢ ¢ ¤¨à¥ªâ®à¨¨
DZ "Directory nesting too large or number of folders > 1023" ; 36 - ᫨誮¬ ¡®«ìè ï ¢«®¦¥­­®áâì ª â «®£®¢ ¨«¨ ª®«¨ç¥á⢮ ¯ ¯®ª > 1023 DZ "Directory nesting too large or number of folders > 1023" ; 36 - ᫨誮¬ ¡®«ìè ï ¢«®¦¥­­®áâì ª â «®£®¢ ¨«¨ ª®«¨ç¥á⢮ ¯ ¯®ª > 1023
DZ "Operation interrupted by user" ; 37 - ®¯¥à æ¨ï ¯à¥à¢ ­  ¯®«ì§®¢ â¥«¥¬ DZ "Operation aborted by user" ; 37 - ®¯¥à æ¨ï ¯à¥à¢ ­  ¯®«ì§®¢ â¥«¥¬
DZ "Common error" ; 38 - ®¡é ï ®è¨¡ª  DZ "Common error" ; 38 - ®¡é ï ®è¨¡ª 
DZ "Unexpected application termination" ; 39 - unexpected application termination / ­¥®¦¨¤ ­­®¥ § ¢¥à襭¨¥ ¯à¨«®¦¥­¨ï DZ "Unexpected application termination" ; 39 - unexpected application termination / ­¥®¦¨¤ ­­®¥ § ¢¥à襭¨¥ ¯à¨«®¦¥­¨ï
DZ "40" DZ "40"
@ -2085,14 +2112,14 @@ LFF PUSH HL
POP HL POP HL
RET RET
PRINTX CP #20 PRINTX: CP ' '
JP NC,CHAR JP NC,CHAR
CP #0D CP #0D
JP Z,CR_ JP Z,CR_
CP #0A CP #0A
JP Z,LF_ JP Z,LF_
CHAR PUSH BC CHAR: PUSH BC
LD BC,#0182 LD BC,1*256 + BIOS.LP_PRINT_SYM
RST ToBIOS RST ToBIOS
POP BC POP BC
RET RET
@ -2113,11 +2140,11 @@ CEDIT PUSH IX
LD (ETXS),HL LD (ETXS),HL
XOR A XOR A
LD (POSIT),A LD (POSIT),A
LD (SHIFT),A LD (PRINT_S.SHIFT),A
EDIT1 LD DE,(ETXS) EDIT1 LD DE,(ETXS)
CALL PRINT_S CALL PRINT_S
CALL KEY CALL KEY
CP 13 CP 13 ; enter code
RET Z RET Z
LD HL,EDIT1 LD HL,EDIT1
PUSH HL PUSH HL
@ -2165,7 +2192,7 @@ ADD_SM EX AF,AF'
LD HL,(ETXE) LD HL,(ETXE)
INC HL INC HL
LD (ETXE),HL LD (ETXE),HL
LD HL,SHIFT LD HL,PRINT_S.SHIFT
SUB (HL) SUB (HL)
CP (IX-1) CP (IX-1)
RET C RET C
@ -2175,14 +2202,14 @@ ADD_SM EX AF,AF'
; CALL PAGE ; CALL PAGE
RET RET
BACK LD A,(POSIT) BACK: LD A,(POSIT)
OR A OR A
RET Z ;JP Z,BCK RET Z ;JP Z,BCK
DEC A DEC A
LD (POSIT),A LD (POSIT),A
LD (MAIN_X),A LD (MAIN_X),A
INC A INC A
LD HL,SHIFT LD HL,PRINT_S.SHIFT
SUB (HL) SUB (HL)
RET NZ RET NZ
LD A,(STEP) LD A,(STEP)
@ -2199,7 +2226,7 @@ FORW LD A,(POSIT)
INC A INC A
LD (POSIT),A LD (POSIT),A
LD (MAIN_X),A LD (MAIN_X),A
LD HL,SHIFT LD HL,PRINT_S.SHIFT
SUB (HL) SUB (HL)
CP (IX-1) CP (IX-1)
RET C RET C
@ -2236,7 +2263,7 @@ SUB_SM XOR A
LD HL,(ETXE) LD HL,(ETXE)
DEC HL DEC HL
LD (ETXE),HL LD (ETXE),HL
LD HL,SHIFT LD HL,PRINT_S.SHIFT
INC A INC A
SUB (HL) SUB (HL)
RET NZ RET NZ
@ -2249,7 +2276,7 @@ SUB_SM XOR A
RET RET
KEY ;RES 5,(IY+1) KEY ;RES 5,(IY+1)
LD A,(SHIFT) LD A,(PRINT_S.SHIFT)
LD E,A LD E,A
LD A,(POSIT) LD A,(POSIT)
SUB E SUB E
@ -2310,7 +2337,8 @@ RES_CUR LD A,(CURSORX)
LD A,(_A+1) LD A,(_A+1)
JP PRINTX JP PRINTX
PRINT_S PUSH DE PRINT_S:
PUSH DE
CALL GETXY ;;; CALL GETXY ;;;
LD DE,(TEMPXY) LD DE,(TEMPXY)
LD E,0 LD E,0
@ -2321,36 +2349,34 @@ PRINT_S PUSH DE
CALL PRINTX CALL PRINTX
POP DE POP DE
EX DE,HL EX DE,HL
SH LD BC,#0000 .SHIFT+1: LD BC,#0000
ADD HL,BC ADD HL,BC
LD A,(SHIFT) LD A,(.SHIFT)
LD C,A LD C,A
LD A,(IX+1) LD A,(IX+1)
SUB C SUB C
JP Z,EMT_STR JP Z,.EMT_STR
LD B,A LD B,A
LD A,(IX-1) LD A,(IX-1)
SUB B SUB B
JR NC,PR_S JR NC,.PR_S
LD B,(IX-1) LD B,(IX-1)
PR_S PUSH BC .PR_S: PUSH BC
LD C,#86 LD C,BIOS.LP_PRINT_LINE2
RST ToBIOS RST ToBIOS
POP BC POP BC
EMT_STR LD A,(IX-1) .EMT_STR: LD A,(IX-1)
SUB B SUB B
EI EI
RET Z RET Z
LD B,A LD B,A
LD C,#82 LD A,' '
LD A,#20 LD C,BIOS.LP_PRINT_SYM
RST ToBIOS RST ToBIOS
EI EI
RET RET
SHIFT EQU SH+1 GET_CMD: LD D,XH
GET_CMD LD D,XH
LD E,XL LD E,XL
EX DE,HL EX DE,HL
LD E,(HL) LD E,(HL)
@ -2444,10 +2470,19 @@ BAT_BUFFER.size EQU 128 ;!FIXIT BAT_BUFFER LENGTH
/*
; ‘âàãªâãà  áâப¨ ¢¢®¤  ~input line~
struct_input_line:
db max_len_comline ;+0 254 ¬ ªá. ç¨á«® ¢¢®¤. ᨬ¢®«®¢
db 0 ;+1 ä« £ ReadyString
db 0 ;+2 X ⥪. ¯®«®¦. ªãàá®à  ¢ ¯à¥¤¥« å áâப¨
db 0 ;+3 X ᬥé. áâப¨ §  «¥¢ë© ªà © (¢ ᨬ¢®« å)
db 0 ;+4 ç¨á«® ¢¢¥¤¥­­ëå ᨬ¢®«®¢
ds max_len_comline+1 ;+5 áâப  ¢¢®¤ 
*/
STRUCT BUFFERS_STRUCT STRUCT BUFFERS_STRUCT
CMDLINE BLOCK 256,0 CMDLINE BLOCK 256,0 ;!HARDCODE cmdline size
TMPLINE BLOCK 256,0 TMPLINE BLOCK 256,0
PRMLINE BLOCK 256,0 PRMLINE BLOCK 256,0
;BUFFER ;BUFFER
@ -2471,7 +2506,7 @@ BAT_FM DB 0
BAT_LEN DB 0 BAT_LEN DB 0
ECHOFLG DB 0 ECHOFLG DB 0
PATHLEN DB 0 PATHLEN DB 0
PATH BLOCK 40,0 ;!FIXIT PATH LENGTH PATH BLOCK 40,0 ;!HARDCODE PATH LENGTH
ENDS ENDS

1
Console/build.txt Normal file
View File

@ -0,0 +1 @@
31

22
Console/version.inc Normal file
View File

@ -0,0 +1,22 @@
;------------------[ „®áâ ñ¬ ⥪ãéãî ¤ âã ¨ BUILD++ ]-----------------[]
LUA PASS1
Console_build = increase_build("./Console/build.txt")
if Console_build > 999 then
Console_build = 999
print("WARNING! Build > 999","WARNING! Build > 999","WARNING! Build > 999","WARNING! Build > 999","\aWARNING! Build > 999\a")
end
ENDLUA
LUA ALLPASS
sj.insert_label("lua_BUILD", Console_build)
ENDLUA
;---------------------------------------------------------------------[]
;
; Shell full version
; ­®¬¥à ¢¥àᨨ (0..9)
CONSOLE_VERS EQU 1
; ­®¬¥à ¬®¤¨ä¨ª æ¨¨ (0..99)
CONSOLE_MODF EQU 2
; ­®¬¥à ¡¨«¤  (0..999)
CONSOLE_BUILD EQU lua_BUILD
;

View File

@ -185,7 +185,7 @@ DEL01 EX DE,HL ; hl=
; INPUT: HL - "old_name.ext",#00 without simbols * ? ; INPUT: HL - "old_name.ext",#00 without simbols * ?
; DE - "new_name.ext",#00 without simbols * ? ; DE - "new_name.ext",#00 without simbols * ?
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
RENAME PUSH DE RENAME: PUSH DE
LD DE,MASKARE LD DE,MASKARE
CALL MASK CALL MASK
POP DE POP DE
@ -1134,7 +1134,7 @@ MASKARE: BLOCK 8,0 ;
; RET: C=2 FILE WITHOUT EXTENTION ; RET: C=2 FILE WITHOUT EXTENTION
; C=1 FILE WITH EXTENTION ; C=1 FILE WITH EXTENTION
;------------------------------------------------- ;-------------------------------------------------
MASK PUSH HL MASK: PUSH HL
PUSH DE PUSH DE
LD H,D LD H,D
LD L,E LD L,E
@ -1147,13 +1147,13 @@ MASK PUSH HL
LD A,(HL) LD A,(HL)
CP '.' ;R07 CP '.' ;R07
SCF ;R07 SCF ;R07
JR Z,MASKB ;R07 JR Z,.MASKB ;R07
CP '!' CP ' '+1
MASKB LD A,DSS_Error.sys.INVALID_NAME .MASKB: LD A,DSS_Error.sys.INVALID_NAME
RET C RET C
LD BC,#0902 ; B - áç¥â稪 LD BC,#0902 ; B - áç¥â稪
MASK1 LD A,(HL) MASK1: LD A,(HL)
CP '!' CP ' '+1
CCF CCF
RET NC RET NC
CP '"' CP '"'
@ -1201,20 +1201,20 @@ MASK_ERR:
SCF SCF
RET RET
MASK3 LD A,'?' MASK3: LD A,'?'
INC HL INC HL
DJNZ MASK6 DJNZ MASK6
LD A,DSS_Error.sys.INVALID_NAME LD A,DSS_Error.sys.INVALID_NAME
SCF SCF
RET RET
MASK6 LD (DE),A MASK6: LD (DE),A
INC DE INC DE
DJNZ MASK6 DJNZ MASK6
LD B,1 LD B,1
JR MASK1 JR MASK1
MASK5 LD A,' ' MASK5: LD A,' '
INC HL INC HL
DJNZ MASK4 DJNZ MASK4
LD B,4 LD B,4
@ -1224,7 +1224,7 @@ MASK5 LD A,' '
SCF SCF
RET RET
MASK4 LD (DE),A MASK4: LD (DE),A
INC DE INC DE
DJNZ MASK4 DJNZ MASK4
LD B,4 LD B,4
@ -1235,7 +1235,7 @@ MASK4 LD (DE),A
RET RET
; a..z -> A..Z ; a..z -> A..Z
UPPER CP 'a' UPPER: CP 'a'
RET C RET C
CP '{' CP '{'
JR NC,MDUPPER JR NC,MDUPPER

View File

@ -60,18 +60,18 @@ A0010: ;JP DRV_PAGE.RST_10 ;
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; ;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
; ;
;
; ;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; ;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
; ; <[DRIVE API]> ; ; <[DRIVE API]> ;
; BLOCK #18-$,#C7 ; #C7 - "RST 0" opcode BLOCK #18-$,#C7 ; #C7 - "RST 0" opcode
; ;A0018 JP INTDISK ; ;A0018 JP INTDISK ;
; A0018: PUSH AF ; A0018: PUSH AF ;
; PUSH BC ; PUSH BC ;
; DRV_PAGE.MAIN_PAGE_NUMBER+2: ; DRV_PAGE.MAIN_PAGE_NUMBER+2: ;
; LD BC,0*256 + SLOT0 ; !FIXIT á ­¥ ¤®«¦­ë ¢áâ ¢«ïâìáï ­®¬¥à  ¢ë¤¥«¥­­ëå áâà ­¨æ? LD BC,0*256 + SLOT0 ; !FIXIT á ­¥ ¤®«¦­ë ¢áâ ¢«ïâìáï ­®¬¥à  ¢ë¤¥«¥­­ëå áâà ­¨æ?
; JP PORTAL.outDRV ; JP PORTAL.outDRV ;
; ;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; ;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
;
;!TODO ;!TODO
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; ;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
@ -202,7 +202,7 @@ ADCALL+1: CALL DISPATCH ;
JP PORTAL.out_DRV ; JP PORTAL.out_DRV ;
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; ;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
; ;
display "=============================",/H,(#82-#73-(PORTAL.toMAIN.switch-PORTAL.toMAIN))
;!FIXIT çñâ ­¥ â® âãâ ;!FIXIT çñâ ­¥ â® âãâ

View File

@ -298,8 +298,10 @@ F_START: DI
;R05 ;R05
.saveDRV+1: LD A,0 .saveDRV+1: LD A,0
LD BC,1*256 + Dss.BootDSK ;LD BC,1*256 + Dss.BootDSK
RST ToDSS ;RST ToDSS
LD B,1
CALL BOOTDSK
EI EI
;Set new address fn. VERSION ;Set new address fn. VERSION
@ -334,8 +336,9 @@ F_START: DI
;R12 ;R12
.err_oldBIOS: .err_oldBIOS:
LD HL,.err_oldBIOS_message LD HL,.err_oldBIOS_message
LD C,Dss.PChars ;LD C,Dss.PChars
RST ToDSS ;RST ToDSS
CALL PCHARS
SCF SCF
RET RET
.err_oldBIOS_message: .err_oldBIOS_message:

View File

@ -990,7 +990,7 @@ NOINK: LD A,H
;R02 ;R02
LD SP,EXEBUFF+510 ;‚áâ ˘«ďĄâáď ˘ DSS_PAGE LD SP,EXEBUFF+510 ;‚áâ ˘«ďĄâáď ˘ DSS_PAGE
; ;
LD A,DSS_PAGE ;!FIXIT ¢â몠âì áâà ­¨æë ¯à¨«®¦¥­¨ï LD A,SHARED_PAGE
OUT (SLOT1),A OUT (SLOT1),A
OUT (SLOT2),A OUT (SLOT2),A
OUT (SLOT3),A OUT (SLOT3),A
@ -1159,7 +1159,7 @@ NOINK2:
;R02 ;R02
LD SP,EXEBUFF+510 ;‚áâ ˘«ďĄâáď ˘ DSS_PAGE LD SP,EXEBUFF+510 ;‚áâ ˘«ďĄâáď ˘ DSS_PAGE
; ;
LD A,DSS_PAGE LD A,SHARED_PAGE
OUT (SLOT1),A OUT (SLOT1),A
OUT (SLOT2),A OUT (SLOT2),A
OUT (SLOT3),A OUT (SLOT3),A

View File

@ -160,8 +160,10 @@ ECHOKEY: CALL Cursor_On ;
CALL Cursor_Off ; ¢ëª«. ªãàá®à CALL Cursor_Off ; ¢ëª«. ªãàá®à
POP AF POP AF
OR A ; ¤®¡ ¢¨« OR A ; ¤®¡ ¢¨«
CALL NZ,PUTCHAR ; ¢ë¢®¤ "a" ­  íªà ­ ;!FIXIT scroll § ¬¥­¨âì ­  ¢ë¢®¤ ᨬ¢®«  ¡¨®á®¬ ¨«¨ WRCHAR
POP BC CALL NZ,PUTCHAR ; ¢ë¢®¤ "a" ­  íªà ­
;
POP BC
POP DE POP DE
LD A,E LD A,E
AND A AND A

View File

@ -653,7 +653,7 @@ NXTPART LD DE,#10
PARTIT: IN A,(SLOT3) PARTIT: IN A,(SLOT3)
PUSH AF PUSH AF
LD A,DSS_PAGE LD A,SHARED_PAGE
OUT (SLOT3),A OUT (SLOT3),A
CALL PARTIT1 CALL PARTIT1
POP AF POP AF

View File

@ -6,7 +6,7 @@
;--------------------------------------------------------------- ;---------------------------------------------------------------
;Rev Date Name Description ;Rev Date Name Description
;--------------------------------------------------------------- ;---------------------------------------------------------------
;R03 04-04-2023 BAO FIXED BUGS IN FN WINCOPY, WINREST, SCROLL, SETVMOD, SELPAGE ;R03 04-04-2023 BAO FIXED BUGS IN FN SCROLL, SETVMOD, SELPAGE
;R02 07-11-2002 DNS CORRECT FN. WINCOPY & WINREST, ADD "DI+EI" ;R02 07-11-2002 DNS CORRECT FN. WINCOPY & WINREST, ADD "DI+EI"
;R01 07-11-2002 DNS FIX BUG WITH SCROLLUP FN. (A=0) ;R01 07-11-2002 DNS FIX BUG WITH SCROLLUP FN. (A=0)
;--------------------------------------------------------------- ;---------------------------------------------------------------
@ -20,46 +20,25 @@ CLEAR: LD C,BIOS.LP_CLS_WIN2
; PRINT NULL-TERMINATED CHARS STRING ; PRINT NULL-TERMINATED CHARS STRING
; HL - STRING POINTER ; HL - STRING POINTER
PCHARS: LD A,(HL) PCHARS: ;CALL CURSOR
;LD A,E
;LD (.start_x),A
.loop: LD A,(HL)
INC HL INC HL
OR A OR A
RET Z RET Z
;PUSH HL ;PUSH HL
;LD C,A
CALL PUTCHAR CALL PUTCHAR
;POP HL
JP PCHARS
; PRINT CHAR ;CALL CURSOR
; A - CHAR ;LD A,(.start_x)
PUTCHAR: ;CP E
CP #0D
JP Z,CR_ ;POP HL
CP #0A JP .loop
JP Z,LF_ NO_NEED_SCROLL: DB 1
CP #09
JP Z,TB_
CP #08
JP Z,BK_
; CP #20
; JP NC,CHAR
CHAR: LD BC,1*256 + BIOS.LP_PRINT_SYM
RST ToBIOS
; €‰Œ€<C592> âãâ ­ á¨«ì­ë© áªà®«« íªà ­  ¥á«¨ ­ ¯¥ç â « ¢ ¯®§¨æ¨¨ ¯®á«¥¤­¥£® ᨬ¢®«  ¯®á«¥¤­¥© áâப¨
; push af
; ld a,e
; cp #4F
; jp nz,.exit
; ld a,d
; cp #1F
; jp nz,.exit
; ld e,0
; ld c,#84
; rst 8
; call LFF
; .exit:
; pop af
; €‰Œ€<C592>
RET
BK_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR BK_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR
RST ToBIOS RST ToBIOS
@ -69,45 +48,52 @@ BK_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR
DEC E DEC E
JP LOCATE JP LOCATE
TB_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR ;-----[]
RST ToBIOS
IF TABisSPACES
LD B,E
LD A,E
AND #F8
ADD A,8
SUB B
LD B,A
LD C,BIOS.LP_PRINT_SYM
LD A,#20
RST ToBIOS
RET
ELSE
LD A,E
ADD A,8
AND #78
LD E,A
JP LOCATE
ENDIF
LF_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR LF_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR
RST ToBIOS RST ToBIOS
LD A,D LD A,D
CP #1F CP #1F
JP NC,LFF JR NC,LFF
INC D INC D
//JP LOCATE IFN EnoughtOnly_LF
CALL LOCATE ; !!!!! ‘ ©¬ ­ JP LOCATE
ELSE
CALL LOCATE
; !!!! <20>… à §à뢠âì LF_ ¨ CR_ !!!!
ENDIF
CR_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR CR_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR
RST ToBIOS RST ToBIOS
LD E,0 LD E,0
JP LOCATE JP LOCATE
;-----[]
; PRINT CHAR
LFF: PUSH HL ; A - CHAR
PUTCHAR:
;CP ' '
;JR NC,CHAR
CP #0D
JR Z,CR_
CP #0A
JR Z,LF_
CP #09
JR Z,TB_
CP #08
JR Z,BK_
;SCF
;RET
CHAR:
LD BC,1*256 + BIOS.LP_PRINT_SYM
;!TEST CR+LF+SCROLL
;JP ToBIOS
RST ToBIOS
; ¯à®¢¥àª  ­  ¯¥à¥å®¤ ªãàá®à  ¢ á ¬®¥ ­ ç «® (X:Y == 0:0)
CALL CURSOR
LD A,D
OR E
RET NZ
;
LFF: PUSH HL ;!FIXIT á®åà ­ïâì ⥪ã騥 ¯à¥à뢠­¨ï
;PUSH DE ;PUSH DE
LD BC,1*256 + BIOS.LP_SCROLL_UD LD BC,1*256 + BIOS.LP_SCROLL_UD
LD DE,#0020 LD DE,#0020
@ -118,7 +104,7 @@ LFF: PUSH HL
LD DE,#1F00 LD DE,#1F00
;PUSH DE ;PUSH DE
CALL LOCATE CALL LOCATE
LD A,#20 LD A,' '
LD BC,#50*256 + BIOS.LP_PRINT_SYM LD BC,#50*256 + BIOS.LP_PRINT_SYM
RST ToBIOS RST ToBIOS
EI EI
@ -127,6 +113,29 @@ LFF: PUSH HL
CALL LOCATE CALL LOCATE
POP HL POP HL
RET RET
TB_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR
RST ToBIOS
IF TABisSPACES
LD B,E
LD A,E
AND #F8
ADD A,8
SUB B
LD B,A
LD C,BIOS.LP_PRINT_SYM
LD A,' '
JP ToBIOS
ELSE
LD A,E
ADD A,8
AND #78 ;????? £«ï­ãâì, çâ® ¡ã¤¥â ¥á«¨ ª®®à¤¨­ âë ªãàá®à  ¢ ª®­æ¥ áâப¨ ¯®çâ¨
LD E,A
JP LOCATE
ENDIF
;
; ;
; SET CURRENT CURSOR POSITION ; SET CURRENT CURSOR POSITION
@ -134,16 +143,18 @@ LFF: PUSH HL
; D = Y ; D = Y
; E = X ; E = X
LOCATE: LD C,BIOS.LP_SET_PLACE LOCATE: LD C,BIOS.LP_SET_PLACE
RST ToBIOS ; LD A,C
RET ; LD (NO_NEED_SCROLL),A
JP ToBIOS
;RET
; GET CURRENT CURSOR POSITION ; GET CURRENT CURSOR POSITION
; out: ; out:
; D - Y ; D - Y
; E - X ; E - X
CURSOR: LD C,BIOS.LP_GET_PLACE CURSOR: LD C,BIOS.LP_GET_PLACE
RST ToBIOS JP ToBIOS
RET ;RET
; READ CHAR & ATTR FROM THE SCREEN ; READ CHAR & ATTR FROM THE SCREEN
; in: ; in:
@ -186,14 +197,14 @@ WRCHAR: LD C,A
; H - HEIGHT ; H - HEIGHT
; L - WIDTH ; L - WIDTH
; IX - ADDRESS ; IX - ADDRESS
; B - PAGE, IF IX > 0C000H ; FIXIT ­¥ ª®áïª «¨ âãâ? ¡ ­ª  ¤®«¦­  ¢ A' ¯¥à¥¤ ¢ âìáï,   ­¥ B ; B - PAGE, IF IX > #C000
WINCOPY: AND A WINCOPY: AND A
LD A,R ;R02 LD A,R ;R02
PUSH AF ;R02 PUSH AF ;R02
XOR A XOR A
EX AF,AF' ;R03 ;EX AF,AF' ;R03
LD A,B ;R03 ;LD A,B ;R03
EX AF,AF' ;R03 ;EX AF,AF' ;R03
LD C,BIOS.WIN_COPY LD C,BIOS.WIN_COPY
DI ;R02 DI ;R02
RST ToBIOS RST ToBIOS
@ -208,14 +219,14 @@ WINCOPY: AND A
; H - HEIGHT ; H - HEIGHT
; L - WIDTH ; L - WIDTH
; IX - ADDRESS ; IX - ADDRESS
; B - PAGE, IF IX > 0C000H ; FIXIT ­¥ ª®áïª «¨ âãâ? ¡ ­ª  ¤®«¦­  ¢ A' ¯¥à¥¤ ¢ âìáï,   ­¥ B ; B - PAGE, IF IX > #C000
WINREST: AND A WINREST: AND A
LD A,R ;R02 LD A,R ;R02
PUSH AF ;R02 PUSH AF ;R02
XOR A XOR A
EX AF,AF' ;R03 ;EX AF,AF' ;R03
LD A,B ;R03 ;LD A,B ;R03
EX AF,AF' ;R03 ;EX AF,AF' ;R03
DI ;R02 DI ;R02
LD C,BIOS.WIN_RESTORE LD C,BIOS.WIN_RESTORE
RST ToBIOS RST ToBIOS
@ -233,10 +244,13 @@ WINREST: AND A
; B = 1 - SCROLL UP ; B = 1 - SCROLL UP
; B = 2 - SCROLL DOWN ; B = 2 - SCROLL DOWN
; A = 0 - CLEAR LINE ; A = 0 - CLEAR LINE
SCROLL: DJNZ SCR_DW SCROLL: DJNZ SCR_DW ;!TODO § ¬¥­¨âì ­  BIOS.LP_SCROLL_UD ¨ ¯®á¬®âà¥âì, çâ® èãáâ॥
LD B,A ;!TEST
LD C,H ;LD B,A
PUSH BC ;LD C,H
;PUSH BC
PUSH AF
;
PUSH DE PUSH DE
PUSH HL PUSH HL
LD XH,D LD XH,D
@ -248,9 +262,13 @@ SCROLL: DJNZ SCR_DW
RST ToBIOS RST ToBIOS
POP HL POP HL
POP DE POP DE
POP BC ;!TEST
XOR A ;POP BC
CP B POP AF
;XOR A
;CP B
AND A
;
RET NZ RET NZ
LD A,D LD A,D
ADD A,H ADD A,H
@ -258,7 +276,7 @@ SCROLL: DJNZ SCR_DW
LD D,A LD D,A
.print: PUSH DE ;R01 .print: PUSH DE ;R01
CALL LOCATE CALL LOCATE
LD A,#20 LD A,' '
LD B,L LD B,L
LD C,BIOS.LP_PRINT_SYM LD C,BIOS.LP_PRINT_SYM
RST ToBIOS RST ToBIOS
@ -268,9 +286,12 @@ SCROLL: DJNZ SCR_DW
RET RET
SCR_DW: DJNZ SCR_ERR SCR_DW: DJNZ SCR_ERR
LD B,A ;!TEST
LD C,L ;LD B,A
PUSH BC ;R03 ;LD C,H
;PUSH BC
PUSH AF ;R03
;
PUSH DE PUSH DE
PUSH HL PUSH HL
LD XH,D LD XH,D
@ -282,10 +303,15 @@ SCR_DW: DJNZ SCR_ERR
RST ToBIOS RST ToBIOS
POP HL POP HL
POP DE POP DE
POP BC ;R03 ;!TEST
XOR A ;POP BC
CP B POP AF ;R03
JR Z,SCROLL.print ;XOR A
;CP B
AND A
;
RET NZ
JP SCROLL.print
; PUSH DE ;R01 ; PUSH DE ;R01
; CALL LOCATE ; CALL LOCATE
; LD A,#20 ; LD A,#20
@ -303,15 +329,15 @@ SCR_ERR:
; SELECT SCREEN PAGE ; SELECT SCREEN PAGE
; B - SCREEN PAGE ; B - SCREEN PAGE
SELPAGE ;PUSH BC SELPAGE:;PUSH BC
LD A,(VMODE) LD A,(VMODE)
BIT 7,A BIT 7,A
JR NZ,SEL2 JR NZ,.SEL2
PUSH BC PUSH BC
LD C,A LD C,A
CALL SETVMOD.TEXT_M CALL SETVMOD.TEXT_M
POP BC POP BC
SEL2 ;POP BC .SEL2: ;POP BC
LD A,B LD A,B
AND #01 AND #01
OUT (SCREEN_SWITCH),A OUT (SCREEN_SWITCH),A
@ -426,7 +452,7 @@ G320_56 PUSH BC
CALL SETMODE CALL SETMODE
LD HL,TAB_320x256_1 LD HL,TAB_320x256_1
LD E,#00 LD E,#00
JR GRAPH_NEXT JP GRAPH_NEXT
; CALL SETMODE ; CALL SETMODE
; POP BC ; POP BC
; LD A,C ; LD A,C
@ -447,7 +473,7 @@ G640_16 PUSH BC
CALL SETMODE CALL SETMODE
LD HL,TAB_640x256_1 LD HL,TAB_640x256_1
LD E,#00 LD E,#00
JR GRAPH_NEXT JP GRAPH_NEXT
; CALL SETMODE ; CALL SETMODE
; POP BC ; POP BC
@ -471,42 +497,24 @@ VMODE: DB #03
;81h - GRAF 320 x 256 (256 colors) ;81h - GRAF 320 x 256 (256 colors)
;82h - GRAF 640 x 256 (16 colors) ;82h - GRAF 640 x 256 (16 colors)
;83h - GRAF 640 x 256 (256 colors) UNUSED ;83h - GRAF 640 x 256 (256 colors) UNUSED
SETMODE: PUSH DE SETMODE: PUSH DE
LD DE,#FEE0 ;!HARDCODE £àï§­ë© å ª. ª¨¤ ¥â ¤ ­­ë¥ ¢ ¡ãä¥à á«ã¦¥¡­®© áâà ­¨æë ¡¨®á . LD DE,SYS_PAGE.SHARED_BUFFER_32b ; £àï§­ë© å ª. ª¨¤ ¥â ¤ ­­ë¥ ¢ ¡ãä¥à á«ã¦¥¡­®© áâà ­¨æë ¡¨®á .
LD BC,ScreenDescriptorTable.Size ; <20>ˆŽ ¯à¨ ¨á¯®«ì§®¢ ­¨¨ IX ¯à¥¤¯®« £ ¥â, çâ® ®­ 㪠§ë¢ ¥â LD BC,ScreenDescriptorTable.Size ; <20>ˆŽ ¯à¨ ¨á¯®«ì§®¢ ­¨¨ IX ¯à¥¤¯®« £ ¥â, çâ® ®­ 㪠§ë¢ ¥â
;CALL MOVBIOS ; ­   ¤à¥á ­¨¦¥ #C000 ¨ ¢áâ ¢«ï¥â ¢ âà¥âìî ¡ ­ªã áâà ­¨æã #FE IN A,(SLOT3) ; ­   ¤à¥á ­¨¦¥ #C000 ¨ ¢áâ ¢«ï¥â ¢ âà¥âìî ¡ ­ªã áâà ­¨æã #FE
;LD A,R
IN A,(SLOT3)
EX AF,AF' EX AF,AF'
LD A,SYS_PAGE LD A,SYS_PAGE
OUT (SLOT3),A OUT (SLOT3),A
LDIR LDIR
EX AF,AF' EX AF,AF'
OUT (SLOT3),A OUT (SLOT3),A
;JP PO,.skip_EI
;EI
.skip_EI: POP DE .skip_EI: POP DE
LD IX,#FEE0 ;!HARDCODE £àï§­ë© å ª. LD IX,SYS_PAGE.SHARED_BUFFER_32b ; £àï§­ë© å ª.
;LD HL,#0000
LD C,BIOS.WIN_OPEN LD C,BIOS.WIN_OPEN
RST ToBIOS RST ToBIOS
SAFE_PORTY ;????? - ¢®§¬®¦­®, ç⮠⥯¥àì ­¥ ­ã¦­®, ¢¥§¤¥ á ¡ ­ª®© 3 à ¡®â îâ, ¯à®¢¥à¨âì SAFE_PORTY ;????? - ¢®§¬®¦­®, ç⮠⥯¥àì ­¥ ­ã¦­®, ¢¥§¤¥ á ¡ ­ª®© 3 à ¡®â îâ, ¯à®¢¥à¨âì
XOR A XOR A
RET RET
; MOVBIOS: LD A,R
; IN A,(SLOT3)
; EX AF,AF'
; LD A,SYS_PAGE
; OUT (SLOT3),A
; LDIR
; EX AF,AF'
; OUT (SLOT3),A
; RET PO
; EI
; RET
;IX+0 ;HORIZONTAL ;IX+0 ;HORIZONTAL
;IX+1 ;VERTICAL ;IX+1 ;VERTICAL
;IX+2 ;X - COORD ;IX+2 ;X - COORD
@ -536,7 +544,7 @@ ScreenDescriptorTable.Size EQU ($ - ScreenDescriptorTable)/6
; ;
SAVETXT PUSH AF SAVETXT PUSH AF
;;!!!!! ¯¥à¥­¥á¥­  «®£¨ª  áã¯¥à ¤¨ç ©è¥£® ã᪮७¨ï ;!!!!! ¯¥à¥­¥á¥­  «®£¨ª  áã¯¥à ¤¨ç ©è¥£® ã᪮७¨ï
LD A,(VMODE) LD A,(VMODE)
BIT 7,A BIT 7,A
JR NZ,NOSAVET JR NZ,NOSAVET
@ -560,10 +568,10 @@ SAVETXT PUSH AF
LD L,#28 LD L,#28
SVTEXT1 LD (SVHL1),HL SVTEXT1 LD (SVHL1),HL
LD DE,#0000 LD DE,#0000
EX AF,AF' ;R03 ;EX AF,AF' ;R03
LD A,(BANKTBL+TXTPAGE) LD A,(BANKTBL+TXTPAGE)
LD B,A LD B,A
EX AF,AF' ;R03 ;EX AF,AF' ;R03
LD C,BIOS.WIN_COPY LD C,BIOS.WIN_COPY
XOR A XOR A
DI DI
@ -590,10 +598,10 @@ VVMODE+1:
SVHL1+1: SVHL1+1:
LD HL,#2050 LD HL,#2050
LD DE,#0000 LD DE,#0000
EX AF,AF' ;R03 ;EX AF,AF' ;R03
LD A,(BANKTBL+TXTPAGE) LD A,(BANKTBL+TXTPAGE)
LD B,A LD B,A
EX AF,AF' ;R03 ;EX AF,AF' ;R03
LD C,BIOS.WIN_RESTORE LD C,BIOS.WIN_RESTORE
XOR A XOR A
DI DI
@ -601,8 +609,9 @@ SVHL1+1:
EI EI
TCURS+1: TCURS+1:
LD DE,#0000 LD DE,#0000
LD C,BIOS.LP_SET_PLACE ;LD C,BIOS.LP_SET_PLACE
RST ToBIOS ;RST ToBIOS
CALL LOCATE
POP IX POP IX
POP HL POP HL
POP DE POP DE
@ -681,3 +690,39 @@ PRINT_INIT:
;//MODULE: VIDEO ;//MODULE: VIDEO
;[END] ;[END]
; ; €‰Œ€<C592>
; PUSH AF
; LD A,E
; CP #4F
; JP NZ,.exit
; LD A,D
; CP #1F
; JP NZ,.exit
; LD E,0
; LD C,BIOS.LP_SET_PLACE
; RST ToBIOS
; CALL LFF
; .exit:
; pop af
; RET
; ; €‰Œ€<C592>
; LD A,D ; ¢ DE ª®®à¤¨­ âë ⥪ã饣® §­ ª®¬¥áâ 
; XOR E ; <20>஢¥à塞 ­  ª®®à¤¨­ âë #1F:#4F
; XOR #50
; RET NZ ; ¥á«¨ ¤à㣨¥ - â® ¢ë室
; LD E,A
; LD C,BIOS.LP_SET_PLACE
; RST ToBIOS
;LFF:
; ...
;;;;;;;;
; LD A,D ; ¢ DE ª®®à¤¨­ âë ⥪ã饣® §­ ª®¬¥áâ 
; XOR E ; <20>஢¥à塞 ­  ª®®à¤¨­ âë #1F:#4F
; XOR #50
; RET NZ ; ¥á«¨ ¤à㣨¥ - â® ¢ë室
;;;;;;;;

View File

@ -1 +1 @@
114 147

View File

@ -9,7 +9,8 @@
; ;
DEFINE MAX_RAMDRIVES 16 DEFINE MAX_RAMDRIVES 16
DEFINE NeedSafePort_Y 1 DEFINE NeedSafePort_Y 1
DEFINE TABisSPACES 1 DEFINE TABisSPACES 0
DEFINE EnoughtOnly_LF 0
DEFINE CLASSIC_CURSOR 0 DEFINE CLASSIC_CURSOR 0
DEFINE SAVE_PATH_MACRO 0 DEFINE SAVE_PATH_MACRO 0
DEFINE MINIMUM_BIOS_VERSION 2*256 + 55 ; version 2.55 DEFINE MINIMUM_BIOS_VERSION 2*256 + 55 ; version 2.55
@ -18,7 +19,7 @@
DEFINE USING_MEMPAGES 4 DEFINE USING_MEMPAGES 4
DEFINE OLD_SET_BANK 0 DEFINE OLD_SET_BANK 0
PORTAL.RSTx18_SWITCH_ADDRESS #82 DEFINE PORTAL.RSTx18_SWITCH_ADDRESS #82
; ªíè ᯨ᪠ ª â «®£  ; ªíè ᯨ᪠ ª â «®£ 
DIRPAGE EQU 0 DIRPAGE EQU 0
FATPAGE EQU 1 FATPAGE EQU 1

@ -1 +1 @@
Subproject commit b25c3779d6af8abc2970d3a9a55006f43292c86e Subproject commit 0277d424098318dc45617d6fb2c1cdf405c6d345