mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-27 10:24:19 +00:00
Upload
Digital Research
This commit is contained in:
132
MPM OPERATING SYSTEMS/MPM-86/MPM-86 2.0 SOURCES/04/LBDOSDAT.A86
Normal file
132
MPM OPERATING SYSTEMS/MPM-86/MPM-86 2.0 SOURCES/04/LBDOSDAT.A86
Normal file
@@ -0,0 +1,132 @@
|
||||
;******************* BDOS data area ********************
|
||||
;
|
||||
;
|
||||
; 8086 variables that must recide in code segment
|
||||
;
|
||||
cseg $
|
||||
;
|
||||
axsave dw 0 ; register saves
|
||||
SS_save dw 0
|
||||
SP_save dw 0
|
||||
;
|
||||
; Variables in data segment:
|
||||
;
|
||||
dseg cpmsegment
|
||||
org bdosoffset+bdoscodesize
|
||||
;
|
||||
; byte I/O variables:
|
||||
;
|
||||
compcol db 0 ;true if computing column position
|
||||
strtcol db 0 ;starting column position after read
|
||||
column db 0 ;column position
|
||||
listcp db 0 ;listing toggle
|
||||
kbchar db 0 ;initial key char = 00
|
||||
;
|
||||
; common values shared between bdosi and bdos
|
||||
;
|
||||
usrcode db 0 ;current user number
|
||||
curdsk db 0 ;current disk number
|
||||
info dw 0 ;information address
|
||||
aret dw 0 ;address value to return
|
||||
lret EQU byte ptr aret ;low(aret)
|
||||
;
|
||||
; data areas for file system:
|
||||
;
|
||||
; initialized data
|
||||
;
|
||||
efcb db empty ;0e5=available dir entry
|
||||
rodsk dw 0 ;read only disk vector
|
||||
dlog dw 0 ;logged-in disks
|
||||
dmaad dw 0 ;dma address
|
||||
;
|
||||
; curtrka - alloca are set upon disk select
|
||||
; (data must be adjacent, do not insert variables)
|
||||
; (address of translate vector, not used)
|
||||
;
|
||||
cdrmaxa dw 0 ;pointer to cur dir max value
|
||||
curtrka dw 0 ;current track address
|
||||
curreca dw 0 ;current record address
|
||||
buffa dw 0 ;pointer to directory dma address
|
||||
dpbaddr dw 0 ;current disk parameter block address
|
||||
checka dw 0 ;current checksum vector address
|
||||
alloca dw 0 ;current allocation vector address
|
||||
addlist EQU 8 ;"$-buffa" = address list size
|
||||
;
|
||||
; sectpt - offset obtained from disk parm block at dpbaddr
|
||||
; (data must be adjacent, do not insert variables)
|
||||
sectpt dw 0 ;sectors per track
|
||||
blkshf db 0 ;block shift factor
|
||||
blkmsk db 0 ;block mask
|
||||
extmsk db 0 ;extent mask
|
||||
maxall dw 0 ;maximum allocation number
|
||||
dirmax dw 0 ;largest directory number
|
||||
dirblk dw 0 ;reserved allocation bits for direct.
|
||||
chksiz dw 0 ;size of checksum vector
|
||||
offsetv dw 0 ;offset tracks at beginning
|
||||
endlist rs 0 ;end of list
|
||||
dpblist equ (offset endlist)-(offset sectpt) ;size
|
||||
;
|
||||
; local variables
|
||||
tranv dw 0 ;address of translate vector
|
||||
fcbcopied db 0 ;set true if copy$fcb called
|
||||
rmf db 0 ;read mode flag for open$reel
|
||||
dirloc db 0 ;directory flag in rename, etc.
|
||||
seqio db 0 ;1 if sequential i/o
|
||||
linfo db 0 ;low(info)
|
||||
dminx db 0 ;local for diskwrite
|
||||
srchl db 0 ;search length
|
||||
srcha dw 0 ;search address
|
||||
tinfo dw 0 ;temp for info in "make"
|
||||
single db 0 ;set true if single byte
|
||||
;allocation map
|
||||
resel db 0 ;reselection flag
|
||||
olddsk db 0 ;disk on entry to bdos
|
||||
fcbdsk db 0 ;disk named in fcb
|
||||
rcount db 0 ;record count in current fcb
|
||||
extval db 0 ;extent number and extmsk
|
||||
vrecord dw 0 ;current virtual record
|
||||
lvrecord equ byte ptr vrecord ;low (vrecord)
|
||||
arecord dw 0 ;current actual record
|
||||
ablock dw 0 ;current actual block# * blkmsk
|
||||
;
|
||||
; local variables for directory access
|
||||
dptr db 0 ;directory pointer 0,1,2,3
|
||||
dcnt dw 0 ;directory counter 0,1,...,dirmax
|
||||
ldcnt equ byte ptr dcnt ;low(dcnt)
|
||||
drec dw 0 ;directory record 0,1,...,dirmax/4
|
||||
;
|
||||
; Special 8086 variables:
|
||||
;
|
||||
ioloc db 0 ;iobyte
|
||||
dmabase dw 0 ;segment base for disk I/O
|
||||
infosave dw 0 ;save for FCB address
|
||||
parametersegment dw 0 ;user parameter segment
|
||||
parcopfl db 0 ;true if parameter block copied
|
||||
parlg db 0 ;length of parameter block
|
||||
nallocmem db 0 ;no. of allocated memory segments
|
||||
ncrmem db 0 ;no. of available memory segments
|
||||
crmem dw 0,0 ;memory table (16 elements)
|
||||
dw 0,0,0,0,0,0
|
||||
dw 0,0,0,0,0,0,0,0
|
||||
dw 0,0,0,0,0,0,0,0
|
||||
dw 0,0,0,0,0,0,0,0
|
||||
;
|
||||
;
|
||||
; error messages
|
||||
;
|
||||
dskmsg db 'Bdos Err On '
|
||||
dskerr db ' : $' ;filled in by errflg
|
||||
permsg db 'Bad Sector$'
|
||||
selmsg db 'Select$'
|
||||
rofmsg db 'File '
|
||||
rodmsg db 'R/O$'
|
||||
;
|
||||
; Local buffer area:
|
||||
;
|
||||
loc_par_area rb 258 ;local user parameter (FCB,...)
|
||||
stackarea rw ssize ;stack size
|
||||
endstack rb 0 ;top of stack
|
||||
;
|
||||
;******************** end BDOS data area *******************
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user