mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 01:11:48 +03:00
исправлен улёт стека в ПЗУ в процедуре запуска EXE
исправлен баг со скроллом в ECHOKEY
This commit is contained in:
parent
058f5e4859
commit
bdef22154b
@ -4,21 +4,20 @@
|
||||
; ¢ه®¤: HL - ،من¥à ¢ ¯ ¬ï⨠256 ، ©â
|
||||
; ¢ëه®¤: A - ھ®¤ ®è¨،ھ¨, ¥ل«¨ CF=1
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
CURRDIR: LD DE,CORE_BUFFERS.WorkDirectory
|
||||
JR CURRDIR_FN.skip
|
||||
CURRDIR_FN:
|
||||
LD DE,CORE_BUFFERS.CurrentDirectory
|
||||
.skip: EX DE,HL
|
||||
LD BC,DIRECTORY_PATH_LENGTH ;[x] 15/11/2023 ¬®£«® ¢ë©â¨ § ¯à¥¤¥«ë ¡ãä¥à
|
||||
XOR A
|
||||
.loop: CP (HL)
|
||||
LDI
|
||||
JP PO,.error ;[x] 15/11/2023 ¬®£«® ¢ë©â¨ § ¯à¥¤¥«ë ¡ãä¥à
|
||||
JR NZ,.loop
|
||||
RET
|
||||
;[x] 15/11/2023 ¬®£«® ¢ë©â¨ § ¯à¥¤¥«ë ¡ãä¥à
|
||||
.error: LD A,DSS_Error.sys.TOO_DEEP_DIR_DEPTH
|
||||
SCF
|
||||
RET
|
||||
;
|
||||
CURRDIR: LD DE,CORE_BUFFERS.WorkDirectory
|
||||
JR CURRDIR_FN.skip
|
||||
CURRDIR_FN: LD DE,CORE_BUFFERS.CurrentDirectory
|
||||
.skip: EX DE,HL
|
||||
LD BC,DIRECTORY_PATH_LENGTH ;[x] 15/11/2023 ¬®£«® ¢ë©â¨ § ¯à¥¤¥«ë ¡ãä¥à
|
||||
XOR A
|
||||
.loop: CP (HL)
|
||||
LDI
|
||||
JP PO,.error ;[x] 15/11/2023 ¬®£«® ¢ë©â¨ § ¯à¥¤¥«ë ¡ãä¥à
|
||||
JR NZ,.loop
|
||||
RET
|
||||
;[x] 15/11/2023 ¬®£«® ¢ë©â¨ § ¯à¥¤¥«ë ¡ãä¥à
|
||||
.error: LD A,DSS_Error.sys.TOO_DEEP_DIR_DEPTH
|
||||
SCF
|
||||
RET
|
||||
;
|
||||
;
|
||||
@ -78,7 +78,12 @@ EXEC: LD (CMDLINE),HL
|
||||
JR Z,.VAR_1 ;R03
|
||||
DEC B ;R03
|
||||
JR Z,.VAR_2 ;R03
|
||||
LD A,DSS_Error.sys.INVALID_FUNCTION ;R03
|
||||
;
|
||||
; POP AF
|
||||
; JP PO,.no_EI
|
||||
; ;
|
||||
; EI
|
||||
.no_EI: LD A,DSS_Error.sys.INVALID_FUNCTION ;R03
|
||||
SCF ;R03
|
||||
RET ;R03
|
||||
;
|
||||
@ -136,10 +141,10 @@ EXEC0_SHORT: ;
|
||||
CALL ENVIRON
|
||||
LD HL,(CMDLINE)
|
||||
LD DE,CORE_BUFFERS.EXEBUFF
|
||||
COPYEXN: LD A,(HL)
|
||||
.COPYEXN: LD A,(HL)
|
||||
LDI
|
||||
OR A
|
||||
JR NZ,COPYEXN
|
||||
JR NZ,.COPYEXN
|
||||
|
||||
CALL FINDPATH
|
||||
;[x] 1/10/2023
|
||||
@ -187,11 +192,8 @@ EXEC02: LD (EXE_FM),A
|
||||
AND #3F
|
||||
LD D,A
|
||||
ADD IX,DE
|
||||
;!TEST
|
||||
JR NC,.no_inc_hl
|
||||
INC HL
|
||||
;LD DE,#0000
|
||||
;ADC HL,DE
|
||||
JR NC,.no_inc_hl
|
||||
INC HL
|
||||
;
|
||||
.no_inc_hl: LD A,XH
|
||||
SLA A
|
||||
@ -278,9 +280,9 @@ PRELOAD: EX DE,HL
|
||||
LD B,A
|
||||
LD A,H
|
||||
OR L
|
||||
JR Z,NOINK2
|
||||
JR Z,.NOINK
|
||||
INC B
|
||||
NOINK2: LD HL,_RET_2
|
||||
.NOINK: LD HL,_RET_2
|
||||
LD (_ret),HL
|
||||
JR _TST_PROC
|
||||
;
|
||||
@ -293,6 +295,8 @@ _RET_2: LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR) ;
|
||||
;-------------------------------------------------------------------;[ ]
|
||||
_TST_PROC: CALL GETMEM
|
||||
JP C,ERREXE0
|
||||
;
|
||||
DI
|
||||
LD (EXE_MEM),A
|
||||
EXX
|
||||
POP DE ;ᨬ ¥¬ á® á⥪ ¤à¥á ¢®§¢à â
|
||||
@ -312,55 +316,29 @@ _TST_PROC: CALL GETMEM
|
||||
PUSH AF ; +2
|
||||
LD (EXSTACK),SP
|
||||
LD SP,HL
|
||||
; ;
|
||||
;
|
||||
EXX
|
||||
;
|
||||
;!TEST 27/03/2024
|
||||
LD DE,RAMMAP+3
|
||||
LD A,(EXE_MEM)
|
||||
LD BC,4*256 + BIOS.GetMemPage
|
||||
.mem_loop: PUSH AF
|
||||
PUSH BC
|
||||
DEC B
|
||||
RST ToBIOS
|
||||
LD (DE),A
|
||||
DEC DE
|
||||
POP BC
|
||||
POP AF
|
||||
DJNZ .mem_loop
|
||||
;
|
||||
; LD DE,RAMMAP
|
||||
; ;
|
||||
; LD A,(EXE_MEM)
|
||||
; LD BC,0*256 + BIOS.GetMemPage
|
||||
; RST ToBIOS
|
||||
; LD (DE),A
|
||||
; INC DE
|
||||
; ;
|
||||
; LD A,(EXE_MEM)
|
||||
; LD BC,1*256 + BIOS.GetMemPage
|
||||
; RST ToBIOS
|
||||
; LD (DE),A
|
||||
; INC DE
|
||||
; ;
|
||||
; LD A,(EXE_MEM)
|
||||
; LD BC,2*256 + BIOS.GetMemPage
|
||||
; RST ToBIOS
|
||||
; LD (DE),A
|
||||
; INC DE
|
||||
; ;
|
||||
; LD A,(EXE_MEM)
|
||||
; LD BC,3*256 + BIOS.GetMemPage
|
||||
; RST ToBIOS
|
||||
; LD (DE),A
|
||||
LD DE,RAMMAP+3
|
||||
LD A,(EXE_MEM)
|
||||
LD BC,4*256 + BIOS.GetMemPage
|
||||
.mem_loop: PUSH AF
|
||||
PUSH BC
|
||||
DEC B
|
||||
RST ToBIOS
|
||||
LD (DE),A
|
||||
DEC DE
|
||||
POP BC
|
||||
POP AF
|
||||
DJNZ .mem_loop
|
||||
;
|
||||
;
|
||||
LD HL,(CMDLINE)
|
||||
LD DE,CORE_BUFFERS.BUFFER+1
|
||||
;LD DE,CORE_BUFFERS.BUFFER+1
|
||||
LD DE,CORE_BUFFERS.BUFFER_CLP + 1
|
||||
CALL SCOPYS
|
||||
LD A,#80 ;!HARDCODE cmd line size
|
||||
SUB B
|
||||
LD (CORE_BUFFERS.BUFFER),A
|
||||
LD (CORE_BUFFERS.BUFFER_CLP),A
|
||||
;
|
||||
LD SP,CORE_BUFFERS.EXEBUFF + _sEXE_HEADER ;R02
|
||||
; ! „ «¥¥ á⥪ ¢ ã«¥¢®© áâà ¨æ¥! BIOS ¨ ¥ DSS-MAIN ¥ ¢ë§ë¢ âì
|
||||
@ -385,7 +363,7 @@ FR8000: LD A,(DE)
|
||||
INC DE
|
||||
FRC000: LD A,(DE)
|
||||
OUT (SLOT3),A
|
||||
CALL M_PSP
|
||||
;CALL M_PSP
|
||||
;
|
||||
LD HL,(CORE_BUFFERS.EXEBUFF.OFFCOD2)
|
||||
LD IX,(CORE_BUFFERS.EXEBUFF.OFFCOD1)
|
||||
@ -393,10 +371,21 @@ FRC000: LD A,(DE)
|
||||
LD A,(EXE_FM)
|
||||
CALL MOVE_FP
|
||||
;
|
||||
LD SP,#403F ;R02 ;!HARDCODE STACK before start EXE. “áâ ¢«¨¢ ¥âáï ª®£¤ ¢®âªãâë SHARED_PAGE
|
||||
_ret+1: JP 0 ;EXEC02.RET1 ¨«¨ _RET_2
|
||||
|
||||
_TST_PROC_2: LD SP,(CORE_BUFFERS.EXEBUFF.SP_REG)
|
||||
;LD SP,#403F ;R02 ;!HARDCODE STACK before start EXE. “áâ ¢«¨¢ ¥âáï ª®£¤ ¢®âªãâë SHARED_PAGE
|
||||
;LD A,R
|
||||
;DI
|
||||
LD SP,#4100 ;R02 ;!HARDCODE STACK before start EXE. “áâ ¢«¨¢ ¥âáï ª®£¤ ¢®âªãâë SHARED_PAGE
|
||||
;PUSH AF
|
||||
_ret+1: JP 0 ;EXEC02.RET_1 ¨«¨ _RET_2
|
||||
;
|
||||
; áî¤ ¢®§¢à â ¨§ EXEC02.RET_1 ¨«¨ _RET_2
|
||||
_TST_PROC_2:
|
||||
; ! „ «¥¥ á⥪ ¢ ã«¥¢®© áâà ¨æ¥! BIOS ¨ ¥ DSS-MAIN ¥ ¢ë§ë¢ âì
|
||||
;
|
||||
LD SP,CORE_BUFFERS.EXEBUFF + _sEXE_HEADER
|
||||
CALL M_PSP
|
||||
LD SP,(CORE_BUFFERS.EXEBUFF.SP_REG)
|
||||
;
|
||||
LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
||||
LD DE,#0080 ;!HARDCODE CLP_Buffer
|
||||
XOR A
|
||||
@ -404,10 +393,10 @@ _TST_PROC_2: LD SP,(CORE_BUFFERS.EXEBUFF.SP_REG)
|
||||
EX DE,HL
|
||||
LD XH,D
|
||||
LD XL,E
|
||||
LD HL,(CORE_BUFFERS.EXEBUFF.PC_REG)
|
||||
;LD HL,(CORE_BUFFERS.EXEBUFF.PC_REG)
|
||||
LD DE,RETFAR ; ¤à¥á ¯/¯ "¥®¦¨¤ ®¥ § ¢¥à襨¥ ¯à®æ¥áá "
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
;PUSH HL
|
||||
;!TEST Current Dir ;[x] 15/10/23
|
||||
PUSH IX
|
||||
LD HL,CORE_BUFFERS.CurrentPath
|
||||
@ -420,7 +409,10 @@ _TST_PROC_2: LD SP,(CORE_BUFFERS.EXEBUFF.SP_REG)
|
||||
.set_path: CALL CHDIR_FN
|
||||
POP IX
|
||||
;
|
||||
RET
|
||||
EI
|
||||
;RET
|
||||
LD HL,(CORE_BUFFERS.EXEBUFF.PC_REG)
|
||||
JP (HL)
|
||||
;-----------------------------------------------------------------------
|
||||
; ! ¢ë§ë¢ ¥âáï ª®£¤ á⥪ ¢ ã«¥¢®© áâà ¨æ¥!
|
||||
M_PSP: LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
||||
@ -428,17 +420,18 @@ M_PSP: LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
||||
LD D,H
|
||||
LD E,L
|
||||
INC DE
|
||||
LD BC,#00FF ;!HARDCODE
|
||||
LD BC,#00FF ;!FIXIT
|
||||
LD (HL),B
|
||||
LDIR
|
||||
EX DE,HL
|
||||
DEC H
|
||||
LD DE,#0080
|
||||
LD DE,#0080 ;!FIXIT
|
||||
ADD HL,DE
|
||||
EX DE,HL
|
||||
LD XH,D
|
||||
LD XL,E
|
||||
LD HL,CORE_BUFFERS.BUFFER
|
||||
;LD HL,CORE_BUFFERS.BUFFER
|
||||
LD HL,CORE_BUFFERS.BUFFER_CLP
|
||||
LD C,(HL)
|
||||
INC C
|
||||
LDIR
|
||||
@ -540,8 +533,8 @@ EXSTACK: DW CORE_BUFFERS.XSTACK.Spoint ;
|
||||
; 5) ‚ ॣ¨áâà A ¯®¬¥é ¥âáï ª®¤ ¢®§¢à â ¨ ¢ë¯®«ï¥âáï RET.
|
||||
;
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
LEAVE: LD A,R
|
||||
PUSH AF ; INT ON/OFF
|
||||
LEAVE: ;LD A,R
|
||||
;PUSH AF ; INT ON/OFF
|
||||
DI
|
||||
;
|
||||
LD A,B
|
||||
@ -552,7 +545,7 @@ LEAVE: LD A,R
|
||||
;
|
||||
_mDECTASK
|
||||
;
|
||||
POP DE ; INT ON/OFF
|
||||
;POP DE ; INT ON/OFF
|
||||
LD SP,(EXSTACK)
|
||||
; âãâ á⥪ ¢ ã«¥¢®© áâà ¨æ¥!
|
||||
POP AF ; -2 EXSTACK size for 1 task
|
||||
@ -563,15 +556,15 @@ LEAVE: LD A,R
|
||||
LD A,H
|
||||
OUT (SLOT3),A
|
||||
;
|
||||
LD A,E ; INT ON/OFF
|
||||
;LD A,E ; INT ON/OFF
|
||||
POP DE ; -2
|
||||
POP HL ; -2
|
||||
LD (EXSTACK),SP
|
||||
LD SP,HL
|
||||
;
|
||||
;!TEST
|
||||
AND %0000'0100 ; PO/PE flag
|
||||
JR Z,.no_ei
|
||||
;AND %0000'0100 ; PO/PE flag
|
||||
;JR Z,.no_ei
|
||||
EI
|
||||
.no_ei: ;
|
||||
EX DE,HL
|
||||
|
||||
@ -12,9 +12,12 @@
|
||||
; CALL PUTCHAR
|
||||
; JP PCHARS
|
||||
;///////////////////////////////////////////////////////////////////////
|
||||
PCHARS: XOR A ; no attr-mode
|
||||
PCHARS: XOR A
|
||||
.NO_SCROLL: LD D,A
|
||||
LD A,(CLEAR.shell_color)
|
||||
LD B,A
|
||||
LD A,D
|
||||
AND A ; no attr-mode
|
||||
EX AF,AF'
|
||||
XOR A ; no XY-mode
|
||||
LD C,BIOS.LP_PR_LINE_DIR
|
||||
@ -22,6 +25,7 @@ PCHARS: XOR A ; no attr-mode
|
||||
JP ToBIOS
|
||||
;///////////////////////////////////////////////////////////////////////
|
||||
; A - âਡãâë ¢ë¢®¤¨¬®£® ᨬ¢®« ¥á«¨ CF'
|
||||
; A' - ¥á«¨ !=0 â® ¡¥§ áªà®««
|
||||
; CF - XY-mode
|
||||
; DE - ¬¥á⮠ᨬ¢®« ¢ ®ª¥, ¥á«¨ CF=1
|
||||
; HL - ¤à¥á á ¢ë¢®¤¨¬®© áâப®©
|
||||
|
||||
@ -100,7 +100,8 @@
|
||||
|
||||
|
||||
;///////////////////////////////////////////////////////////////////////
|
||||
PUTCHAR: PUSH HL
|
||||
PUTCHAR: LD C,0
|
||||
.NO_SCROLL: PUSH HL
|
||||
;
|
||||
LD L,A
|
||||
XOR A ; no attr-mode
|
||||
@ -111,6 +112,7 @@ PUTCHAR: PUSH HL
|
||||
;
|
||||
LD A,(CLEAR.shell_color)
|
||||
LD B,A
|
||||
LD A,C
|
||||
EX AF,AF'
|
||||
XOR A ; no XY-mode
|
||||
LD C,BIOS.LP_PR_LINE_DIR
|
||||
|
||||
@ -5,18 +5,16 @@
|
||||
; ¢ë室: A - ®¬¥à ¤¨áª (0=A,1=B,..)
|
||||
; C - ®¬¥à ¯®á«¥¤¥£® ¤¨áª ¢ á¨á⥬¥
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
CURDISK_FN:
|
||||
LD A,(LDRIVE)
|
||||
LD C,A
|
||||
LD A,(CORE_BUFFERS.CurrentPath)
|
||||
SUB 'A'
|
||||
RET NC
|
||||
LD A,DSS_Error.sys.INVALID_DRIVE
|
||||
RET
|
||||
CURDISK:
|
||||
LD A,(LDRIVE)
|
||||
LD C,A
|
||||
LD A,(CORE_BUFFERS.FS_Buffer.DRIVE)
|
||||
AND A
|
||||
RET
|
||||
CURDISK_FN: LD A,(LDRIVE)
|
||||
LD C,A
|
||||
LD A,(CORE_BUFFERS.CurrentPath)
|
||||
SUB 'A'
|
||||
RET NC
|
||||
LD A,DSS_Error.sys.INVALID_DRIVE
|
||||
RET
|
||||
CURDISK: LD A,(LDRIVE)
|
||||
LD C,A
|
||||
LD A,(CORE_BUFFERS.FS_Buffer.DRIVE)
|
||||
AND A
|
||||
RET
|
||||
;
|
||||
@ -391,13 +391,15 @@ CurrentDirectory EQU BUFFERSplace.CurrentDirectory
|
||||
.DEPTH EQU DIRECTORY_PATH_LENGTH
|
||||
WorkDirectory EQU BUFFERSplace.WorkDirectory
|
||||
.DEPTH EQU DIRECTORY_PATH_LENGTH
|
||||
BUFFER_CLP EQU BUFFERSplace.BUFFER_CLP ; ¡ãä¥à ¤«ï CMD ¢ Execute.asm
|
||||
ENDMODULE
|
||||
CLEAR_ZONE.size EQU _sBuffers
|
||||
ASSERT (CLEAR_ZONE.start + _sBuffers)<#4000, "Warning!!! OUT OF SLOT0"
|
||||
ASSERT (#4000 - CORE_BUFFERS.BUFFER_CLP) > #100, "Warning!!! No memory for buffer!!!"
|
||||
|
||||
|
||||
|
||||
|
||||
; ’ãâ ¥ ¢áñ
|
||||
DISPLAY "--- --- --- --- --- --- --- ---"
|
||||
DISPLAY "CLEAR_ZONE.start ", /H, CLEAR_ZONE.start
|
||||
DISPLAY "CLEAR_ZONE.Size ", /H, CLEAR_ZONE.size
|
||||
@ -417,7 +419,7 @@ CLEAR_ZONE.size EQU _sBuffers
|
||||
DISPLAY " MemoryTable ", /H, CORE_BUFFERS.MemoryTable
|
||||
DISPLAY " Size ", /H, _sBuffers - (CORE_BUFFERS.MemoryTable - CORE_BUFFERS.BUFFERSplace)
|
||||
DISPLAY "--- --- --- --- --- --- --- ---"
|
||||
DISPLAY "CLEAR_ZONE.End ", /H, CLEAR_ZONE.start + CLEAR_ZONE.size
|
||||
DISPLAY "CLEAR_ZONE.End ", /H, CLEAR_ZONE.start + CLEAR_ZONE.size
|
||||
DISPLAY "--- --- --- --- --- --- --- ---"
|
||||
|
||||
|
||||
@ -444,6 +446,7 @@ CLEAR_ZONE.size EQU _sBuffers
|
||||
EXPORT CORE_BUFFERS.CurrentDirectory.DEPTH
|
||||
EXPORT CORE_BUFFERS.WorkDirectory
|
||||
EXPORT CORE_BUFFERS.WorkDirectory.DEPTH
|
||||
EXPORT CORE_BUFFERS.BUFFER_CLP
|
||||
;> > > > > > > > > > > > > > > > BUFFERS < < < < < < < < < < < < < < < <
|
||||
|
||||
|
||||
|
||||
@ -204,7 +204,8 @@ ECHOKEY: CALL Cursor_On ;
|
||||
POP AF
|
||||
OR A
|
||||
; [x] -bug with Vasil's version of cursor
|
||||
CALL NZ,PUTCHAR;.NO_SCROLL ; ¤®¡ ¢¨« ¢ë¢®¤ "a" íªà
|
||||
LD C,A
|
||||
CALL NZ,PUTCHAR.NO_SCROLL
|
||||
POP BC
|
||||
POP DE
|
||||
LD A,E
|
||||
|
||||
@ -140,5 +140,6 @@
|
||||
.CurrentPath WORD 0
|
||||
.CurrentDirectory BLOCK DIRECTORY_PATH_LENGTH,0
|
||||
.WorkDirectory BLOCK DIRECTORY_PATH_LENGTH,0
|
||||
.BUFFER_CLP BLOCK CLP_Buffer,0 ; ¡ãä¥à ¤«ï CLP § ¯ã᪠¥¬®£® ¢ Execute.asm
|
||||
ENDS
|
||||
;
|
||||
@ -1 +1 @@
|
||||
0
|
||||
1
|
||||
@ -3,26 +3,25 @@
|
||||
; CD, CHDIR. ‘¬¥ ª â «®£
|
||||
;
|
||||
;///////////////////////////////////////////////////
|
||||
cmd_chdir:
|
||||
ex de,hl
|
||||
ld de,Buffers.work.buffer1;
|
||||
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
|
||||
RST ToDSS
|
||||
xor a
|
||||
ld hl,Buffers.work.buffer1;
|
||||
cp (hl)
|
||||
jr nz,.chdir
|
||||
ld (hl),"." ; ".." த¨â. ¯ ¯ª
|
||||
inc hl
|
||||
ld (hl),"."
|
||||
inc hl
|
||||
ld (hl),0
|
||||
dec hl
|
||||
dec hl
|
||||
.chdir: ld c,Dss.ChDir ; ᬥ¨âì ⥪. ª â «®£
|
||||
RST ToDSS
|
||||
call c,print_err_message ; ¢ë¢®¤ á®®¡é¥¨ï
|
||||
jp Get_Path ; á®åà. ⥪. ¤¨áª ¨ ¯ãâì
|
||||
cmd_chdir: ex de,hl
|
||||
ld de,Buffers.work.buffer1;
|
||||
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
|
||||
RST ToDSS
|
||||
xor a
|
||||
ld hl,Buffers.work.buffer1;
|
||||
cp (hl)
|
||||
jr nz,.chdir
|
||||
ld (hl),"." ; ".." த¨â. ¯ ¯ª
|
||||
inc hl
|
||||
ld (hl),"."
|
||||
inc hl
|
||||
ld (hl),0
|
||||
dec hl
|
||||
dec hl
|
||||
.chdir: ld c,Dss.ChDir ; ᬥ¨âì ⥪. ª â «®£
|
||||
RST ToDSS
|
||||
call c,print_err_message ; ¢ë¢®¤ á®®¡é¥¨ï
|
||||
jp Get_Path ; á®åà. ⥪. ¤¨áª ¨ ¯ãâì
|
||||
; ; ¢ë¢®¤ á¨áâ. ¯ã⨠íªà
|
||||
; ld c,8Eh ; ã§ âì ¯®«®¦. ªãàá®à
|
||||
; RST ToBIOS
|
||||
|
||||
@ -4,9 +4,9 @@
|
||||
;
|
||||
;///////////////////////////////////////////////////
|
||||
cmd_exit:
|
||||
.TASKX+1: ld a,2 ; ã஢¥ì ⥪ã饣® 襫«
|
||||
dec a
|
||||
dec a
|
||||
ret z ; a=2 (primary 襫«)
|
||||
;pop hl ; ¢®ááâ. ¡ « á á⥪ (ã¡à âì ¢ë§®¢ COMP ¢ £«. 横«¥ ®¡®«®çª¨)
|
||||
jp back_to_parent_process ; ¢¥àãâìáï ¢ த¨â. ¯à®æ¥áá
|
||||
.TASKX+1: ld a,2 ; ã஢¥ì ⥪ã饣® 襫«
|
||||
dec a
|
||||
dec a
|
||||
ret z ; a=2 (primary 襫«)
|
||||
;pop hl ; ¢®ááâ. ¡ « á á⥪ (ã¡à âì ¢ë§®¢ COMP ¢ £«. 横«¥ ®¡®«®çª¨)
|
||||
jp back_to_parent_process ; ¢¥àãâìáï ¢ த¨â. ¯à®æ¥áá
|
||||
|
||||
@ -24,11 +24,11 @@ cmd_help: LD HL,.help_txt
|
||||
; ; ; ; ; ; ; ; ; ; ; ; ;
|
||||
;
|
||||
;LP_PR_LINE_DIR:
|
||||
; A - âਡãâë ¢ë¢®¤¨¬®£® ᨬ¢®« ¥á«¨ ZF=0
|
||||
; A - âਡãâë ¢ë¢®¤¨¬®£® ᨬ¢®« ¥á«¨ CF'
|
||||
; A' - ¥á«¨ !=0 â® ¡¥§ áªà®««
|
||||
; CF - XY-mode
|
||||
; DE - ¬¥á⮠ᨬ¢®« ¢ ®ª¥, ¥á«¨ CF=1
|
||||
; HL - ¤à¥á á ¢ë¢®¤¨¬®© áâப®©
|
||||
; B - à §¤¥«¨â¥«ì
|
||||
; B - 梥⠪®á®«¨ (¨á¯®«ì§ã¥âáï ¯à¨ áªà®««¥ ¨ ®ç¨á⪥ ®ª )
|
||||
; IY - ¤¢ ᯥæ.ᨬ¢®« ¤«ï ¢ë室 á CF=1. „®«¦ë ¡ëâì à ¢ë B, ¥á«¨ ¥ ã¦ë
|
||||
; A' - 梥⠪®á®«¨ (¨á¯®«ì§ã¥âáï ¯à¨ áªà®««¥ ¨ ®ç¨á⪥ ®ª )
|
||||
; CF' - ¢ë¢®¤¨âì ᨬ¢®« á âਡãâ ¬¨
|
||||
@ -9,14 +9,14 @@ cmd_pause:
|
||||
LD A,LF
|
||||
LD C,Dss.PutChar
|
||||
RST ToDSS
|
||||
LD A,R
|
||||
PUSH AF
|
||||
;LD A,R
|
||||
;PUSH AF
|
||||
LD C,Dss.WaitKey ; ¦¤¥¬ ¦ â¨ï ª« ¢¨è¨
|
||||
EI
|
||||
;EI
|
||||
RST ToDSS
|
||||
POP AF
|
||||
DI
|
||||
RET PO
|
||||
EI
|
||||
;POP AF
|
||||
;DI
|
||||
;RET PO
|
||||
;EI
|
||||
RET
|
||||
;ret
|
||||
;///////////////////////////////////////////////////
|
||||
|
||||
@ -3,8 +3,6 @@
|
||||
; REM. Š®¬¬¥â ਩ (¢ bat-ä ©«¥)
|
||||
;
|
||||
;///////////////////////////////////////////////////
|
||||
cmd_rem:; [x] 15/12/23 ¬®¦¥â ¨ ¥ ¯® ¤®¡¨âáï
|
||||
AND A
|
||||
;
|
||||
ret
|
||||
cmd_rem: AND A
|
||||
RET
|
||||
;
|
||||
|
||||
@ -1 +1 @@
|
||||
522
|
||||
525
|
||||
Loading…
Reference in New Issue
Block a user