Added RDCPM and EDLIN, style fixes

Added the reconstructed source code of RDCPM.COM and EDLIN.COM, and changed the style of the other source files to match Tim Paterson's coding style.
This commit is contained in:
Broken Pipe
2024-01-30 14:42:47 +00:00
parent c1c73b5cfd
commit 4bdf7a2bd9
5 changed files with 1015 additions and 94 deletions
+46 -60
View File
@@ -19,6 +19,7 @@ PRINTBUF EQU 9
OUTCH EQU 2
INBUF EQU 10
RR EQU 33
SYSTEM EQU 5
ORG 100H
@@ -27,7 +28,7 @@ RR EQU 33
MOV DL,0 ;Start with A:
SETDRV:
MOV CL,SELDRV
CALL 5
CALL SYSTEM
COMMAND:
MOV SP,STACK
CLD
@@ -43,7 +44,7 @@ COMMAND:
MOV [NUMREC],CX ;Number of records each time
MOV DX,CRLF
MOV CL,PRINTBUF
CALL 5
CALL SYSTEM
MOV DX,COMMAND
MOV AX,2522H ;Set vector 34 (terminate)
INT 33
@@ -51,27 +52,27 @@ COMMAND:
INT 33
GETCOM:
MOV CL,GETDRV
CALL 5
CALL SYSTEM
ADD AL,"A"
MOV CL,OUTCH
MOV DL,AL
CALL 5 ;Print drive letter
CALL SYSTEM ;Print drive letter
MOV DL,":"
MOV CL,OUTCH
CALL 5 ;Print :
MOV DX,LINEBUF
CALL SYSTEM ;Print :
MOV DX,LINBUF
MOV CL,INBUF
CALL 5
CALL SYSTEM
MOV DL,10
MOV CL,OUTCH
CALL 5 ;New line
CALL SYSTEM ;New line
MOV CH,0
MOV SI,FILLINFO ;8 spaces
MOV SI,FILIFO ;8 spaces
MOV DI,ID
CALL FILLBUF
MOV DI,FCB
CALL FILLBUF
MOV SI,LINEBUF+2
MOV SI,LINBUF+2
MOV DI,ID
CALL FILEDRV ;Get COM drive
MOV [SPECDRV],AL
@@ -138,7 +139,7 @@ EXTERNAL:
INT 33
MOV DX,100H
MOV CL,SETDMA
CALL 5
CALL SYSTEM
MOV BX,DS ;New segment into BX
POP DS
MOV DX,IDLEN
@@ -161,12 +162,12 @@ EXTERNAL:
PUSH AX
MOV CL,SETDMA
MOV DX,80H
CALL 5
CALL SYSTEM
RET L
BADCOM:
MOV DX,BADNAM
MOV CL,PRINTBUF
CALL 5
CALL SYSTEM
JMP COMMAND
NEXTCHR:
@@ -248,27 +249,27 @@ DIR:
MOV DI,FCB+1
CALL FILLBUF ;Fill 11 bytes with "?"
HASNAME:
MOV DX,LINEBUF+2+1
MOV DX,LINBUF+2+1
MOV CL,SETDMA
CALL 5
CALL SYSTEM
MOV CL,SRCHFRST
MOV DX,FCB
EACHFILE:
CALL 5
CALL SYSTEM
INC AL ;FF = file not found
JZ RET
MOV SI,LINEBUF+2+1
MOV SI,LINBUF+2+1
MOV CX,8
CALL OUTCNT ;Print 8 chars (name)
MOV CL,OUTCH
MOV DL," "
CALL 5 ;Print space
MOV SI,LINEBUF+2+9
CALL SYSTEM ;Print space
MOV SI,LINBUF+2+9
MOV CX,3
CALL OUTCNT ;Print 3 chars (ext)
MOV DX,CRLF
MOV CL,PRINTBUF
CALL 5 ;Print new line
CALL SYSTEM ;Print new line
MOV CL,SRCHNXT
JP EACHFILE
OUTCNT:
@@ -277,7 +278,7 @@ OUTCNT:
PUSH SI
MOV DL,AL
MOV CL,OUTCH
CALL 5
CALL SYSTEM
POP SI
POP CX
LOOP OUTCNT
@@ -301,7 +302,7 @@ CREATE:
TYPE:
MOV DX,TPA
MOV CL,SETDMA
CALL 5
CALL SYSTEM
MOV DX,FCB
MOV AH,OPEN
INT 33
@@ -318,16 +319,16 @@ OUTLP:
JZ RET
MOV CL,OUTCH
MOV DL,AL
CALL 5
CALL SYSTEM
JP OUTLP
RET
CLEAR:
MOV DX,ERAMES
MOV CL,PRINTBUF
CALL 5 ;Confirm erase
CALL SYSTEM ;Confirm erase
MOV CL,INCHAR
CALL 5
CALL SYSTEM
CMP AL,"Y"
JZ DOCLEAR
CMP AL,"y"
@@ -339,10 +340,10 @@ DOCLEAR:
JZ CLRDSK
DEC DL
MOV CL,SELDRV
CALL 5
CALL SYSTEM
CLRDSK:
MOV CL,GETFAT
CALL 5
CALL SYSTEM
MOV CX,DX
INC DX
SHR DX
@@ -368,7 +369,7 @@ DOFILL:
CALL FILLBUF
MOV DX,FCB
MOV CL,DELETE
CALL 5 ;Delete all files
CALL SYSTEM ;Delete all files
MOV CL,DSKRESET
JMP 5
@@ -410,7 +411,7 @@ CPYBLK:
INT 33
OR AL,AL
JZ CPYBLK
MOV DX,NOSPACE
MOV DX,NOSPCE
MOV AH,PRINTBUF
INT 33
CPYDONE:
@@ -427,48 +428,33 @@ NOSRC:
DS 40
STACK:
BADNAM:
DB "Bad command or file name"
CRLF:
DB 13,10,"$"
ERAMES:
DB "Erase all files (Y/N)? $"
NOTFND:
DB "Source file not found$"
NOSPACE:
DB "Insufficient disk space$"
BADNAM: DB "Bad command or file name"
CRLF: DB 13,10,"$"
ERAMES: DB "Erase all files (Y/N)? $"
NOTFND: DB "Source file not found$"
NOSPCE: DB "Insufficient disk space$"
FCBFIL:
DB 11,"?"
FCBFIL: DB 11,"?"
DB 0
SPECDRV:
DS 1
NUMREC:
DS 2
SPECDRV: DS 1
NUMREC: DS 2
IDLEN:
DS 1
ID:
DS 8
COM:
DB "COM"
DSTFCB:
DS 36
IDLEN: DS 1
ID: DS 8
COM: DB "COM"
DSTFCB: DS 36
LINEBUF:
DB 80H,1,13
LINBUF: DB 80H,1,13
DS 80H
FILLINFO:
DB 8," "
FILIFO: DB 8," "
DB 0
DB 12," ",4,0
DB 12," ",8,0
DB 0
COMTAB:
DB 4,"DIR"
COMTAB: DB 4,"DIR"
DW DIR
DB 7,"RENAME"
DW RENAME
@@ -485,4 +471,4 @@ COMTAB:
DB 0
TPA: