General cleanup

Clean up of various source files. The CHESS program is not fully cleaned up yet.
This commit is contained in:
Yufeng Gao
2026-01-25 22:26:55 +10:00
parent 2b03858c61
commit c7b866b40d
8 changed files with 468 additions and 446 deletions
+7
View File
@@ -3,9 +3,16 @@
# 86-DOS and CP/M text files must use CRLF and have 0x1A EOF markers, we simply mark them as binary # 86-DOS and CP/M text files must use CRLF and have 0x1A EOF markers, we simply mark them as binary
*.a86 binary *.a86 binary
*.A86 binary
*.asm binary *.asm binary
*.ASM binary
*.com binary *.com binary
*.COM binary
*.doc binary *.doc binary
*.DOC binary
*.hex binary *.hex binary
*.HEX binary
*.prn binary *.prn binary
*.PRN binary
*.z80 binary *.z80 binary
*.Z80 binary
+287 -273
View File
File diff suppressed because it is too large Load Diff
+58 -57
View File
@@ -11,10 +11,10 @@
;*********************************************************** ;***********************************************************
; SYSTEM EQUATES ; SYSTEM EQUATES
;*********************************************************** ;***********************************************************
INCHAR EQU 1 INCHAR: EQU 1
PRINTBUF EQU 9 PRINTBUF:EQU 9
INBUF EQU 10 INBUF: EQU 10
SYSTEM EQU 5 SYSTEM: EQU 5
;*********************************************************** ;***********************************************************
; EQUATES ; EQUATES
@@ -96,7 +96,7 @@ START:
ORG START+80H ORG START+80H
PUT START+80H PUT START+80H
TBASE: EQU START+100H TBASE: EQU START+100H
;********************************************************** ;***********************************************************
; DIRECT -- Direction Table. Used to determine the dir- ; DIRECT -- Direction Table. Used to determine the dir-
; ection of movement of each piece. ; ection of movement of each piece.
;*********************************************************** ;***********************************************************
@@ -163,8 +163,8 @@ PIECES: EQU $-TBASE
; 1 -- Black ; 1 -- Black
; 0 -- White ; 0 -- White
; Bit 6 -- Not used ; Bit 6 -- Not used
; Bit 5 -- Not used ; Bit 5 -- Pawn attack flag for ATTACK
; Bit 4 --Castle flag for Kings only ; Bit 4 -- Castle flag for Kings only
; Bit 3 -- Piece has moved flag ; Bit 3 -- Piece has moved flag
; Bits 2-0 Piece type ; Bits 2-0 Piece type
; 1 -- Pawn ; 1 -- Pawn
@@ -213,35 +213,35 @@ PLISTA: DW 0,0,0,0,0,0,0,0,0,0
; the black king. ; the black king.
; ;
; POSQ -- Position of Queens. Like POSK,but for queens. ; POSQ -- Position of Queens. Like POSK,but for queens.
;*********************************************************** ;************************************************************
POSK: DB 24,95 POSK: DB 24,95
POSQ: DB 14,94 POSQ: DB 14,94
DB -1 DB -1
;*********************************************************** ;************************************************************
; SCORE -- Score Array. Used during Alpha-Beta pruning to ; SCORE -- Score Array. Used during Alpha-Beta pruning to
; hold the scores at each ply. It includes two ; hold the scores at each ply. It includes two
; "dummy" entries for ply -1 and ply 0. ; "dummy" entries for ply -1 and ply 0.
;*********************************************************** ;************************************************************
SCORE: DW 0,0,0,0,0,0 SCORE: DW 0,0,0,0,0,0
;*********************************************************** ;************************************************************
; PLYIX -- Ply Table. Contains pairs of pointers, a pair ; PLYIX -- Ply Table. Contains pairs of pointers, a pair
; for each ply. The first pointer points to the ; for each ply. The first pointer points to the
; top of the list of possible moves at that ply. ; top of the list of possible moves at that ply.
; The second pointer points to which move in the ; The second pointer points to which move in the
; list is the one currently being considered. ; list is the one currently being considered.
;*********************************************************** ;************************************************************
PLYIX: DW 0,0,0,0,0,0,0,0,0,0 PLYIX: DW 0,0,0,0,0,0,0,0,0,0
DW 0,0,0,0,0,0,0,0,0,0 DW 0,0,0,0,0,0,0,0,0,0
;*********************************************************** ;************************************************************
; STACK -- Contains the stack for the program. ; STACK -- Contains the stack for the program.
;*********************************************************** ;************************************************************
ORG START+2FFH ORG START+2FFH
STACK: STACK:
;*********************************************************** ;************************************************************
; TABLE INDICES SECTION ; TABLE INDICES SECTION
; ;
; M1-M4 -- Working indices used to index into ; M1-M4 -- Working indices used to index into
@@ -275,7 +275,7 @@ STACK:
; MLNXT -- Pointer to the next available space in the move ; MLNXT -- Pointer to the next available space in the move
; list. ; list.
; ;
;*********************************************************** ;************************************************************
ORG START+0 ORG START+0
PUT START+0 PUT START+0
M1: DW TBASE M1: DW TBASE
@@ -295,7 +295,7 @@ BESTM: DW 0
MLLST: DW 0 MLLST: DW 0
MLNXT: DW MLIST MLNXT: DW MLIST
;*********************************************************** ;************************************************************
; VARIABLES SECTION ; VARIABLES SECTION
; ;
; KOLOR -- Indicates computer's color. White is 0, and ; KOLOR -- Indicates computer's color. White is 0, and
@@ -355,7 +355,7 @@ MLNXT: DW MLIST
; BMOVES -- Our very tiny book of openings. Determines ; BMOVES -- Our very tiny book of openings. Determines
; the first move for the computer. ; the first move for the computer.
; ;
;*********************************************************** ;************************************************************
KOLOR: DB 0 KOLOR: DB 0
COLOR: DB 0 COLOR: DB 0
P1: DB 0 P1: DB 0
@@ -381,7 +381,7 @@ BMOVES: DB 35,55,10H
DB 85,65,10H DB 85,65,10H
DB 84,64,10H DB 84,64,10H
;*********************************************************** ;************************************************************
; MOVE LIST SECTION ; MOVE LIST SECTION
; ;
; MLIST -- A 2048 byte storage area for generated moves. ; MLIST -- A 2048 byte storage area for generated moves.
@@ -424,7 +424,7 @@ BMOVES: DB 35,55,10H
; MLVAL -- The field in the move entry which contains the ; MLVAL -- The field in the move entry which contains the
; score assigned to the move. ; score assigned to the move.
; ;
;*********************************************************** ;************************************************************
ORG START+300H ORG START+300H
PUT START+300H PUT START+300H
MLIST: DS 2048 MLIST: DS 2048
@@ -435,11 +435,11 @@ MLTOP: EQU 3
MLFLG: EQU 4 MLFLG: EQU 4
MLVAL: EQU 5 MLVAL: EQU 5
;*********************************************************** ;************************************************************
; PROGRAM CODE SECTION ; PROGRAM CODE SECTION
;*********************************************************** ;************************************************************
; BOARD SETUP ROUTINE ; BOARD SETUP ROUTINE
;*********************************************************** ;************************************************************
; FUNCTION: To initialize the board array, setting the ; FUNCTION: To initialize the board array, setting the
; pieces in their initial positions for the ; pieces in their initial positions for the
; start of the game. ; start of the game.
@@ -449,7 +449,7 @@ MLVAL: EQU 5
; CALLS: None ; CALLS: None
; ;
; ARGUMENTS: None ; ARGUMENTS: None
;*********************************************************** ;*************************************************************
INITBD: MOV CX,60 ; Pre-fill board with -1's INITBD: MOV CX,60 ; Pre-fill board with -1's
MOV DI,BOARDA MOV DI,BOARDA
MOV AX,-1 MOV AX,-1
@@ -479,16 +479,16 @@ IB2: MOV AL,[SI-8] ; Fill non-border squares
MOV B,[SI+3],94 MOV B,[SI+3],94
RET RET
;*********************************************************** ;************************************************************
; PATH ROUTINE ; PATH ROUTINE
;*********************************************************** ;************************************************************
; FUNCTION: To generate a single possible move for a given ; FUNCTION: To generate a single possible move for a given
; piece along its current path of motion including: ; piece along its current path of motion including:
;
; Fetching the contents of the board at the new ; Fetching the contents of the board at the new
; position, and setting a flag describing the ; position, and setting a flag describing the
; contents: ; contents:
; 0 -- New position is empty ; 0 -- New postion is empty
; 1 -- Encountered a piece of the ; 1 -- Encountered a piece of the
; opposite color ; opposite color
; 2 -- Encountered a piece of the ; 2 -- Encountered a piece of the
@@ -504,7 +504,7 @@ IB2: MOV AL,[SI-8] ; Fill non-border squares
; ;
; ARGUMENTS: Direction from the direction array giving the ; ARGUMENTS: Direction from the direction array giving the
; constant to be added for the new position. ; constant to be added for the new position.
;*********************************************************** ;************************************************************
PATH: ADD [M2],CL ; Add direction constant to previous position PATH: ADD [M2],CL ; Add direction constant to previous position
MOV SI,[M2] ; Load board index MOV SI,[M2] ; Load board index
MOV AL,[SI+BOARD] ; Get contents of board MOV AL,[SI+BOARD] ; Get contents of board
@@ -523,9 +523,9 @@ PATH: ADD [M2],CL ; Add direction constant to previous position
PA2: MOV AL,3 ; Set off board flag PA2: MOV AL,3 ; Set off board flag
RET RET
;*********************************************************** ;************************************************************
; PIECE MOVER ROUTINE ; PIECE MOVER ROUTINE
;*********************************************************** ;************************************************************
; FUNCTION: To generate all the possible legal moves for a ; FUNCTION: To generate all the possible legal moves for a
; given piece. ; given piece.
; ;
@@ -537,7 +537,7 @@ PA2: MOV AL,3 ; Set off board flag
; ENPSNT ; ENPSNT
; ;
; ARGUMENTS: The piece to be moved. ; ARGUMENTS: The piece to be moved.
;*********************************************************** ;*************************************************************
MPIECE: XOR AL,[BX] ; Piece to move MPIECE: XOR AL,[BX] ; Piece to move
AND AL,87H ; Clear flag bit AND AL,87H ; Clear flag bit
CMP AL,BPAWN ; Is it a black Pawn ? CMP AL,BPAWN ; Is it a black Pawn ?
@@ -624,7 +624,7 @@ MP36: CALL ENPSNT ; Try en passant capture
; ADJPTR ; ADJPTR
; ;
; ARGUMENTS: -- None ; ARGUMENTS: -- None
;*********************************************************** ;************************************************************
ENPSNT: MOV AL,[M1] ; Set position of Pawn ENPSNT: MOV AL,[M1] ; Set position of Pawn
TEST B,[P1],080H ; Check color, is it white ? TEST B,[P1],080H ; Check color, is it white ?
JZ EP5 ; Yes - skip JZ EP5 ; Yes - skip
@@ -665,9 +665,9 @@ EP10: CMP AL,10 ; Is difference 10 ?
MOV AL,[M3] ; Restore "from" position MOV AL,[M3] ; Restore "from" position
MOV [M1],AL MOV [M1],AL
;*********************************************************** ;************************************************************
; ADJUST MOVE LIST POINTER FOR DOUBLE MOVE ; ADJUST MOVE LIST POINTER FOR DOUBLE MOVE
;*********************************************************** ;************************************************************
; FUNCTION: -- To adjust move list pointer to link around ; FUNCTION: -- To adjust move list pointer to link around
; second move in double move. ; second move in double move.
; ;
@@ -679,16 +679,16 @@ EP10: CMP AL,10 ; Is difference 10 ?
; CALLS: -- None ; CALLS: -- None
; ;
; ARGUMENTS: -- None ; ARGUMENTS: -- None
;*********************************************************** ;*************************************************************
ADJPTR: MOV BX,[MLLST] ; Get list pointer ADJPTR: MOV BX,[MLLST] ; Get list pointer
SUB BX,6 ; Back up list pointer SUB BX,6 ; Back up list pointer
MOV [MLLST],BX ; Save list pointer MOV [MLLST],BX ; Save list pointer
MOV [BX],0 ; Zero out link MOV [BX],0 ; Zero out link
RET ; Return RET ; Return
;*********************************************************** ;************************************************************
; CASTLE ROUTINE ; CASTLE ROUTINE
;*********************************************************** ;************************************************************
; FUNCTION: -- To determine whether castling is legal ; FUNCTION: -- To determine whether castling is legal
; (Queen side, King side, or both) and add it ; (Queen side, King side, or both) and add it
; to the move list if it is. ; to the move list if it is.
@@ -700,7 +700,7 @@ ADJPTR: MOV BX,[MLLST] ; Get list pointer
; ADJPTR ; ADJPTR
; ;
; ARGUMENTS: -- None ; ARGUMENTS: -- None
;*********************************************************** ;************************************************************
CASTLE: CASTLE:
TEST B,[P1],008H ; Has king moved ? TEST B,[P1],008H ; Has king moved ?
JNZ RET ; Yes - return JNZ RET ; Yes - return
@@ -759,9 +759,9 @@ CA20: MOV AL,CH ; Scan Index
MOV CX,01FCH ; Set Queen-side initial values MOV CX,01FCH ; Set Queen-side initial values
JMP CA5 ; Jump JMP CA5 ; Jump
;*********************************************************** ;************************************************************
; ADMOVE ROUTINE ; ADMOVE ROUTINE
;*********************************************************** ;************************************************************
; FUNCTION: -- To add a move to the move list ; FUNCTION: -- To add a move to the move list
; ;
; CALLED BY: -- MPIECE ; CALLED BY: -- MPIECE
@@ -771,7 +771,7 @@ CA20: MOV AL,CH ; Scan Index
; CALLS: -- None ; CALLS: -- None
; ;
; ARGUMENT: -- None ; ARGUMENT: -- None
;*********************************************************** ;*************************************************************
ADMOVE: MOV DX,[MLNXT] ; Addr of next loc in move list ADMOVE: MOV DX,[MLNXT] ; Addr of next loc in move list
MOV BX,MLEND ; Address of list end MOV BX,MLEND ; Address of list end
SUB BX,DX ; Calculate difference SUB BX,DX ; Calculate difference
@@ -915,27 +915,27 @@ ATTACK: PUSH CX ; Save Register CX
CALL ATKADJ ; Scan adjacent squares CALL ATKADJ ; Scan adjacent squares
MOV AH,KNIGHT ; Check for a Knight MOV AH,KNIGHT ; Check for a Knight
CALL ATKADJ ; Scan adjacent squares CALL ATKADJ ; Scan adjacent squares
MOV AH,20H ; Bit 5 set MOV AH,20H ; Pawn attack flag
MOV AL,[BP+11] ; Get piece at +11 MOV AL,[BP+11] ; Get piece at +11
AND AL,87H ; Clear flag bit AND AL,87H ; Clear flag bit
CMP AL,BPAWN ; Black Pawn ? CMP AL,BPAWN ; Black Pawn ?
JNZ AT5 ; No - jump JNZ AT5 ; No - jump
OR [BP+11],AH ; Turn on bit 5 OR [BP+11],AH ; Set Pawn attack flag
AT5: MOV AL,[BP+9] ; Get piece at +9 AT5: MOV AL,[BP+9] ; Get piece at +9
AND AL,87H ; Clear flag bit AND AL,87H ; Clear flag bit
CMP AL,BPAWN ; Black Pawn ? CMP AL,BPAWN ; Black Pawn ?
JNZ AT10 ; No - jump JNZ AT10 ; No - jump
OR [BP+9],AH ; Turn on bit 5 OR [BP+9],AH ; Set Pawn attack flag
AT10: MOV AL,[BP-11] ; Get piece at -11 AT10: MOV AL,[BP-11] ; Get piece at -11
AND AL,87H ; Clear flag bit AND AL,87H ; Clear flag bit
CMP AL,PAWN ; White Pawn ? CMP AL,PAWN ; White Pawn ?
JNZ AT15 ; No - jump JNZ AT15 ; No - jump
OR [BP-11],AH ; Turn on bit 5 OR [BP-11],AH ; Set Pawn attack flag
AT15: MOV AL,[BP-9] ; Get piece at -9 AT15: MOV AL,[BP-9] ; Get piece at -9
AND AL,87H ; Clear flag bit AND AL,87H ; Clear flag bit
CMP AL,PAWN ; White Pawn ? CMP AL,PAWN ; White Pawn ?
JNZ AT20 ; No - jump JNZ AT20 ; No - jump
OR [BP-9],AH ; Turn on bit 5 OR [BP-9],AH ; Set Pawn attack flag
AT20: MOV SI,DIRECT+TBASE ; Load direction table AT20: MOV SI,DIRECT+TBASE ; Load direction table
MOV AH,BISHOP ; Check for a Bishop MOV AH,BISHOP ; Check for a Bishop
CALL ATKOUT ; Scan outwards CALL ATKOUT ; Scan outwards
@@ -994,20 +994,20 @@ AO5: MOV DX,0C0H ; Bitmask for color flags
MOV DI,BP ; Load pointer to piece MOV DI,BP ; Load pointer to piece
AO10: ADD DI,BX ; Add direction constant AO10: ADD DI,BX ; Add direction constant
MOV AL,[DI] ; Get attacking piece MOV AL,[DI] ; Get attacking piece
AND AL,27H ; Get piece type and bit 5 AND AL,27H ; Get piece type and Pawn attack flag
JZ AO10 ; No piece, keep going JZ AO10 ; No piece, keep going
CMP AL,AH ; Same as what we want ? CMP AL,AH ; Same as what we want ?
JZ AO22 ; Yes - jump JZ AO22 ; Yes - jump
CMP AL,QUEEN ; Queen ? CMP AL,QUEEN ; Queen ?
JZ AO20 ; Yes - jump JZ AO20 ; Yes - jump
CMP AL,PAWN+20H ; Pawn with bit 5 ? CMP AL,PAWN+20H ; Pawn with Pawn attack flag ?
JZ AO21 ; Yes - jump JZ AO21 ; Yes - jump
AO15: LOOP AO5 ; Go check for next direction AO15: LOOP AO5 ; Go check for next direction
RET ; Return RET ; Return
AO20: INC DH ; Set Queen found flag AO20: INC DH ; Set Queen found flag
AO21: AND B,[DI],0DFH ; Remove bit 5 for piece AO21: AND B,[DI],0DFH ; Remove Pawn attack flag
AO22: MOV AL,[DI] ; Get piece AO22: MOV AL,[DI] ; Get piece
ADD AL,80H ; CY if back, NC if white ADD AL,80H ; CY if black, NC if white
RCR AL ; Bit 7 set if black, bit 6 if white RCR AL ; Bit 7 set if black, bit 6 if white
AND DL,AL ; Keep only bits 6 and 7 AND DL,AL ; Keep only bits 6 and 7
JZ AO15 ; Nothing, next direction JZ AO15 ; Nothing, next direction
@@ -1030,7 +1030,8 @@ AO22: MOV AL,[DI] ; Get piece
; the aforementioned routines as soon as an ; the aforementioned routines as soon as an
; attacker of the opposite color is encountered. ; attacker of the opposite color is encountered.
; ;
; CALLED BY: -- ATTACK ; CALLED BY: -- ATKADJ
; ATKOUT
; ;
; CALLS: -- None ; CALLS: -- None
; ;
@@ -1046,16 +1047,16 @@ ATKCHK: MOV AL,[DI] ; Get piece
MOV AX,0DFFFH ; FF (border) in AL and DF in AH MOV AX,0DFFFH ; FF (border) in AL and DF in AH
CMP [BP+9],AL ; Is +9 border ? CMP [BP+9],AL ; Is +9 border ?
JZ ACK5 ; Yes, jump JZ ACK5 ; Yes, jump
AND [BP+9],AH ; Remove bit 5 for piece AND [BP+9],AH ; Remove Pawn attack flag
ACK5: CMP [BP+11],AL ; Is +11 border ? ACK5: CMP [BP+11],AL ; Is +11 border ?
JZ ACK6 ; Yes - jump JZ ACK6 ; Yes - jump
AND [BP+11],AH ; Remove bit 5 for piece AND [BP+11],AH ; Remove Pawn attack flag
ACK6: CMP [BP-9],AL ; Is -9 border ? ACK6: CMP [BP-9],AL ; Is -9 border ?
JZ ACK7 ; Yes - jump JZ ACK7 ; Yes - jump
AND [BP-9],AH ; Remove bit 5 for piece AND [BP-9],AH ; Remove Pawn attack flag
ACK7: CMP [BP-11],AL ; Is -11 border ? ACK7: CMP [BP-11],AL ; Is -11 border ?
JZ ACK8 ; Yes - jump JZ ACK8 ; Yes - jump
AND [BP-11],AH ; Remove bit 5 for piece AND [BP-11],AH ; Remove Pawn attack flag
ACK8: MOV AL,1 ; Set attacker found flag ACK8: MOV AL,1 ; Set attacker found flag
POP CX ; Restore CX reg POP CX ; Restore CX reg
RET ; Return from ATTACK RET ; Return from ATTACK
@@ -2304,4 +2305,4 @@ IY: DS 2
BC: DS 2 BC: DS 2
DE: DS 2 DE: DS 2
HL: DS 2 HL: DS 2
 
+34 -30
View File
@@ -1,25 +1,25 @@
FCB EQU 5CH FCB: EQU 5CH
DSKRESET EQU 13 DSKRESET:EQU 13
SETBASE EQU 38 SETBASE:EQU 38
SRCHFRST EQU 17 SRCHFRST:EQU 17
SRCHNXT EQU 18 SRCHNXT:EQU 18
RENAM EQU 23 RENAM: EQU 23
INCHAR EQU 1 INCHAR: EQU 1
GETFAT EQU 27 GETFAT: EQU 27
OPEN EQU 15 OPEN: EQU 15
CLOSE EQU 16 CLOSE: EQU 16
MAKE EQU 22 MAKE: EQU 22
DELETE EQU 19 DELETE: EQU 19
RDBLK EQU 39 RDBLK: EQU 39
WRBLK EQU 40 WRBLK: EQU 40
SETDMA EQU 26 SETDMA: EQU 26
SELDRV EQU 14 SELDRV: EQU 14
GETDRV EQU 25 GETDRV: EQU 25
PRINTBUF EQU 9 PRINTBUF:EQU 9
OUTCH EQU 2 OUTCH: EQU 2
INBUF EQU 10 INBUF: EQU 10
RR EQU 33 RR: EQU 33
SYSTEM EQU 5 SYSTEM: EQU 5
ORG 100H ORG 100H
PUT 100H PUT 100H
@@ -117,12 +117,13 @@ FINDCOM:
JNZ FINDCOM JNZ FINDCOM
CALL AX ;Call command CALL AX ;Call command
JMP COMMAND JMP COMMAND
SETDRV1:
JMP SETDRV SETDRVJ:JMP SETDRV
DRVCHK: DRVCHK:
DEC DL ;Adjust for correct drive number DEC DL ;Adjust for correct drive number
DEC AL ;Check if anything else is on line DEC AL ;Check if anything else is on line
JZ SETDRV1 JZ SETDRVJ
EXTERNAL: EXTERNAL:
MOV AL,[SPECDRV] MOV AL,[SPECDRV]
MOV [IDLEN],AL MOV [IDLEN],AL
@@ -308,7 +309,7 @@ TYPE:
MOV AH,OPEN MOV AH,OPEN
INT 33 INT 33
OR AL,AL OR AL,AL
JNZ RET ; Not found JNZ RET ;Not found
MOV [FCB+RR],0 MOV [FCB+RR],0
MOV CX,512 MOV CX,512
MOV AH,RDBLK MOV AH,RDBLK
@@ -446,16 +447,19 @@ ID: DS 8
COM: DB "COM" COM: DB "COM"
DSTFCB: DS 36 DSTFCB: DS 36
LINBUF: DB 80H,1,13 LINBUF:
DB 80H,1,13
DS 80H DS 80H
FILIFO: DB 8," " FILIFO:
DB 8," "
DB 0 DB 0
DB 12," ",4,0 DB 12," ",4,0
DB 12," ",8,0 DB 12," ",8,0
DB 0 DB 0
COMTAB: DB 4,"DIR" COMTAB:
DB 4,"DIR"
DW DIR DW DIR
DB 7,"RENAME" DB 7,"RENAME"
DW RENAME DW RENAME
@@ -472,4 +476,4 @@ COMTAB: DB 4,"DIR"
DB 0 DB 0
TPA: TPA:
 
+22 -25
View File
@@ -1,18 +1,18 @@
FCB EQU 5CH FCB: EQU 5CH
RENAM EQU 23 RENAM: EQU 23
OPEN EQU 15 OPEN: EQU 15
CLOSE EQU 16 CLOSE: EQU 16
MAKE EQU 22 MAKE: EQU 22
DELFIL EQU 19 DELFIL: EQU 19
RDBLK EQU 39 RDBLK: EQU 39
WRBLK EQU 40 WRBLK: EQU 40
SETDMA EQU 26 SETDMA: EQU 26
PRINTBUF EQU 9 PRINTBUF:EQU 9
OUTCH EQU 2 OUTCH: EQU 2
INBUF EQU 10 INBUF: EQU 10
RR EQU 33 RR: EQU 33
PROMPT EQU "*" PROMPT: EQU "*"
ORG 100H ORG 100H
PUT 100H PUT 100H
@@ -198,15 +198,12 @@ MAXLIN:
RET RET
COMTAB DB "SFDLIE",13 COMTAB: DB "SFDLIE",13
NUMCOM EQU $-COMTAB NUMCOM: EQU $-COMTAB
;-----------------------------------------------------------------------; TABLE:
; Carefull changing the order of the next two tables. They are DW NOCOM ;No command--edit line
; linked and chnges should be be to both.
TABLE DW NOCOM ;No command--edit line
DW ENDED DW ENDED
DW INSERT DW INSERT
DW LIST DW LIST
@@ -668,14 +665,14 @@ PARAM2: DS 2
QFLG: DS 1 QFLG: DS 1
HAVEOF: DS 1 HAVEOF: DS 1
OLDLEN: DS 1 OLDLEN: DS 1
CURRENT: DS 2 CURRENT:DS 2
POINTER: DS 2 POINTER:DS 2
LAST: DS 2 LAST: DS 2
ENDTXT: DS 2 ENDTXT: DS 2
COMBUF: DS 2+128 COMBUF: DS 2+128
EDITBUF: DS 2+255 EDITBUF:DS 2+255
DS 40 DS 40
ALIGN ALIGN
STACK: STACK:
START: START:
 
+23 -23
View File
@@ -1,14 +1,14 @@
FCB EQU 5CH FCB: EQU 5CH
FCB2 EQU 6CH FCB2: EQU 6CH
OPEN EQU 15 OPEN: EQU 15
CLOSE EQU 16 CLOSE: EQU 16
MAKE EQU 22 MAKE: EQU 22
DELETE EQU 19 DELETE: EQU 19
SEQWRT EQU 21 SEQWRT: EQU 21
SETDMA EQU 26 SETDMA: EQU 26
GETDRV EQU 25 GETDRV: EQU 25
PRINTBUF EQU 9 PRINTBUF:EQU 9
SYSTEM EQU 5 SYSTEM: EQU 5
ORG 100H ORG 100H
PUT 100H PUT 100H
@@ -217,17 +217,17 @@ DSTFCB: DS 32
DIRBUF: DS 128 DIRBUF: DS 128
SECBUF: DS 128 SECBUF: DS 128
SPT EQU 0 SPT: EQU 0
BLKSFT EQU 2 BLKSFT: EQU 2
BLKMSK EQU 3 BLKMSK: EQU 3
EXTMSK EQU 4 EXTMSK: EQU 4
DSISIZ EQU 5 DSISIZ: EQU 5
NUMENT EQU 7 NUMENT: EQU 7
ALBMP0 EQU 9 ALBMP0: EQU 9
ALBMP1 EQU 10 ALBMP1: EQU 10
DIRCKS EQU 11 DIRCKS: EQU 11
RESTRK EQU 13 RESTRK: EQU 13
XLTTBL EQU 15 XLTTBL: EQU 15
;Below is the definition for standard single-density 8" drives ;Below is the definition for standard single-density 8" drives
@@ -257,4 +257,4 @@ CPMTAB2:
DW 0,0,0,0 DW 0,0,0,0
DW 0,0,0,0 DW 0,0,0,0
DW 0,0,0,0 DW 0,0,0,0
 
+1 -2
View File
@@ -28,7 +28,6 @@ By accessing and using the reconstructed source code provided in this repository
*See [Building 86-DOS 0.11](./Building.md).* *See [Building 86-DOS 0.11](./Building.md).*
## Special Thanks ## Special Thanks
* [@TimPaterson](https://github.com/TimPaterson) - For writing this amazing OS. * [@TimPaterson](https://github.com/TimPaterson) - For writing this amazing OS and providing the source code of 86-DOS 1.00.
* [@geneb](https://github.com/geneb) - For providing a copy of 86-DOS 0.11. * [@geneb](https://github.com/geneb) - For providing a copy of 86-DOS 0.11.
* [@LucasBrooks](https://github.com/LucasBrooks) - For providing an 86-DOS 1.14 kernel disassembly and for documenting the DPB structure.
* [@RichCini](https://github.com/RichCini) - For figuring out some hard-to-decipher logic and for testing and debugging the reconstructed Tarbell-specific code on physical hardware. * [@RichCini](https://github.com/RichCini) - For figuring out some hard-to-decipher logic and for testing and debugging the reconstructed Tarbell-specific code on physical hardware.
+2 -2
View File
@@ -1,4 +1,4 @@
FCB EQU 5CH FCB: EQU 5CH
ORG 100H ORG 100H
PUT 100H PUT 100H
@@ -53,4 +53,4 @@ ERWRIT: DB "Disk write error$"
DRVBAD: DB "Bad drive specification" DRVBAD: DB "Bad drive specification"
END: END: