SHELL: *** вложенные BAT

This commit is contained in:
Anatoliy Belyanskiy 2023-12-12 04:24:00 +10:00
parent 29aa9d3848
commit f37cbd1077
23 changed files with 161 additions and 12325 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,66 +0,0 @@
No free file handles
Bad Command or file name
Access denied
Memory allocation error
Cannot load COMMAND, system halted
Cannot start COMMAND, exiting
Top level process aborted, cannot continue
Write protect error
Invalid unit
Not ready
Invalid device request
Data error
Invalid device request parameters
Seek error
Invalid media type
Sector not found
Printer out of paper error
Write fault error
Read fault error
General failure
Sharing violation
Lock violation
Invalid disk change
FCB unavailable
System resource exhausted
Code page mismatch
Out of input
Insufficient disk space
Too many parameters
Required parameter missing
Invalid switch
Invalid keyword
Parameter value not inallowed range
Parameter value not allowed
Parameter value not allowed
Parameter format not correct
Invalid parameter
Invalid parameter combination
Invalid function
File not found
Path not found
Too many open files
Access denied
Invalid handle
Memory control blocks destroyed
Insufficient memory
Invalid memory block address
Invalid Environment
Invalid format
Invalid function parameter
Invalid data
Invalid drive specification
Attempt to remove current directory
Not same device
No more files
File exists
Cannot make directory entry
Fail on INT 24
Too many redirections
Duplicate redirection
Invalid password
Invalid parameter
Network data fault
Function not supported by network
Required system component not installed

View File

@ -1,4 +0,0 @@
21-02-2003 FIX BUG WITH LINE MERGE IN BAT-FILE
14-12-2002 ADD BAT-PARAMETERS %1 %2
11-12-2002 ADD BAT-VARIABLES %VAR%
03-10-2002 FIX BUG WITH OUTPUT AT THE SCREEN IN BAT-MODE

View File

@ -1 +0,0 @@
49

View File

@ -1,22 +0,0 @@
;------------------[ „®áâ ñ¬ ⥪ãéãî ¤ âã ¨ 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

@ -1,63 +0,0 @@
delay_curs equ 11 ; ç áâ®â  ¬¨£ ­¨ï ªãàá®à 
cursor: db 3Eh ; ld a,..
crFlag: db 0 ; ä« £ ªãàá®à  00-­¥â/01-¥áâì
cpl
ld (crFlag),a
; ‚ª«îç¨âì ªãàá®à
cursor_on:
ld c,8Eh ; ã§­ âì ¯®«®¦. ªãàá®à 
rst 08h
ld (curs_posit+1),de
xor a
ld c,0B4h ; ¯®«ãç¨âì ᨬ¢®«
rst 08h
ld bc,1BB5h ; b=§­ ª®£¥­., á=ᨬ¢®« ­  íªà ­
ld a,(crFlag)
or a
jr z,curs__
ld b,1Ah ; ç¥àâ 
ld a,(D0642) ; ä« £¨ ª« ¢ë
bit 1,a ; ¡¨â Ins
jr nz,$+4
ld b,19h ; ¡«®ª
curs__: xor a ; ­®¬¥à ®ª­ 
rst 08h
ld a,1
ld (curs_inv_flag),a
ld a,delay_curs
ret
; ‚몫îç¨âì ªãàá®à
cursor_off:
db 3Eh ; ld a,..
curs_inv_flag:
db 0 ; ä« £ ªãàá®à : 00-¢ëª«/01-¢ª«
or a
ret z
ld a,-1
ld (crFlag),a
inc a
ld (curs_inv_flag),a
ld a,delay_curs
ld (curs_timer),a
curs_posit:
ld de,0 ; Y/X ¯®«®¦.
bit 7,e
ret nz
ld c,0B4h ; ¯®«ãç¨âì ᨬ¢®«
xor a
rst 08h
xor a
ld bc,1BB5h ; ᨬ¢®« ­  íªà ­
rst 08h
ret
; “áâ ­®¢¨âì 䮪ãá ­  "Input Line"
focus_to_inpline:
call cursor_on ; ¢ª«. ªãàá®à
ei
ret

File diff suppressed because it is too large Load Diff

View File

@ -1,91 +0,0 @@
true equ 1
false equ 0
; ­®¬¥à ¢¥àᨨ „Ž‘
major_version equ 1 ; ¢¥àá¨ï (0..9)
minor_version equ 61 ; ¬®¤¨ä¨ª æ¨ï (0..99)
build_version equ 10 ; ¡¨«¤ (0..999)
; ¬ ªá. ç¨á«® ¤¥áªà¨¯â®à®¢ ä ©«®¢ ¢ á¨á⥬¥
max_handles equ 9
; ¬ ªá. ¤«¨­  áâப¨ ¯¥à¥¬¥­­®© ®ªà㦥­¨ï (¨¬ï + §­ ç¥­¨¥)
maxlen_env_string equ 255
A0000 equ 0
;A0101 equ 0101h ; 257 ?
L4000 equ 4000h
L403F equ 403Fh ; á⥪
LC000 equ 0C000h
LC1C0 equ 0C1C0h
LC1C8 equ 0C1C8h
LC400 equ 0C400h
LE400 equ 0E400h ; ­ ç «® ¡ãä¥à  ¯¥à¥¬¥­­ëå ®ªà㦥­¨ï
LFC7F equ 0FC7Fh
LFC80 equ 0FC80h
LFD00 equ 0FD00h
LFDFF equ 0FDFFh
LFE00 equ 0FE00h
;
LFEE0 equ 0FEE0h ; 32 ¡ ©â  ®¯¨á â¥«ï ®ª­  (8..31 § à¥§.)
; Š®¤ë ®è¨¡®ª „Ž‘
;
EZERO equ 0 ; No error
EINVFNC equ 1 ; Invalid function
EINVDRV equ 2 ; Invalid drive number
ENOFILE equ 3 ; File not found
ENOPATH equ 4 ; Path not found
EINVHND equ 5 ; Invalid handle
EMFILE equ 6 ; Too many open files
EEXIST equ 7 ; File already exists
EROFILE equ 8 ; File read only
EROOT equ 9 ; Root overflow
ENOSPACE equ 10 ; No free space
ENOEMPTY equ 11 ; Directory not empty
ECURDIR equ 12 ; Can't delete current directory
EINVMED equ 13 ; Invalid media
EUNOPER equ 14 ; Unknown operation (­¥¢®§¬. ®¯¥à æ¨ï)
EEXISDIR equ 15 ; Directory exist
EINVFNAM equ 16 ; Invalid filename
EINVEXE equ 17 ; Invalid EXE-file
ENSUPEXE equ 18 ; Not supported EXE-file
EACCES equ 19 ; Access denied
ENORDY equ 20 ; Not ready
ESEEK equ 21 ; Seek error
ENOSECT equ 22 ; Sector not found
ECRC equ 23 ; CRC error
EWRTPRT equ 24 ; Write protect
EREAD equ 25 ; Read error
EWRITE equ 26 ; Write error
EDRVFAIL equ 27 ; Drive failure
EEXTND28 equ 28 ; Extended error: 28
EEXTND29 equ 29 ; Extended error: 29
ENOMEM equ 30 ; Not enough memory
EINVMEM equ 31 ; Invalid memory block
EEXTND32 equ 32 ; Extended error: 32
EEXTND33 equ 33 ; Extended error: 33
EEXTND34 equ 34 ; Extended error: 34
ETMFILE equ 35 ; Too many files in directory (ᯨ᮪ ä ©«®¢)
EDEPTH equ 36 ; (᫨誮¬ ¡®«ìè ï ¢«®¦. ¯ ¯®ª ¨«¨ >= 1024 ¯ ¯®ª)
EUABORT equ 37 ; User abort (®¯¥à æ¨ï ¯à¥à¢ ­  ¯®«ì§®¢ â¥«¥¬)
EERR38 equ 38 ; 38
EERR39 equ 39 ; 39
EERR40 equ 40 ; 40
EERR41 equ 41 ; 41
EERR42 equ 42 ; 42
EERR43 equ 43 ; 43
EERR44 equ 44 ; 44
EERR45 equ 45 ; 45
EERR46 equ 46 ; 46
EERR47 equ 47 ; 47
EERR48 equ 48 ; 48
EERR49 equ 49 ; 49
EERR50 equ 50 ; 50

File diff suppressed because it is too large Load Diff

View File

@ -1,874 +0,0 @@
;===========================================================
; ‚¥ªâ®à ¬ë誨
;===========================================================
MOUSE_vector:
bit 7,c
jr nz,A32E3 ; c >=80h
inc c
dec c ; c=0 ¨­¨æ. ¬ë誨
jr z,init_mouse
dec c ; c=1 ¯®ª § âì ¬ëèªã
jr z,show_mouse
dec c ; c=2 áªàëâì ¬ëèªã
jp z,hide_mouse
dec c ; c=3 ã§­ âì á®áâ. ¬ë誨
jp z,get_mouse_status
dec c ; c=4 ãáâ. ª®®à¤¨­ âë ¬ë誨
jp z,set_mouse_coords
dec c ; c=5 § £«ã誠
jp z,A32DF
dec c ; c=6 § £«ã誠
jr z,A32DF
dec c ; c=7 ãáâ. Y £à ­¨æë ¯¥à¥¬. ¬ë誨
jp z,set_y_limit
dec c ; c=8 ãáâ. X £à ­¨æë ¯¥à¥¬. ¬ë誨
jp z,set_x_limit
dec c ; c=9 § £à㧨âì ªãàá®à ¬ë誨
jp z,A3385
dec c ; c=0Ah ãáâ. ᨬ¢®«/ âਡãâ ¬ë誨 ¤«ï ⥪áâ. ०¨¬ 
jp z,A341F
dec c ; c=0Bh ¯®«ãç¨âì ªãàá®à ¬ë誨
jp z,A33CC
dec c ; c=0Ch § £«ã誠
jr z,A32DF
dec c ; c=0Dh § £«ã誠
jr z,A32DF
dec c ; c=0Eh ¯®«ãç¨âì çã¢á⢨â. ¬ë誨
jp z,A342D
dec c ; c=0Fh ãáâ. çã¢áâ¢. ¬ë誨
jp z,A3428
A32DF: ld a,EINVFNC ; ª®¤ "­¥¢¥à­ë© ­®¬¥à ä㭪樨"
scf
ret
; c >= 80h
A32E3: res 7,c
inc c
dec c ; c=80h Ž¡à ¡®â稪  ¯¯ à â­. ¯à¥à뢠­¨ï ®â ¬ëè¨
jp z,A374B
dec c ; c=81h ¨­ä  ¤«ï ¬ë誨 ® ᬥ­¥ ०¨¬  íªà ­ 
jp z,A3700
dec c ; c=82h § £«ã誠
jr z,A32F5
dec c ; c=83h ¯à¨­ã¤. ¯¥à¥à¨á®¢ª  ¬ë誨
jp z,A3760
A32F5: ld a,EINVFNC ; ª®¤ "­¥¢¥à­ë© ­®¬¥à ä㭪樨"
scf
ret
;-----------------------------------------------------------
; ”ã­ªæ¨ï #00. ˆ­¨æ¨ «¨§ æ¨ï ¤à ©¢¥à  ¬ë誨
;-----------------------------------------------------------
init_mouse:
di
ld a,55h
out (10h),a
ld a,2Dh
out (10h),a
ld a,0
out (1Bh),a
ld a,1
out (1Bh),a
ld a,0
out (1Bh),a
ld a,3
out (1Bh),a
ld a,41h
out (1Bh),a
ld a,4
out (1Bh),a
ld a,47h
out (1Bh),a
ld a,5
out (1Bh),a
ld a,0E0h
out (1Bh),a
ei
xor a
ret
;-----------------------------------------------------------
; ”ã­ªæ¨ï #01. <20>®ª § âì 㪠§ â¥«ì ¬ë誨
;-----------------------------------------------------------
show_mouse:
push ix
push hl
push de
ex af,af'
push af
ld hl,(D378C) ; X ª®®à¤¨­ â  ¬ë誨
ld de,(D378E) ; Y ª®®à¤¨­ â  ¬ë誨
di
call A3524
ld a,true
ld (enable_mouse_cursor),a ; ä« £ ¢ë¢®¤  㪠§ â¥«ï ¬ë誨
ei
pop af
ex af,af'
pop de
pop hl
pop ix
xor a
ret
;-----------------------------------------------------------
; ”ã­ªæ¨ï #02. ‘ªàëâì 㪠§ â¥«ì ¬ë誨
;-----------------------------------------------------------
hide_mouse:
push ix
push hl
push de
ex af,af'
push af
di
xor a ; false
ld (enable_mouse_cursor),a ; ä« £ ¢ë¢®¤  㪠§ â¥«ï ¬ë誨
call A34D7
ei
pop af
ex af,af'
pop de
pop hl
pop ix
xor a
ret
;-----------------------------------------------------------
; ”ã­ªæ¨ï #03. “§­ âì á®â®ï­¨¥ ¬ë誨
; ‚®§¢à é ¥â ª®®à¤¨­ âë ¬ë誨 ¨ á®áâ®ï­¨¥ ª­®¯®ª
;-----------------------------------------------------------
get_mouse_status:
ld hl,(D378C) ; X ª®®à¤¨­ â 
ld de,(D378E) ; Y ª®®à¤¨­ â 
ld a,(D3792) ; 0 bit - «¥¢ ï, 1 bit - ¯à ¢ ï
and a
ret
;-----------------------------------------------------------
; ”ã­ªæ¨ï #04. “áâ ­®¢¨âì ª®®à¤¨­ âë 㪠§ â¥«ï ¬ë誨
; ”ã­ªæ¨ï ¯¥à¥¬¥é ¥â ªãàá®à ¢ § ¤ ­­ë¥ ª®®à¤¨­ âë
;
; ¢å®¤: hl/de = X/Y ª®®à¤¨­ âë
; ¢ë室: a = ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;-----------------------------------------------------------
set_mouse_coords:
push ix
push hl
push de
ld (D378C),hl ; X ª®®à¤¨­ â  ¬ë誨
ld (D378E),de ; Y ª®®à¤¨­ â  ¬ë誨
ex af,af'
push af
di
call A3772
ei
pop af
ex af,af'
pop de
pop hl
pop ix
xor a ;?
ret
A3385: push bc
push de
push hl
push ix
;ld a,l
;ld (D37A6),a
;ld a,h
;ld (D37A7),a
ld (D37A6),hl; ; è¨à¨­ /¢ëá®â  áâ५ª¨ ¬ë誨
ld c,e
ld b,0
ld (D379E),bc
ld c,d
ld (D37A0),bc
exx
ld a,(D37A6) ; 10 è¨à¨­  áâ५ª¨ ¬ë誨
ld c,a
ld b,0
ld a,(D37A7) ; 14 ¢ëá®â  áâ५ª¨ ¬ë誨
ld l,b
ld h,b
add hl,bc
dec a
jr nz,$-2
push hl
ld bc,257 ;A0101 ; 257 ?
and a
sbc hl,bc
ccf
exx
pop bc
pop hl
ld a,EINVHND ; ª®¤ "­¥áãé¥áâ¢. ¤¥áªà. ä ©« "
jr c,A33C7
ld de,mouse_pointer ; 10x14 ¬ áᨢ áâ५ª¨ ¬ë誨
di
ldir
xor a ; ª®¤ "Ok"
A33C7: pop hl
pop de
pop bc
ei
ret
A33CC: push ix
exx
ld a,(D37A6) ; 10 è¨à¨­  áâ५ª¨ ¬ë誨
ld c,a
ld b,0
ld a,(D37A7) ; 14 ¢ëá®â  áâ५ª¨ ¬ë誨
ld l,b
ld h,b
add hl,bc
dec a
jr nz,$-2
push hl
ld bc,257 ;A0101 ; 257 ?
and a
sbc hl,bc
ccf
exx
pop bc
pop hl
ld a,EINVHND ; ª®¤ "­¥áãé¥áâ¢. ¤¥áªà. ä ©« "
jr c,A340B
ld de,mouse_pointer ; 10x14 ¬ áᨢ áâ५ª¨ ¬ë誨
ex de,hl
di
ldir
;ld a,(D37A6) ;@@
;ld l,a
;ld a,(D37A7)
;ld h,a
ld hl,(D37A6); ; è¨à¨­ /¢ëá®â  áâ५ª¨ ¬ë誨
;ld bc,(D379E)
;ld e,c
;ld bc,(D37A0)
;ld d,c
ld a,(D379E);
ld e,a;
ld a,(D37A0);
ld d,a;
xor a
;ld c,a
;ld b,a
A340B: ei
ret
;-----------------------------------------------------------
; ”ã­ªæ¨ï #08. “áâ ­®¢ª  £®à¨§. £à ­¨æ ¯¥à¥¬¥é¥­¨ï ¬ë誨
;
; ¢å®¤: hl = ¬¨­¨¬ «ì­ ï
; de = ¬ ªá¨¬ «ì­ ï
;-----------------------------------------------------------
set_x_limit:
ld (D3794),hl
ld (D3796),de
xor a
ret
;-----------------------------------------------------------
; ”ã­ªæ¨ï #07. “áâ ­®¢ª  ¢¥àâ. £à ­¨æ ¯¥à¥¬¥é¥­¨ï ¬ë誨
;
; ¢å®¤: hl = ¬¨­¨¬ «ì­ ï
; de = ¬ ªá¨¬ «ì­ ï
;-----------------------------------------------------------
set_y_limit:
ld (D3798),hl
ld (D379A),de
xor a
ret
A341F: ld (D37A2),hl
ld (D37A4),de
xor a
ret
A3428: ld (D379C),hl
xor a
ret
A342D: ld hl,(D379C)
xor a
ret
A3432: ld (A348B+1),hl
ld (A348E+1),de
srl d
rr e
srl d
rr e
srl d
rr e
ld d,e
srl h
rr l
srl h
rr l
srl h
rr l
ld e,l
in a,(89h)
db 0DDh
ld h,a
in a,(0A2h)
db 0DDh
ld l,a
di
ld a,54h ; ­®¬¥à áâà.
out (0A2h),a
ld a,d
add a,a
add a,a
ld l,a
ld h,43h ; áâ. à §àï¤ ?
in a,(0C9h)
rrca
and 80h
or 1
add a,e
out (89h),a
inc l
ld a,(hl)
ld bc,(D37A2)
and b
xor c
ld (hl),a
inc l
ld a,(hl)
ld bc,(D37A4)
and b
xor c
ld (hl),a
db 0DDh
ld a,l
out (0A2h),a
db 0DDh
ld a,h
out (89h),a
ret
A348B: ld hl,0
A348E: ld de,0
srl d
rr e
srl d
rr e
srl d
rr e
ld d,e
srl h
rr l
srl h
rr l
srl h
rr l
ld e,l
in a,(89h)
db 0DDh
ld h,a
in a,(0A2h)
db 0DDh
ld l,a
di
ld a,50h
out (0A2h),a
ld a,d
add a,a
add a,a
ld l,a
ld h,43h ; áâ. à §àï¤ ?
in a,(0C9h)
rrca
and 80h
or 1
add a,e
out (89h),a
inc l
ld a,(hl)
ld (hl),a
inc l
ld a,(hl)
ld (hl),a
db 0DDh
ld a,l
out (0A2h),a
db 0DDh
ld a,h
out (89h),a
ret
A34D7: ld a,0
bit 7,a
jr z,A348B
in a,(0E2h)
ld b,a
in a,(89h)
ld c,a
push bc
ld a,50h
out (0E2h),a
A34E9: ld hl,0
A34EC: ld de,0
ld a,e
ex af,af'
A34F1: ld a,0
and 1
ld de,LC000
jr z,A34FD
ld de,LC000+320
A34FD: add hl,de
A34FE: ld a,0 ; 14 á®åà. ¢ëá®â  áâ५ª¨ ¬ë誨
db 0DDh
ld h,a
ex af,af'
A3503: ld bc,10
out (89h),a
ex af,af'
ld (A3510+1),hl
ld d,h
ld e,l
ldir
A3510: ld hl,0
ex af,af'
inc a
jr z,A351B
db 0DDh
dec h
jr nz,A3503
A351B: pop bc
ld a,b
out (0E2h),a
ld a,c
out (89h),a
xor a
ret
A3524: ld a,(D378B)
ld (A34D7+1),a
bit 7,a
jp z,A3432
cp 82h ; 130
jr nz,A3537
srl h
rr l
A3537: ld ix,mouse_pointer ; 10x14 ¬ áᨢ áâ५ª¨ ¬ë誨
ld a,(D37A6) ; 10 è¨à¨­  áâ५ª¨ ¬ë誨
ld c,a
ld b,0
ld (D37AA),bc
ld (A3503+1),bc
ld c,b
ld (D37A8),bc
ld a,(D37A7) ; 14 ¢ëá®â  áâ५ª¨ ¬ë誨
ld (A34FE+1),a
ld c,a
ld b,0
ld (D37AC),bc
ld bc,(D37A0)
ld a,e
sub c
ld e,a
jr nc,A357B
neg
ld e,a
ld a,(D37A6) ; 10 è¨à¨­  áâ५ª¨ ¬ë誨
ld c,a
ld b,0
ld a,(D37A7) ; 14 ¢ëá®â  áâ५ª¨ ¬ë誨
sub e
A3571: add ix,bc
dec e
jr nz,A3571
ld c,a
ld (D37AC),bc
A357B: ld bc,(D379E)
and a
sbc hl,bc
jr nc,A359A
ld b,h
ld c,l
ld hl,0
and a
sbc hl,bc
ld (D37A8),hl
ld a,(D37A6) ; 10 è¨à¨­  áâ५ª¨ ¬ë誨
sub l
ld l,a
ld (D37AA),hl
ld hl,0
A359A: ld (A34E9+1),hl
ld (A34EC+1),de
push hl
in a,(0E2h)
ld h,a
in a,(89h)
ld l,a
ex (sp),hl
ld a,5Ch ; ¢¨¤¥®-áâà ­¨æ 
out (0E2h),a
ld a,e
ex af,af'
in a,(0C9h)
ld (A34F1+1),a
and 1
ld de,LC000
jr z,A35BE
ld de,LC000+320 ; ­ ç «® 2-£® íªà ­  ?
A35BE: add hl,de
db 0DDh
ld d,h
db 0DDh
ld e,l
ex de,hl
ld bc,(D37AC)
db 0DDh
ld h,c
ex af,af'
A35CB: ld bc,(D37A8)
add hl,bc
ld bc,(D37AA)
out (89h),a
ex af,af'
ld (A35DD+1),de
ldir
A35DD: ld de,0
ex af,af'
inc a
jr z,A35E8
db 0DDh
dec h
jr nz,A35CB
A35E8: pop bc
ld a,b
out (0E2h),a
ld a,c
out (89h),a
xor a
ret
A35F1: in a,(1Bh)
rrca
ret nc
in a,(1Ah)
ld l,a
bit 6,a
ccf
ret z
in a,(1Bh)
rrca
jr nc,$-3
in a,(1Ah)
ld e,a
bit 6,a
ccf
ret nz
in a,(1Bh)
rrca
jr nc,$-3
in a,(1Ah)
ld d,a
bit 6,a
ccf
ret nz
ld a,e
and 3Fh
ld e,a
ld a,l
and 3
rrca
rrca
or e
ld e,a
ld a,d
and 3Fh
ld d,a
ld a,l
and 0Ch
rrca
rrca
rrca
rrca
or d
ld d,a
ld a,l
rlca
rlca
rlca
res 6,a
jr nc,$+4
set 6,a
rlca
rlca
and 3
ld (D3792),a ; á®áâ. ª­®¯®ª: 0/1 bits - «¥¢ ï/¯à ¢ ï
call A36C3
;ld a,e ;@@
;ld (D3790),a
;ld a,d
;ld (D3791),a
ld (D3790),de
scf
ret
A364B: ld hl,(D378C) ; X ª®®à¤¨­ â  ¬ë誨
ld de,(D3790)
ld d,0
bit 7,e
jr nz,A366F
add hl,de
ld (D378C),hl ; X ª®®à¤¨­ â  ¬ë誨
ex de,hl
ld hl,(D3796)
and a
sbc hl,de
jr nc,A3689
ld hl,(D3796)
ld (D378C),hl ; X ª®®à¤¨­ â  ¬ë誨
jr A3689
;
A366F: ld a,e
neg
ld e,a
and a
sbc hl,de
ld (D378C),hl ; X ª®®à¤¨­ â  ¬ë誨
jr c,A3683
ld de,(D3794)
sbc hl,de
jr nc,A3689
A3683: ld hl,(D3794)
ld (D378C),hl ; X ª®®à¤¨­ â  ¬ë誨
A3689: ld hl,(D378E) ; Y ª®®à¤¨­ â  ¬ë誨
ld de,(D3791)
ld d,0
bit 7,e
jr nz,A36A9
add hl,de
ld (D378E),hl ; Y ª®®à¤¨­ â  ¬ë誨
ex de,hl
ld hl,(D379A) ; ¬ ªá. Y £à ­¨æ  ¤«ï 㪠§ â¥«ï
and a
sbc hl,de
ret nc
ld hl,(D379A) ; ¬ ªá. Y £à ­¨æ  ¤«ï 㪠§ â¥«ï
ld (D378E),hl ; Y ª®®à¤¨­ â  ¬ë誨
ret
;
A36A9: ld a,e
neg
ld e,a
and a
sbc hl,de
ld (D378E),hl ; Y ª®®à¤¨­ â  ¬ë誨
jr c,A36BC
ld de,(D3798) ; ¬¨­. Y £à ­¨æ  ¤«ï 㪠§ â¥«ï
sbc hl,de
ret nc
A36BC: ld hl,(D3798) ; ¬¨­. Y £à ­¨æ  ¤«ï 㪠§ â¥«ï
ld (D378E),hl ; Y ª®®à¤¨­ â  ¬ë誨
ret
A36C3: ld hl,(D379C)
ld a,l
or l
ret z
dec a
ret z
ld a,e
bit 7,a
ld b,0FFh
jr z,A36D6
ld b,7Fh
neg
A36D6: inc b
sub l
jr nc,A36D6
bit 7,b
jr z,A36E4
ld a,b
res 7,a
neg
ld b,a
A36E4: ld e,b
ld a,d
bit 7,a
ld b,0FFh
jr z,A36F0
ld b,7Fh
neg
A36F0: inc b
sub h
jr nc,A36F0
bit 7,b
jr z,A36FE
ld a,b
res 7,a
neg
ld b,a
A36FE: ld d,b
ret
A3700: ld (D378B),a
or a
jr z,A3720
cp 1
jr z,A3720
cp 2 ; 40x32x16 ⥪á⮢ë©
jr z,A3723
cp 3 ; 80x32x16 ⥪á⮢ë©
jr z,A3737
bit 7,a
jr z,A3720
; £à ä. ०¨¬ë íªà ­ 
;res 7,a ;@@
cp 81h ; 320x256x256
jr z,A3723
cp 82h ; 640x256x16
jr z,A3737
A3720: xor a
scf
ret
; 320x256x256 ०¨¬
A3723: ld de,319 ; ¬ ªá. X £à ­¨æ 
A3726: ld hl,0 ; ¬¨­. X/Y £à ­¨æë
call set_x_limit ; ãáâ. X £à ­¨æã ¯¥à¥¬. 㪠§ â¥«ï
ld de,255 ; ¬ ªá. Y £à ­¨æ 
jp set_y_limit ; ãáâ. Y £à ­¨æã ¯¥à¥¬. 㪠§ â¥«ï
; 640x256x16 ०¨¬
A3737: ld de,639 ; ¬ ªá. X £à ­¨æ 
jr A3726
;-----------------------------------------------------------
; ”ã­ªæ¨ï #80. Ž¡à ¡®â稪  ¯¯ à â­. ¯à¥à뢠­¨ï ®â ¬ëè¨
;
; <20>® ¯à¨å®¤ã ¯à¥à뢠­¨ï ®â ¬ëè¨ ¢ë§ë¢ ¥âáï ¤ ­­ ï äã­ªæ¨ï
; ¤à ©¢¥à . á«ãç ¥, ª®£¤  âॡã¥âáï à ¡®â  ¯®¤¯à®£à ¬¬ë
; ¯à¨ § ¯à¥é¥­­ëå ¯à¥à뢠­¨ïå, ¨á¯®«ì§ã©â¥ ¤ ­­ãî äã­ªæ¨î,
; çâ®¡ë ¨§¡¥¦ âì ¯®â¥à¨ ¯ ª¥â®¢ ¤ ­­ëå ®â ¬ëè¨.
;-----------------------------------------------------------
A374B: in a,(0E2h)
ld b,a
in a,(89h)
ld c,a
push bc
call A3772
call A3765
pop bc
ld a,b
out (0E2h),a
ld a,c
out (89h),a
ret
A3760: call A3765
and a
ret
A3765: call A35F1
ret nc
call A364B
ld a,0
ld (A3776+1),a
ret
A3772: db 3Eh ; ld a,..
enable_mouse_cursor:
db false ; ä« £ ¢ë¢®¤  㪠§ â¥«ï ¬ë誨
or a
ret z ; ­¥ ¢ë¢®¤¨âì 㪠§ â¥«ì
A3776: ld a,0
call A34D7
ld hl,(D378C) ; X ª®®à¤¨­ â  ¬ë誨
ld de,(D378E) ; Y ª®®à¤¨­ â  ¬ë誨
call A3524
ld a,-1
ld (A3776+1),a
ret
D378B: db 3
D378C: dw 160 ; X ª®®à¤¨­ â  ¬ë誨
D378E: dw 128 ; Y ª®®à¤¨­ â  ¬ë誨
D3790: db 0
D3791: db 0
D3792: db 0 ; á®áâ. ª­®¯®ª: 0/1 bits - «¥¢ ï/¯à ¢ ï
db 0; ; ­ã¦¥­ ?
;
D3794: dw 0
D3796: dw 319
D3798: dw 0 ; ¬¨­. Y £à ­¨æ  ¤«ï 㪠§ â¥«ï
D379A: dw 255 ; ¬ ªá. Y £à ­¨æ  ¤«ï 㪠§ â¥«ï
D379C: dw 0
D379E: dw 0
D37A0: dw 0
;
D37A2: dw 0FF00h
D37A4: dw 0FF77h
;
D37A6: db 10 ; è¨à¨­  áâ५ª¨ ¬ë誨
D37A7: db 14 ; ¢ëá®â  áâ५ª¨ ¬ë誨
;
D37A8: dw 0
D37AA: dw 0
D37AC: dw 0
; ‘â५ª  ¬ë誨. Œ áᨢ 10x14 ¡ ©â®¢ + 116 = 256
mouse_pointer:
db 0,0,-1,-1,-1,-1,-1,-1,-1,-1 ; 1
db 0,-2,0,-1,-1,-1,-1,-1,-1,-1 ; 2
db 0,-2,-2,0,-1,-1,-1,-1,-1,-1 ; 3
db 0,-2,-2,-2,0,-1,-1,-1,-1,-1 ; 4
db 0,-2,-2,-2,-2,0,-1,-1,-1,-1 ; 5
db 0,-2,-2,-2,-2,-2,0,-1,-1,-1 ; 6
db 0,-2,-2,-2,-2,-2,-2,0,-1,-1 ; 7
db 0,-2,-2,-2,-2,0,0,0,0,-1 ; 8
db 0,-2,-2,0,-2,0,-1,-1,-1,-1 ; 9
db 0,-2,0,0,-2,-2,0,-1,-1,-1 ; 10
db 0,0,-1,-1,0,-2,0,-1,-1,-1 ; 11
db 0,-1,-1,-1,0,-2,-2,0,-1,-1 ; 12
db -1,-1,-1,-1,-1,0,0,-1,-1,-1 ; 13
db -1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ; 14
;
ds 256-140 ; 116

View File

@ -1,22 +0,0 @@
‚¥àá¨î „Ž‘ ®¡®§¢ « ª ª 1.61.
“áâ ­®¢ª : § ¬¥­¨âì ®à¨£¨­ «ì­ë© ä ©« "system.dos".
1. ˆá¯à ¢«¥­  ä¨à¬¥­­ ï ®è¨¡ª , ¯à¨ ª®â®à®© ¯à®¨á室¨«® § ¢¨á ­¨¥
á¨á⥬ë (­¥¯à¥¤áª §ã¥¬®¥ ¯®¢¥¤¥­¨¥) ¯à¨ ¯à¥¢ë襭¨¨ ¬ ªá. ç¨á« 
®âªàëâëå ¤¥áªà¨¯â®à®¢. ޤ­ ¦¤ë, ¢® ¢à¥¬¥­  ¯®àâ¨à®¢ ­¨ï M80.EXE,
¨§-§  ¤ ­­®£® ¡ £  ¨ ª®­¥ç­® ­¥ã¤ ç­®£® à á¯®«®¦¥­¨ï §¢¥§¤ ­  ­¥¡¥,
¡ë« ᭥ᥭ ¢¥áì «®£¨ç¥áª¨© ¤¨áª "C".
2. <20>®ï¢¨« áì ­®¢ ï äã­ªæ¨ï:
”ã­ªæ¨ï #08 (DSS_RESCAN). <20>¥à¥áª ­¨à®¢ âì ¤¥¢ ©áë á¨á⥬ë.
¢å®¤: ­¥â
¢ë室: A - ­®¬¥à ¯®á«¥¤­¥£® «®£. ¤¨áª  ¢ á¨á⥬¥
<EFBFBD>।­ §­ ç¥­  ¤«ï á®§¤ â¥«¥© RAM-¤¨áª®¢. „«ï ¤®áâ㯠 ª á®§¤ ­­®¬ã
RAM-¤¨áªã ­¥ ­ã¦­® ¯¥à¥§ £à㦠âì ª®¬¯ìîâ¥à.
3. ®â«¨ç¨¨ ®â ®à¨£¨­ « , ä㭪樨 0Ah/0Bh (Create file/New create file)
¯¥à¥¤ á®§¤ ­¨¥¬ ä ©«  ¯à®¢¥àïîâ ­  ¯¥à¥¯®«­¥­¨¥ â ¡«¨æã ᢮¡®¤­ëå
¤¥áªà¨¯â®à®¢.

View File

@ -1,12 +0,0 @@
@echo off
..\asmplus.exe dos.asm SYSTEM.DOS
if errorlevel 1 goto ERR
echo Ok!
goto END
:ERR
del system.dos
echo ®è¨¡ª¨ ª®¬¯¨«ï樨...
:END
del dos.lst

View File

@ -1 +0,0 @@
<EFBFBD>ਠᮧ¤ ­¨¨ ä ©« , ¯ ¯ª¨ ¨ ¤à. ®¯¥à æ¨© á ¯ã⥬ (¤¨áª®¬) - „Ž‘ ¬¥­ï¥â ⥪ã騩 ¯ãâì !!!.

View File

@ -61,7 +61,6 @@ FM_BUF: _sFM
ENDM
////////////////////////////////////////////////////////////////////////
SET_FM: _mFM_FIND
LD A,DSS_Error.sys.NO_ERROR
RET NZ

View File

@ -545,7 +545,9 @@ SIZEBLK: LD B,#FF
XOR A
RET
LEAVMEM: LD HL,MEMTAB
////////////////////////////////////////////////////////////////////////
FREE_PROCESS_MEMORY:
LD HL,MEMTAB
LD BC,256 ;!HARDCODE à §¬¥à ¡«®ª  áâà ­¨æ އ“
.loop: LD A,(TASK)
CPIR
@ -561,7 +563,31 @@ LEAVMEM: LD HL,MEMTAB
POP BC
POP HL
JP .loop
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
FREE_PROCESS_FMs:
LD IY,CORE_BUFFERS.FM_BUF - CORE_BUFFERS.FM_BUF.Size
LD DE,CORE_BUFFERS.FM_BUF.Size
LD B,FMCOUNT+1
LD A,(TASK)
.loop: ADD IY,DE
CP (IY+_sFM.TASK_NUM)
CALL Z,.CLOSE
DJNZ .loop
RET
;
.CLOSE: PUSH IY
PUSH DE
PUSH AF
LD A,FMCOUNT+1
SUB B
CALL CLOSE_FN
POP AF
POP DE
POP IY
RET
////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #38. <20>®¤ª«î祭¨¥ áâà ­¨æë ¯ ¬ïâ¨.
;
@ -1055,10 +1081,6 @@ _TST_PROC:
IN A,(SLOT1)
PUSH DE
PUSH AF
;[x] 25/10/23 close EXE FM
LD A,(EXE_FM)
PUSH AF
;
LD (EXSTACK),SP
LD SP,HL
EXX
@ -1165,13 +1187,11 @@ _TST_PROC_2:
;
;/////////////////////////////////////////////////////////////////////
LEAVE: LD A,B
LD (ERLEVEL),A
CALL LEAVMEM
LD (ErrorLevel),A
CALL FREE_PROCESS_MEMORY
LD SP,(EXSTACK)
;[x] 25/10/23 close EXE FM
POP AF
;CALL RES_FM
CALL CLOSE_FN
;[x] 10/12/23 close EXE FMs
CALL FREE_PROCESS_FMs
_mDECTASK
;
POP AF
@ -1186,7 +1206,7 @@ LEAVE: LD A,B
LD (EXSTACK),SP
LD SP,HL
EX DE,HL
LD A,(ERLEVEL)
LD A,(ErrorLevel)
;R12
CP DSS_Error.sys.UNEXPECTED_APP_TRMN
JR NZ,.exit
@ -1202,7 +1222,7 @@ LEAVE: LD A,B
; ¢å®¤: ­¥â
; ¢ë室: A - ª®¤ § ¢¥à襭¨ï
;/////////////////////////////////////////////////////////////////////
WAIT: LD A,(ERLEVEL)
WAIT: LD A,(ErrorLevel)
AND A
RET
;/////////////////////////////////////////////////////////////////////
@ -1302,7 +1322,7 @@ TASK: DB #01 ;
RAMMAP: DB #00,#00,#00,#00
ERLEVEL: DB #00 ; ª®¤ § ¢¥à襭¨ï ¯à®£à ¬¬ë (¯à®æ¥áá )
ErrorLevel: DB #00 ; ª®¤ § ¢¥à襭¨ï ¯à®£à ¬¬ë (¯à®æ¥áá )
EXE_FM: DB #00 ; ¤¥áªà. ä ©« 
EXE_MEM: DB #00 ; ¨¤¥­â¨ä¨ª â®à ¡«®ª  ¯ ¬ïâ¨

View File

@ -1 +1 @@
786
789

View File

@ -19,11 +19,17 @@ echo_mode:
; ‡ ¯ã᪠bat-ä ©« 
; ¢å®¤: hl=¨¬ï ä ©« 
;-------------------------------------------------
A83E8: call BATCH
RUN_BAT:
; [ ] 11/12/23 ¢«®¦¥­­ë¥ bat
;.level+1:
; LD A,(BAT_FM)
; OR A
; jr nz,.new_process
; ;
call BATCH
jp c,A83DD ; ®è¨¡ª  ®âªà. ä ©«  (cpp.asm)
ret
;-------------------------------------------------
; ¢å®¤: b=ç¨á«® á«®¢ "ZERO".."NINE"
MAKE_BATCH_PRM_ARRAY:
@ -78,6 +84,14 @@ BATCH: push hl ;
ex de,hl
.B_ALL_P:
pop hl ; ¢®ááâ. ¨¬ï bat-ä ©« 
; [ ] 11/12/23 ¢«®¦¥­­ë¥ bat
ld a,(BAT_FM)
or a
jr z,1F
CALL .new_process
xor a
ret
1: ;
ld a,Dss.Open.R ; ­  ç⥭¨¥
ld c,Dss.Open ; ®âªàëâì ä ©«
RST ToDSS
@ -91,9 +105,47 @@ BATCH: push hl ;
ld (BAT_FM),a ; ¤¥áªà. bat-ä ©« 
; ¢ë¯®«­. ª®¬ ­¤ bat-ä ©« 
call NEWLINE
;!TODO ¢«®¦¥­­ë¥ bat. ¯¥à¥¤ ¢ âì ®è¨¡ªã ®¡à â­® ¢ ¢ë§ë¢ î騩 bat
xor a
ret
; [ ] 11/12/23 ¢«®¦¥­­ë¥ bat
.new_process:
ld de,work_buffer
call copy_string
;
ld hl,.shell
ld de,struct_input_line+5
call copy_string
;
ld hl,work_buffer
ld de,struct_input_line+5 + .shell.size - 1
call copy_string
;
; ld c,Dss.CurDisk
; rst ToDSS
; add a,'A'
; ld (.shell),a
;
ld hl,struct_input_line+5
ld bc,Dss.Exec;.Here
rst ToDSS
;
; PUSH AF
; LD A
ret nc
CP DSS_Error.sys.FILE_NOT_FOUND
jp z,A83DD ; ®è¨¡ª  ®âªà. ä ©«  (cpp.asm)
ret
;.shell: DB '?:\SYSTEM.EXE /C ',0
.shell: DB 'SYSTEM.EXE /C ',0
.shell.size EQU $ - .shell
;
.ErrorEnv: DB 'ERRORLEVEL='
.ErrorEnv.Code: DB 'xxx',0
.ErrorEnv.Size EQU $ - .ErrorEnv
;
;---------------------------------------------------
; ‚믮«­¥­¨¥ ª®¬ ­¤ BAT-ä ©« 
@ -106,20 +158,27 @@ NEWLINE:
or a ; a=ç¨á«® ¯à®ç¨â. ¡ ©â
jr nz,.BATLINE
ex de,hl
;ld de,T96AE ;;256 ¡ãä¥à (inline.asm)
ld de,struct_input_line+5
sbc hl,de
jr z,.exit; ;[x] Vasil, ã¡à ­ ¡ £ á ­¥§ ªàëâë¬ BAT-ä ©«®¬
jr z,.exit; ;[x] <Vasil> ã¡à ­ ¡ £ á ­¥§ ªàëâë¬ BAT-ä ©«®¬
ld a,l
ld (struct_input_line+4),a ; ¤«¨­  áâப¨
PUSH HL ; [ ] 11/12/23 ¤«ï ¡ « ­á  á⥪  ¢ cmd_break
; [ ] 11/12/23 ¢«®¦¥­­ë¥ bat
; ld a,#FF
; ld (RUN_BAT.level),a
;
call CMDMODE ; â¥áâ ­  bat-ª®¬ ­¤ë "rem","pause"
POP HL ; [ ] 11/12/23 ¤«ï ¡ « ­á  á⥪  ¢ cmd_break
.exit: ld a,(BAT_FM) ; ¤¥áªà. bat-ä ©« 
ld c,Dss.Close ; § ªàëâì ä ©«
;!TODO ¢«®¦¥­­ë¥ bat. ¯¥à¥¤ ¢ âì ®è¨¡ªã ®¡à â­® ¢ ¢ë§ë¢ î騩 bat
RST ToDSS
xor a
ld (BAT_FM),a
ret
;
.BATLINE:
;ld hl,T99B9 ; ®âªã¤ , 128 ¡ãä¥à (ccp.asm) "work_buffer1"
ld hl,work_buffer1
.loop: call MOVWORD ; ᪮¯¨à. work_buffer1 -> struct_input_line+5
jr c,.ADDBAT
@ -127,17 +186,16 @@ NEWLINE:
ld (MOVWORD.count),a ; ®áâ «®áì ¯à®¯ àá¨âì ¯à®ç¨â ­­ëå ¡ ©â®¢
push hl
ex de,hl
;ld de,T96AE ;;256 ¡ãä¥à (inline.asm)
ld de,struct_input_line+5
;ld de,work_buffer+256;;
sbc hl,de
ld a,l
;ld (D96AD),a ;; ¤«¨­  áâப¨ (inline.asm)
ld (struct_input_line+4),a ; ¤«¨­  áâப¨
; [ ] 11/12/23 ¢«®¦¥­­ë¥ bat
; ld a,#FF
; ld (RUN_BAT.level),a
;
call CMDMODE ; â¥áâ ­  bat-ª®¬ ­¤ë "rem","pause"
;ld de,T96AE ;;256 ¡ãä¥à (inline.asm)
ld de,struct_input_line+5
;ld de,work_buffer+256;;
pop hl
jr .loop
@ -155,7 +213,7 @@ MOVWORD:
.loop: ld a,(hl)
ld (de),a
cp " "
jr c,.loop2
jr c,.loop_
inc hl
inc de
djnz .loop
@ -165,7 +223,7 @@ MOVWORD:
.loop2: ld a,(hl)
cp " "
ret nc
inc hl
.loop_: inc hl
djnz .loop2
push de
call READBAT ; ¯à®ç¨â âì 128 ¡ ©â ¨§ ä ©« 
@ -196,6 +254,7 @@ READBAT:
; ’¥áâ ­  bat-ª®¬ ­¤ë "rem","pause"
; ¤®«¦¥­ ᮡ«î¤ âìáï ¡ « ­á á⥪  ¤«ï cmd_break
CMDMODE:
;xor a
;ld (D96A6),a ; (inline.asm)
@ -203,14 +262,13 @@ CMDMODE:
;ld ix,T96AC ; ­ã¦­®?? § ª®¬¥­â à¨« (inline.asm)
;ld hl,T96AE ;;256 ¡ãä¥à (inline.asm)
ld hl,struct_input_line+5
;ld hl,work_buffer+256;;
ld a,(hl)
cp "@" ; 40h
jr nz,A8240
jr nz,.A8240
dec hl
;ld hl,struct_input_line+4;;
dec (hl)
jr z,A825B
jr z,.A825B
ld c,(hl) ; ¤«¨­  áâப¨
inc hl
ld b,0
@ -219,11 +277,11 @@ CMDMODE:
ld e,l
inc hl
ldir
jr A825B
jr .A825B
;
A8240: ld a,(echo_mode) ; ä« £ echo-०¨¬ 
.A8240: ld a,(echo_mode) ; ä« £ echo-०¨¬ 
or a
jr z,A825B ; off
jr z,.A825B ; off
; ¢ë¢¥á⨠á¨áâ. ¯ãâì ¨ áâபã ᮤ¥à¦¨¬®£® bat-ä ©« 
;ld de,T96AE ;;256 ¡ãä¥à (inline.asm)
;ld de,struct_input_line+5
@ -250,7 +308,7 @@ A8240: ld a,(echo_mode) ; 䫠
sub b
ei
ret z ; ¯à ¢ë© ªà © íªà ­ 
jr c,A8250; ; áâப  ¡®«ìè¥ è¨à¨­ë íªà ­ 
jr c,.A8250; ; áâப  ¡®«ìè¥ è¨à¨­ë íªà ­ 
; § ¯®«­¨âì áâப㠤® ª®­æ  íªà ­ 
dec a ; çâ®¡ë ­¥ áà ¡®â « áªà®««¨­£ íªà ­  ;!FIXIT scroll
ld b,a ; ç¨á«® ¢ë¢®¤. ᨬ¢®«®¢
@ -259,7 +317,7 @@ A8240: ld a,(echo_mode) ; 䫠
RST ToBIOS
ei
;!TEST
A8250: call newline
.A8250: call newline
;
;
;ld a,(D96AD) ;; ¤«¨­  áâப¨ (inline.asm)
@ -269,7 +327,7 @@ A8250: call newline
;call newline
;jr A8264
;
A825B: ;ld a,(D96AD) ;; ¤«¨­  áâப¨ (inline.asm)
.A825B: ;ld a,(D96AD) ;; ¤«¨­  áâப¨ (inline.asm)
ld a,(struct_input_line+4)
or a
ret z
@ -282,15 +340,15 @@ A825B: ;ld a,(D96AD) ;;
ld b,0
inc hl
;ld hl,work_buffer+256;;
A826C: ld a,(hl)
.A826C: ld a,(hl)
cp " "
jr nz,A8276
jr nz,.A8276
inc hl
dec c
jr nz,A826C
jr nz,.A826C
ret
;
A8276: ld d,h
.A8276: ld d,h
ld e,l
add hl,bc
ld (hl),b ; 0 ¢ ª®­¥æ áâப¨ (¯¥à¢®£® ª®­æ. ¯à®¡¥« )
@ -299,15 +357,19 @@ A8276: ld d,h
ex af,af'
ld a," "
cpir
jr nz,A8286
jr nz,.A8286
inc c
A8286: ex af,af'
.A8286: ex af,af'
sub c
ld c,a ; ¤«¨­  á«®¢  ¨«¨ áâப¨ ?
ld hl,BATLIST ; ª®¬ ­¤ë "pause","rem" + dos-ª®¬ ­¤ë
; de=struct_input_line+5, c=¤«¨­  áâப¨ (¡¥§ ª®­æ. ¯à®¡¥«®¢)
; ¢ë¯®«­. ª®¬ ­¤ã ¨«¨ § ¯ãáâ¨âì ä ©«
jp COMP005.start
; [ ] 11/12/23 ¢«®¦¥­­ë¥ bat
; ld a,#FF
; ld (RUN_BAT.level),a
;
jp COMP005.start
@ -418,6 +480,7 @@ EVALSTR: ld a,(hl)
; BAT-ª®¬ ­¤ë (­¥ ®â¤¥«ïâì ®â ¤®á-ª®¬ ­¤)
BATLIST: DZ 'PAUSE' : DW cmd_pause ;CPAUSE
DZ 'REM' : DW cmd_rem ;CREM
DZ 'EXIT' : DW cmd_break ;break
;
; DSS-ª®¬ ­¤ë
CMDLIST: DZ 'CD' : DW cmd_chdir ;CCHDIR

8
SHELL/Commands/BREAK.ASM Normal file
View File

@ -0,0 +1,8 @@
; [ ] 11/12/23
cmd_break:
pop hl ; ¢®ááâ ­®¢«¥­¨¥ ¡ « ­á  á⥪ 
pop hl ; ¢®ááâ ­®¢«¥­¨¥ ¡ « ­á  á⥪ 
XOR A
ld (MOVWORD.count),a
;!TODO ¢«®¦¥­­ë¥ bat. ¯¥à¥¤ ¢ âì ®è¨¡ªã ®¡à â­® ¢ ¢ë§ë¢ î騩 bat
JP NEWLINE.exit

View File

@ -8,5 +8,5 @@ cmd_exit:
dec a
dec a
ret z ; a=2 (primary 襫«)
pop hl ; ¢®ááâ. ¡ « ­á á⥪  (ã¡à âì ¢ë§®¢ A82E7 ¢ £«. 横«¥ ®¡®«®çª¨)
;pop hl ; ¢®ááâ. ¡ « ­á á⥪  (ã¡à âì ¢ë§®¢ COMP ¢ £«. 横«¥ ®¡®«®çª¨)
jp back_to_parent_process ; ¢¥à­ãâìáï ¢ த¨â. ¯à®æ¥áá

View File

@ -3,4 +3,5 @@
; REM. Š®¬¬¥­â à¨© (¢ bat-ä ©«¥)
;
;///////////////////////////////////////////////////
cmd_rem:ret
cmd_rem: ret
;

View File

@ -102,10 +102,10 @@ RUN_EXT: ex de,hl ;
; ¥áâì à áè. ä ©« 
ld de,T8C1A ; ¡ãä¥à à áè. ä ©« 
ld hl,T8C1E ; "BAT"
ld b,3 ; ¤«¨­  áà ¢­¥­¨ï
ld b,3 ; ¤«¨­  áà ¢­¥­¨ï ;!HARDCODE
call A874E ; áà ¢­¨âì áâப¨
ld hl,(D8374)
jp z,A83E8 ; ¢ë¯®«­¨âì bat-ä ©« (batch.asm)
jp z,RUN_BAT ; ¢ë¯®«­¨âì bat-ä ©« (batch.asm)
jr A83D7 ; ¢ë¯®«­¨âì exe-ä ©«
A839D: ld bc,0*256 + Dss.Exec ; § £à. ¨ ¢ë¯®«­¨âì ¯à®£à ¬¬ã
@ -153,7 +153,7 @@ A83B7: ld e,b
inc hl
ld (hl),"T"
pop hl
jp A83E8 ; ¢ë¯®«­¨âì bat-ä ©« (batch.asm)
jp RUN_BAT ; ¢ë¯®«­¨âì bat-ä ©« (batch.asm)
; ‚믮«­¨âì exe-ä ©«

View File

@ -117,14 +117,26 @@ shell:
bit 6,a ; 6-© ¡¨â (¢¢®¤¨«¨áì ¤®¯®«­. ¯ à ¬¥âàë)
jr z,back_to_parent_process
; ¢¢®¤¨«¨áì ¤®¯®«­. ¯ à ¬¥âàë
PUSH HL ; [ ] 11/12/23 ¤«ï ¡ « ­á  á⥪  ¢ cmd_break
; [ ] 11/12/23 ¢«®¦¥­­ë¥ bat
; xor a
; ld (RUN_BAT.level),a
;
call CMDMODE ; (batch.asm) ¢ë¯®«­. ª®¬ ­¤ã ¨«¨ § ¯ãáâ¨âì ä ©«
POP HL ; [ ] 11/12/23 ¤«ï ¡ « ­á  á⥪  ¢ cmd_break
call save_disk_path ; ã§­ âì ¨ á®åà. ⥪. ¤¨áª ¨ ¯ãâì
;
; ‚¥à­ãâìáï ¢ த¨â. ¯à®æ¥áá
back_to_parent_process:
ld bc,0*256 + Dss.Exit
RST ToDSS
ret
; [ ] 11/12/23 ¢«®¦¥­­ë¥ bat
LD B,0
JR NC,1F
LD B,A
1: ld c,Dss.Exit
;ld bc,0*256 + Dss.Exit
;
JP ToDSS
;ret
@ -148,7 +160,9 @@ option_c:
;ld hl,work_buffer+256;;
ld hl,struct_input_line+5 ; ¨¬ï bat-ä ©« 
call BATCH ; ®¡à ¡®âª  bat-ä ©«  (batch.asm)
PUSH AF ; [ ] 11/12/23 ¢«®¦¥­­ë¥ bat, á®å࠭塞 ª®¤ ¢®§¢à â 
call save_disk_path ; ã§­ âì ¨ á®åà. ⥪. ¤¨áª ¨ ¯ãâì
POP AF ; [ ] 11/12/23 ¢«®¦¥­­ë¥ bat, á®å࠭塞 ª®¤ ¢®§¢à â 
jr back_to_parent_process ; ¢¥à­ãâìáï ¢ த¨â. ¯à®æ¥áá
@ -289,7 +303,7 @@ setopt2: cp "S" ;
set 5,c
jr setopt4
;
setopt3:cp "C" ; ¢ë¯®«­. bat-ä ©« ¨ ¢¥à­ãâìáï ¢ த¨â. ¯à®æ¥áá
setopt3: cp "C" ; ¢ë¯®«­. bat-ä ©« ¨ ¢¥à­ãâìáï ¢ த¨â. ¯à®æ¥áá
ret nz
set 4,c
setopt4: ld a,c
@ -532,6 +546,7 @@ T8C24: db "OFF",0
;
include 'Commands/exit.asm' ; ¢ë室 ¢ த¨â. ¯à®æ¥áá
include 'Commands/break.asm' ; ¢ë室 ¨§ ¯ àá¥à  bat
include 'Commands/pause.asm' ; ¯ ã§ 
include 'Commands/rem.asm' ; ª®¬¬¥­â à¨©
include 'Commands/ver.asm' ; ¢ë¢®¤ ¢¥àᨨ „Ž‘

View File

@ -1 +1 @@
259
281