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
*.a86 binary
*.A86 binary
*.asm binary
*.ASM binary
*.com binary
*.COM binary
*.doc binary
*.DOC binary
*.hex binary
*.HEX binary
*.prn binary
*.PRN binary
*.z80 binary
*.Z80 binary
+288 -274
View File
File diff suppressed because it is too large Load Diff
+83 -82
View File
@@ -11,10 +11,10 @@
;***********************************************************
; SYSTEM EQUATES
;***********************************************************
INCHAR EQU 1
PRINTBUF EQU 9
INBUF EQU 10
SYSTEM EQU 5
INCHAR: EQU 1
PRINTBUF:EQU 9
INBUF: EQU 10
SYSTEM: EQU 5
;***********************************************************
; EQUATES
@@ -96,7 +96,7 @@ START:
ORG START+80H
PUT START+80H
TBASE: EQU START+100H
;**********************************************************
;***********************************************************
; DIRECT -- Direction Table. Used to determine the dir-
; ection of movement of each piece.
;***********************************************************
@@ -108,7 +108,7 @@ DIRECT: EQU $-TBASE
DB +10,+10,+11,+09
DB -10,-10,-11,-09
;***********************************************************
; DPOINT -- Direction Table Pointer. Used to determine
; DPOINT -- Direction Table Pointer. Used to determine
; where to begin in the direction table for any
; given piece.
;***********************************************************
@@ -116,7 +116,7 @@ DPOINT: EQU $-TBASE
DB 20,16,8,0,4,0,0
;***********************************************************
; DCOUNT -- Direction Table Counter. Used to determine
; DCOUNT -- Direction Table Counter. Used to determine
; the number of directions of movement for any
; given piece.
;***********************************************************
@@ -124,7 +124,7 @@ DCOUNT: EQU $-TBASE
DB 4,4,8,4,4,8,8
;***********************************************************
; PVALUE -- Point Value. Gives the point value of each
; PVALUE -- Point Value. Gives the point value of each
; piece, or the worth of each piece.
;***********************************************************
PVALUE: EQU $-TBASE-1
@@ -132,7 +132,7 @@ PVALUE: EQU $-TBASE-1
;***********************************************************
; PIECES -- The initial arrangement of the first rank of
; pieces on the board. Use to set up the board
; pieces on the board. Use to set up the board
; for the start of the game.
;***********************************************************
PIECES: EQU $-TBASE
@@ -140,7 +140,7 @@ PIECES: EQU $-TBASE
;***********************************************************
; BOARD -- Board Array. Used to hold the current position
; of the board during play. The board itself
; of the board during play. The board itself
; looks like:
; FFFFFFFFFFFFFFFFFFFF
; FFFFFFFFFFFFFFFFFFFF
@@ -156,15 +156,15 @@ PIECES: EQU $-TBASE
; FFFFFFFFFFFFFFFFFFFF
; The values of FF form the border of the
; board, and are used to indicate when a piece
; moves off the board. The individual bits of
; moves off the board. The individual bits of
; the other bytes in the board array are as
; follows:
; Bit 7 -- Color of the piece
; 1 -- Black
; 0 -- White
; Bit 6 -- Not used
; Bit 5 -- Not used
; Bit 4 --Castle flag for Kings only
; Bit 5 -- Pawn attack flag for ATTACK
; Bit 4 -- Castle flag for Kings only
; Bit 3 -- Piece has moved flag
; Bits 2-0 Piece type
; 1 -- Pawn
@@ -180,16 +180,16 @@ BOARD: EQU $-TBASE
BOARDA: DS 120
;***********************************************************
; ATKLIST -- Attack List. A two part array, the first
; ATKLIST -- Attack List. A two part array, the first
; half for white and the second half for black.
; It is used to hold the attackers of any given
; square in the order of their value.
;
; WACT -- White Attack Count. This is the first
; WACT -- White Attack Count. This is the first
; byte of the array and tells how many pieces are
; in the white portion of the attack list.
;
; BACT -- Black Attack Count. This is the eighth byte of
; BACT -- Black Attack Count. This is the eighth byte of
; the array and does the same for black.
;***********************************************************
ATKLST: DW 0,0,0,0,0,0,0
@@ -197,7 +197,7 @@ WACT: EQU ATKLST
BACT: EQU ATKLST+7
;***********************************************************
; PLIST -- Pinned Piece Array. This is a two part array.
; PLIST -- Pinned Piece Array. This is a two part array.
; PLISTA contains the pinned piece position.
; PLISTD contains the direction from the pinned
; piece to the attacker.
@@ -207,41 +207,41 @@ PLISTD: EQU PLIST+10
PLISTA: DW 0,0,0,0,0,0,0,0,0,0
;***********************************************************
; POSK -- Position of Kings. A two byte area, the first
; POSK -- Position of Kings. A two byte area, the first
; byte of which hold the position of the white
; king and the second holding the position of
; 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
POSQ: DB 14,94
DB -1
;***********************************************************
; SCORE -- Score Array. Used during Alpha-Beta pruning to
; hold the scores at each ply. It includes two
;************************************************************
; SCORE -- Score Array. Used during Alpha-Beta pruning to
; hold the scores at each ply. It includes two
; "dummy" entries for ply -1 and ply 0.
;***********************************************************
;************************************************************
SCORE: DW 0,0,0,0,0,0
;***********************************************************
; PLYIX -- Ply Table. Contains pairs of pointers, a pair
; for each ply. The first pointer points to the
;************************************************************
; PLYIX -- Ply Table. Contains pairs of pointers, a pair
; for each ply. The first pointer points to the
; top of the list of possible moves at that ply.
; The second pointer points to which move in the
; list is the one currently being considered.
;***********************************************************
;************************************************************
PLYIX: 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.
;***********************************************************
;************************************************************
ORG START+2FFH
STACK:
;***********************************************************
;************************************************************
; TABLE INDICES SECTION
;
; M1-M4 -- Working indices used to index into
@@ -250,10 +250,10 @@ STACK:
; T1-T3 -- Working indices used to index into Direction
; Count, Direction Value, and Piece Value tables.
;
; INDX1 -- General working indices. Used for various
; INDX1 -- General working indices. Used for various
; INDX2 purposes.
;
; NPINS -- Number of Pins. Count and pointer into the
; NPINS -- Number of Pins. Count and pointer into the
; pinned piece list.
;
; MLPTRI -- Pointer into the ply table which tells
@@ -262,7 +262,7 @@ STACK:
; MLPTRJ -- Pointer into the move list to the move that is
; currently being processed.
;
; SCRIX -- Score Index. Pointer to the score table for
; SCRIX -- Score Index. Pointer to the score table for
; the ply being examined.
;
; BESTM -- Pointer into the move list for the move that
@@ -270,12 +270,12 @@ STACK:
; Alpha-Beta pruning process.
;
; MLLST -- Pointer to the previous move placed in the move
; list. Used during generation of the move list.
; list. Used during generation of the move list.
;
; MLNXT -- Pointer to the next available space in the move
; list.
;
;***********************************************************
;************************************************************
ORG START+0
PUT START+0
M1: DW TBASE
@@ -295,10 +295,10 @@ BESTM: DW 0
MLLST: DW 0
MLNXT: DW MLIST
;***********************************************************
;************************************************************
; VARIABLES SECTION
;
; KOLOR -- Indicates computer's color. White is 0, and
; KOLOR -- Indicates computer's color. White is 0, and
; Black is 80H.
;
; COLOR -- Indicates color of the side with the move.
@@ -340,7 +340,7 @@ MLNXT: DW MLIST
; not on the move.
;
; MTRL -- A measure of the difference in material
; currently on the board. It is the total value of
; currently on the board. It is the total value of
; the white pieces minus the total value of the
; black pieces.
;
@@ -355,7 +355,7 @@ MLNXT: DW MLIST
; BMOVES -- Our very tiny book of openings. Determines
; the first move for the computer.
;
;***********************************************************
;************************************************************
KOLOR: DB 0
COLOR: DB 0
P1: DB 0
@@ -381,7 +381,7 @@ BMOVES: DB 35,55,10H
DB 85,65,10H
DB 84,64,10H
;***********************************************************
;************************************************************
; MOVE LIST SECTION
;
; MLIST -- A 2048 byte storage area for generated moves.
@@ -392,7 +392,7 @@ BMOVES: DB 35,55,10H
; in the move list.
;
; MLPTR -- The Move List is a linked list of individual
; moves each of which is 6 bytes in length. The
; moves each of which is 6 bytes in length. The
; move list pointer(MLPTR) is the link field
; within a move.
;
@@ -403,7 +403,7 @@ BMOVES: DB 35,55,10H
; board position to which the piece is moving.
;
; MLFLG -- A field in the move entry which contains flag
; information. The meaning of each bit is as
; information. The meaning of each bit is as
; follows:
; Bit 7 -- The color of any captured piece
; 0 -- White
@@ -424,7 +424,7 @@ BMOVES: DB 35,55,10H
; MLVAL -- The field in the move entry which contains the
; score assigned to the move.
;
;***********************************************************
;************************************************************
ORG START+300H
PUT START+300H
MLIST: DS 2048
@@ -435,11 +435,11 @@ MLTOP: EQU 3
MLFLG: EQU 4
MLVAL: EQU 5
;***********************************************************
;************************************************************
; PROGRAM CODE SECTION
;***********************************************************
;************************************************************
; BOARD SETUP ROUTINE
;***********************************************************
;************************************************************
; FUNCTION: To initialize the board array, setting the
; pieces in their initial positions for the
; start of the game.
@@ -449,7 +449,7 @@ MLVAL: EQU 5
; CALLS: None
;
; ARGUMENTS: None
;***********************************************************
;*************************************************************
INITBD: MOV CX,60 ; Pre-fill board with -1's
MOV DI,BOARDA
MOV AX,-1
@@ -479,16 +479,16 @@ IB2: MOV AL,[SI-8] ; Fill non-border squares
MOV B,[SI+3],94
RET
;***********************************************************
;************************************************************
; PATH ROUTINE
;***********************************************************
;************************************************************
; FUNCTION: To generate a single possible move for a given
; piece along its current path of motion including:
;
; Fetching the contents of the board at the new
; position, and setting a flag describing the
; contents:
; 0 -- New position is empty
; 0 -- New postion is empty
; 1 -- Encountered a piece of the
; opposite color
; 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
; constant to be added for the new position.
;***********************************************************
;************************************************************
PATH: ADD [M2],CL ; Add direction constant to previous position
MOV SI,[M2] ; Load board index
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
RET
;***********************************************************
;************************************************************
; PIECE MOVER ROUTINE
;***********************************************************
;************************************************************
; FUNCTION: To generate all the possible legal moves for a
; given piece.
;
@@ -537,7 +537,7 @@ PA2: MOV AL,3 ; Set off board flag
; ENPSNT
;
; ARGUMENTS: The piece to be moved.
;***********************************************************
;*************************************************************
MPIECE: XOR AL,[BX] ; Piece to move
AND AL,87H ; Clear flag bit
CMP AL,BPAWN ; Is it a black Pawn ?
@@ -624,7 +624,7 @@ MP36: CALL ENPSNT ; Try en passant capture
; ADJPTR
;
; ARGUMENTS: -- None
;***********************************************************
;************************************************************
ENPSNT: MOV AL,[M1] ; Set position of Pawn
TEST B,[P1],080H ; Check color, is it white ?
JZ EP5 ; Yes - skip
@@ -665,9 +665,9 @@ EP10: CMP AL,10 ; Is difference 10 ?
MOV AL,[M3] ; Restore "from" position
MOV [M1],AL
;***********************************************************
;************************************************************
; ADJUST MOVE LIST POINTER FOR DOUBLE MOVE
;***********************************************************
;************************************************************
; FUNCTION: -- To adjust move list pointer to link around
; second move in double move.
;
@@ -679,16 +679,16 @@ EP10: CMP AL,10 ; Is difference 10 ?
; CALLS: -- None
;
; ARGUMENTS: -- None
;***********************************************************
;*************************************************************
ADJPTR: MOV BX,[MLLST] ; Get list pointer
SUB BX,6 ; Back up list pointer
MOV [MLLST],BX ; Save list pointer
MOV [BX],0 ; Zero out link
RET ; Return
;***********************************************************
;************************************************************
; CASTLE ROUTINE
;***********************************************************
;************************************************************
; FUNCTION: -- To determine whether castling is legal
; (Queen side, King side, or both) and add it
; to the move list if it is.
@@ -700,7 +700,7 @@ ADJPTR: MOV BX,[MLLST] ; Get list pointer
; ADJPTR
;
; ARGUMENTS: -- None
;***********************************************************
;************************************************************
CASTLE:
TEST B,[P1],008H ; Has king moved ?
JNZ RET ; Yes - return
@@ -759,9 +759,9 @@ CA20: MOV AL,CH ; Scan Index
MOV CX,01FCH ; Set Queen-side initial values
JMP CA5 ; Jump
;***********************************************************
;************************************************************
; ADMOVE ROUTINE
;***********************************************************
;************************************************************
; FUNCTION: -- To add a move to the move list
;
; CALLED BY: -- MPIECE
@@ -771,7 +771,7 @@ CA20: MOV AL,CH ; Scan Index
; CALLS: -- None
;
; ARGUMENT: -- None
;***********************************************************
;*************************************************************
ADMOVE: MOV DX,[MLNXT] ; Addr of next loc in move list
MOV BX,MLEND ; Address of list end
SUB BX,DX ; Calculate difference
@@ -797,7 +797,7 @@ AM5: XCHG DX,DI ; Address of move area
MOV [MLNXT],DI ; Save address for next move
MOV DI,DX
RET ; Return
AM10: MOV [BX],0 ; Abort entry on table ovflow
AM10: MOV [BX],0 ; Abort entry on table ovflow
RET
;***********************************************************
@@ -915,27 +915,27 @@ ATTACK: PUSH CX ; Save Register CX
CALL ATKADJ ; Scan adjacent squares
MOV AH,KNIGHT ; Check for a Knight
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
AND AL,87H ; Clear flag bit
CMP AL,BPAWN ; Black Pawn ?
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
AND AL,87H ; Clear flag bit
CMP AL,BPAWN ; Black Pawn ?
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
AND AL,87H ; Clear flag bit
CMP AL,PAWN ; White Pawn ?
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
AND AL,87H ; Clear flag bit
CMP AL,PAWN ; White Pawn ?
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
MOV AH,BISHOP ; Check for a Bishop
CALL ATKOUT ; Scan outwards
@@ -994,20 +994,20 @@ AO5: MOV DX,0C0H ; Bitmask for color flags
MOV DI,BP ; Load pointer to piece
AO10: ADD DI,BX ; Add direction constant
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
CMP AL,AH ; Same as what we want ?
JZ AO22 ; Yes - jump
CMP AL,QUEEN ; Queen ?
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
AO15: LOOP AO5 ; Go check for next direction
RET ; Return
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
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
AND DL,AL ; Keep only bits 6 and 7
JZ AO15 ; Nothing, next direction
@@ -1030,7 +1030,8 @@ AO22: MOV AL,[DI] ; Get piece
; the aforementioned routines as soon as an
; attacker of the opposite color is encountered.
;
; CALLED BY: -- ATTACK
; CALLED BY: -- ATKADJ
; ATKOUT
;
; CALLS: -- None
;
@@ -1046,16 +1047,16 @@ ATKCHK: MOV AL,[DI] ; Get piece
MOV AX,0DFFFH ; FF (border) in AL and DF in AH
CMP [BP+9],AL ; Is +9 border ?
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 ?
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 ?
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 ?
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
POP CX ; Restore CX reg
RET ; Return from ATTACK
@@ -2304,4 +2305,4 @@ IY: DS 2
BC: DS 2
DE: DS 2
HL: DS 2


+41 -37
View File
@@ -1,25 +1,25 @@
FCB EQU 5CH
DSKRESET EQU 13
SETBASE EQU 38
SRCHFRST EQU 17
SRCHNXT EQU 18
RENAM EQU 23
INCHAR EQU 1
GETFAT EQU 27
OPEN EQU 15
CLOSE EQU 16
MAKE EQU 22
DELETE EQU 19
RDBLK EQU 39
WRBLK EQU 40
SETDMA EQU 26
SELDRV EQU 14
GETDRV EQU 25
PRINTBUF EQU 9
OUTCH EQU 2
INBUF EQU 10
RR EQU 33
SYSTEM EQU 5
FCB: EQU 5CH
DSKRESET:EQU 13
SETBASE:EQU 38
SRCHFRST:EQU 17
SRCHNXT:EQU 18
RENAM: EQU 23
INCHAR: EQU 1
GETFAT: EQU 27
OPEN: EQU 15
CLOSE: EQU 16
MAKE: EQU 22
DELETE: EQU 19
RDBLK: EQU 39
WRBLK: EQU 40
SETDMA: EQU 26
SELDRV: EQU 14
GETDRV: EQU 25
PRINTBUF:EQU 9
OUTCH: EQU 2
INBUF: EQU 10
RR: EQU 33
SYSTEM: EQU 5
ORG 100H
PUT 100H
@@ -87,7 +87,7 @@ GETCOM:
PUSH SI
COMTAIL:
LODB
STOB ;Move command tail to 80H
STOB ;Move command tail to 80H
CMP AL,13
LOOPNZ COMTAIL
NOT CL
@@ -113,16 +113,17 @@ FINDCOM:
LAHF
ADD SI,CX ;Bump to next position without affecting flags
SAHF
LODW ;Get address of command
LODW ;Get address of command
JNZ FINDCOM
CALL AX ;Call command
CALL AX ;Call command
JMP COMMAND
SETDRV1:
JMP SETDRV
SETDRVJ:JMP SETDRV
DRVCHK:
DEC DL ;Adjust for correct drive number
DEC AL ;Check if anything else is on line
JZ SETDRV1
JZ SETDRVJ
EXTERNAL:
MOV AL,[SPECDRV]
MOV [IDLEN],AL
@@ -308,7 +309,7 @@ TYPE:
MOV AH,OPEN
INT 33
OR AL,AL
JNZ RET ; Not found
JNZ RET ;Not found
MOV [FCB+RR],0
MOV CX,512
MOV AH,RDBLK
@@ -354,11 +355,11 @@ CLRDSK:
MOV DI,BX
MOV AX,0FFFFH
STOW
STOB ;Fill first 3 bytes with FF
INC AX ;AX = 0
STOB ;Fill first 3 bytes with FF
INC AX ;AX = 0
SHR CX
JNC DOFILL
STOB ;Odd byte
STOB ;Odd byte
DOFILL:
REP
STOW
@@ -378,7 +379,7 @@ COPY:
MOV SI,FCB+10H
MOV DI,DSTFCB
MOVB
CMP B,[SI]," " ;Has file name?
CMP B,[SI]," " ;Has file name?
JNZ HASDSTNAM
MOV SI,FCB+1
HASDSTNAM:
@@ -446,16 +447,19 @@ ID: DS 8
COM: DB "COM"
DSTFCB: DS 36
LINBUF: DB 80H,1,13
LINBUF:
DB 80H,1,13
DS 80H
FILIFO: 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
@@ -472,4 +476,4 @@ COMTAB: DB 4,"DIR"
DB 0
TPA:


+22 -25
View File
@@ -1,18 +1,18 @@
FCB EQU 5CH
RENAM EQU 23
OPEN EQU 15
CLOSE EQU 16
MAKE EQU 22
DELFIL EQU 19
RDBLK EQU 39
WRBLK EQU 40
SETDMA EQU 26
PRINTBUF EQU 9
OUTCH EQU 2
INBUF EQU 10
RR EQU 33
FCB: EQU 5CH
RENAM: EQU 23
OPEN: EQU 15
CLOSE: EQU 16
MAKE: EQU 22
DELFIL: EQU 19
RDBLK: EQU 39
WRBLK: EQU 40
SETDMA: EQU 26
PRINTBUF:EQU 9
OUTCH: EQU 2
INBUF: EQU 10
RR: EQU 33
PROMPT EQU "*"
PROMPT: EQU "*"
ORG 100H
PUT 100H
@@ -198,15 +198,12 @@ MAXLIN:
RET
COMTAB DB "SFDLIE",13
COMTAB: DB "SFDLIE",13
NUMCOM EQU $-COMTAB
NUMCOM: EQU $-COMTAB
;-----------------------------------------------------------------------;
; Carefull changing the order of the next two tables. They are
; linked and chnges should be be to both.
TABLE DW NOCOM ;No command--edit line
TABLE:
DW NOCOM ;No command--edit line
DW ENDED
DW INSERT
DW LIST
@@ -668,14 +665,14 @@ PARAM2: DS 2
QFLG: DS 1
HAVEOF: DS 1
OLDLEN: DS 1
CURRENT: DS 2
POINTER: DS 2
CURRENT:DS 2
POINTER:DS 2
LAST: DS 2
ENDTXT: DS 2
COMBUF: DS 2+128
EDITBUF: DS 2+255
EDITBUF:DS 2+255
DS 40
ALIGN
STACK:
START:


+23 -23
View File
@@ -1,14 +1,14 @@
FCB EQU 5CH
FCB2 EQU 6CH
OPEN EQU 15
CLOSE EQU 16
MAKE EQU 22
DELETE EQU 19
SEQWRT EQU 21
SETDMA EQU 26
GETDRV EQU 25
PRINTBUF EQU 9
SYSTEM EQU 5
FCB: EQU 5CH
FCB2: EQU 6CH
OPEN: EQU 15
CLOSE: EQU 16
MAKE: EQU 22
DELETE: EQU 19
SEQWRT: EQU 21
SETDMA: EQU 26
GETDRV: EQU 25
PRINTBUF:EQU 9
SYSTEM: EQU 5
ORG 100H
PUT 100H
@@ -217,17 +217,17 @@ DSTFCB: DS 32
DIRBUF: DS 128
SECBUF: DS 128
SPT EQU 0
BLKSFT EQU 2
BLKMSK EQU 3
EXTMSK EQU 4
DSISIZ EQU 5
NUMENT EQU 7
ALBMP0 EQU 9
ALBMP1 EQU 10
DIRCKS EQU 11
RESTRK EQU 13
XLTTBL EQU 15
SPT: EQU 0
BLKSFT: EQU 2
BLKMSK: EQU 3
EXTMSK: EQU 4
DSISIZ: EQU 5
NUMENT: EQU 7
ALBMP0: EQU 9
ALBMP1: EQU 10
DIRCKS: EQU 11
RESTRK: EQU 13
XLTTBL: EQU 15
;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


+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).*
## 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.
* [@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.
+2 -2
View File
@@ -1,4 +1,4 @@
FCB EQU 5CH
FCB: EQU 5CH
ORG 100H
PUT 100H
@@ -53,4 +53,4 @@ ERWRIT: DB "Disk write error$"
DRVBAD: DB "Bad drive specification"
END: