move records around

This commit is contained in:
Kelvin Sherlock 2015-08-11 20:04:47 -04:00
parent 4a2835ccb0
commit 5641dc5ea0
4 changed files with 207 additions and 193 deletions

View File

@ -8,52 +8,13 @@
include 'M16.Debug'
include 'records.equ'
TimeRec RECORD 0
second DS.B 1
minute DS.B 1
hour DS.B 1
year DS.B 1
day DS.B 1
month DS.B 1
extra DS.B 1
weekDay DS.B 1
ENDR
FileInfoRecGS RECORD 0
pCount DS.W 1
pathname DS.L 1
access DS.W 1
fileType DS.W 1
auxType DS.L 1
storageType DS.W 1
createDateTime DS TimeRec
modDateTime DS TimeRec
optionList DS.L 1
eof DS.L 1
blocksUsed DS.L 1
resourceEOF DS.L 1
resourceBlocks DS.L 1
ENDR
FileRec RECORD 0
pathname DS.B 4
fAccess DS.B 2
fileType DS.B 2
auxType DS.B 4
storageType DS.B 2
createDate DS.B 2
createTime DS.B 2
modDate DS.B 2
modTime DS.B 2
blocksUsed DS.B 4
ENDR
entry path_to_inode
import id_disk
import device_read
entry path_to_inode
import id_disk
import device_read
get_file_info procname export

93
records.equ Normal file
View File

@ -0,0 +1,93 @@
TimeRec RECORD 0
second DS.B 1
minute DS.B 1
hour DS.B 1
year DS.B 1
day DS.B 1
month DS.B 1
extra DS.B 1
weekDay DS.B 1
ENDR
FileInfoRecGS RECORD 0
pCount DS.W 1
pathname DS.L 1
access DS.W 1
fileType DS.W 1
auxType DS.L 1
storageType DS.W 1
createDateTime DS TimeRec
modDateTime DS TimeRec
optionList DS.L 1
eof DS.L 1
blocksUsed DS.L 1
resourceEOF DS.L 1
resourceBlocks DS.L 1
ENDR
FileRec RECORD 0
pathname DS.B 4
fAccess DS.B 2
fileType DS.B 2
auxType DS.B 4
storageType DS.B 2
createDate DS.B 2
createTime DS.B 2
modDate DS.B 2
modTime DS.B 2
blocksUsed DS.B 4
ENDR
OpenRecGS RECORD 0
pCount DS.W 1
refNum DS.W 1
pathname DS.L 1
requestAccess DS.W 1
resourceNumber DS.W 1
access DS.W 1
fileType DS.W 1
auxType DS.L 1
storageType DS.W 1
createDateTime DS TimeRec
modDateTime DS TimeRec
optionList DS.L 1
eof DS.L 1
blocksUsed DS.L 1
resourceEOF DS.L 1
resourceBlocks DS.L 1
ENDR
OpenRec RECORD 0
openRefNum DS.B 2
openPathname DS.B 4
ioBuffer DS.B 4
ENDR
VolumeRecGS RECORD 0
pCount DS.W 1
devName DS.L 1
volName DS.L 1
totalBlocks DS.L 1
freeBlocks DS.L 1
fileSysID DS.W 1
blockSize DS.W 1
characteristics ds.w 1
deviceID ds.w 1
sizeof equ *
ENDR
VolumeRec RECORD 0
deviceName DS.B 4
volName DS.B 4
totalBlocks DS.B 4
freeBlocks DS.B 4
fileSysID DS.B 2
sizeof equ *
ENDR

View File

@ -4,119 +4,119 @@
tables record
export min_pcount
export max_pcount
export min_pcount
export max_pcount
max_pcount
dc.w 0
dc.w 8 ; ($01) Create
dc.w 2 ; ($02) Destroy
dc.w 0 ; ($03) OS Shutdown
dc.w 4 ; ($04) Change Path
dc.w 13 ; ($05) Set File Info
dc.w 13 ; ($06) Get File Info
dc.w 0 ; ($07)
dc.w 7 ; ($08) Volume
dc.w 0 ; ($09) Set Prefix
dc.w 0 ; ($0A) Get Prefix
dc.w 2 ; ($0B) Clear Backup Bit
dc.w 0 ; ($0C) Set Sys Prefs
dc.w 0 ; ($0D) Null
dc.w 0 ; ($0E) Expand Path
dc.w 0 ; ($0F) Get Sys Prefs
dc.w 16 ; ($10) Open
dc.w 0 ; ($11) NewLine
dc.w 6 ; ($12) Read
dc.w 6 ; ($13) Write
dc.w 2 ; ($14) Close
dc.w 2 ; ($15) Flush
dc.w 4 ; ($16) Set Mark
dc.w 3 ; ($17) Get Mark
dc.w 4 ; ($18) Set EOF
dc.w 3 ; ($19) Get EOF
dc.w 0 ; ($1A) Set Level
dc.w 0 ; ($1B) Get Level
dc.w 18 ; ($1C) Get Dir Entry
dc.w 0 ; ($1D)
dc.w 0 ; ($1E)
dc.w 0 ; ($1F)
dc.w 3 ; ($20) Get Dev Num
dc.w 0 ; ($21) Get Last Dev
dc.w 0 ; ($22) Read Block
dc.w 0 ; ($23) Write Block
dc.w 5 ; ($24) Format
dc.w 5 ; ($25) Erase Disk
dc.w 0 ; ($26)
dc.w 0 ; ($27) Get Name
dc.w 0 ; ($28) Get Boot Vol
dc.w 0 ; ($29) Quit
dc.w 0 ; ($2A) Get Version
dc.w 0 ; ($2B) Get FST Info
dc.w 0 ; ($2C) D_INFO
dc.w 0 ; ($2D) D_STATUS
dc.w 0 ; ($2E) D_CONTROL
dc.w 0 ; ($2F) D_READ
dc.w 0 ; ($30) D_WRITE
dc.w 0 ; ($31) Alloc Interrupt
dc.w 0 ; ($32) Dealloc Interrupt
dc.w 4 ; ($33) FST Specific
dc.w 0
dc.w 8 ; ($01) Create
dc.w 2 ; ($02) Destroy
dc.w 0 ; ($03) OS Shutdown
dc.w 4 ; ($04) Change Path
dc.w 13 ; ($05) Set File Info
dc.w 13 ; ($06) Get File Info
dc.w 0 ; ($07)
dc.w 7 ; ($08) Volume
dc.w 0 ; ($09) Set Prefix
dc.w 0 ; ($0A) Get Prefix
dc.w 2 ; ($0B) Clear Backup Bit
dc.w 0 ; ($0C) Set Sys Prefs
dc.w 0 ; ($0D) Null
dc.w 0 ; ($0E) Expand Path
dc.w 0 ; ($0F) Get Sys Prefs
dc.w 16 ; ($10) Open
dc.w 0 ; ($11) NewLine
dc.w 6 ; ($12) Read
dc.w 6 ; ($13) Write
dc.w 2 ; ($14) Close
dc.w 2 ; ($15) Flush
dc.w 4 ; ($16) Set Mark
dc.w 3 ; ($17) Get Mark
dc.w 4 ; ($18) Set EOF
dc.w 3 ; ($19) Get EOF
dc.w 0 ; ($1A) Set Level
dc.w 0 ; ($1B) Get Level
dc.w 18 ; ($1C) Get Dir Entry
dc.w 0 ; ($1D)
dc.w 0 ; ($1E)
dc.w 0 ; ($1F)
dc.w 3 ; ($20) Get Dev Num
dc.w 0 ; ($21) Get Last Dev
dc.w 0 ; ($22) Read Block
dc.w 0 ; ($23) Write Block
dc.w 5 ; ($24) Format
dc.w 5 ; ($25) Erase Disk
dc.w 0 ; ($26)
dc.w 0 ; ($27) Get Name
dc.w 0 ; ($28) Get Boot Vol
dc.w 0 ; ($29) Quit
dc.w 0 ; ($2A) Get Version
dc.w 0 ; ($2B) Get FST Info
dc.w 0 ; ($2C) D_INFO
dc.w 0 ; ($2D) D_STATUS
dc.w 0 ; ($2E) D_CONTROL
dc.w 0 ; ($2F) D_READ
dc.w 0 ; ($30) D_WRITE
dc.w 0 ; ($31) Alloc Interrupt
dc.w 0 ; ($32) Dealloc Interrupt
dc.w 4 ; ($33) FST Specific
min_pcount
dc.w 0
dc.w 1 ; ($01) Create
dc.w 1 ; ($02) Destroy
dc.w 0 ; ($03) OS Shutdown
dc.w 2 ; ($04) Change Path
dc.w 2 ; ($05) Set File Info
dc.w 2 ; ($06) Get File Info
dc.w 0 ; ($07)
dc.w 2 ; ($08) Volume
dc.w 0 ; ($09) Set Prefix
dc.w 0 ; ($0A) Get Prefix
dc.w 1 ; ($0B) Clear Backup Bit
dc.w 0 ; ($0C) Set Sys Prefs
dc.w 0 ; ($0D) Null
dc.w 0 ; ($0E) Expand Path
dc.w 0 ; ($0F) Get Sys Prefs
dc.w 2 ; ($10) Open
dc.w 0 ; ($11) NewLine
dc.w 4 ; ($12) Read
dc.w 4 ; ($13) Write
dc.w 1 ; ($14) Close
dc.w 1 ; ($15) Flush
dc.w 3 ; ($16) Set Mark
dc.w 2 ; ($17) Get Mark
dc.w 3 ; ($18) Set EOF
dc.w 2 ; ($19) Get EOF
dc.w 0 ; ($1A) Set Level
dc.w 0 ; ($1B) Get Level
dc.w 5 ; ($1C) Get Dir Entry
dc.w 0 ; ($1D)
dc.w 0 ; ($1E)
dc.w 0 ; ($1F)
dc.w 2 ; ($20) Get Dev Num
dc.w 0 ; ($21) Get Last Dev
dc.w 0 ; ($22) Read Block
dc.w 0 ; ($23) Write Block
dc.w 3 ; ($24) Format
dc.w 3 ; ($25) Erase Disk
dc.w 0 ; ($26)
dc.w 0 ; ($27) Get Name
dc.w 0 ; ($28) Get Boot Vol
dc.w 0 ; ($29) Quit
dc.w 0 ; ($2A) Get Version
dc.w 0 ; ($2B) Get FST Info
dc.w 0 ; ($2C) D_INFO
dc.w 0 ; ($2D) D_STATUS
dc.w 0 ; ($2E) D_CONTROL
dc.w 0 ; ($2F) D_READ
dc.w 0 ; ($30) D_WRITE
dc.w 0 ; ($31) Alloc Interrupt
dc.w 0 ; ($32) Dealloc Interrupt
dc.w 1 ; ($33) FST Specific
dc.w 0
dc.w 1 ; ($01) Create
dc.w 1 ; ($02) Destroy
dc.w 0 ; ($03) OS Shutdown
dc.w 2 ; ($04) Change Path
dc.w 2 ; ($05) Set File Info
dc.w 2 ; ($06) Get File Info
dc.w 0 ; ($07)
dc.w 2 ; ($08) Volume
dc.w 0 ; ($09) Set Prefix
dc.w 0 ; ($0A) Get Prefix
dc.w 1 ; ($0B) Clear Backup Bit
dc.w 0 ; ($0C) Set Sys Prefs
dc.w 0 ; ($0D) Null
dc.w 0 ; ($0E) Expand Path
dc.w 0 ; ($0F) Get Sys Prefs
dc.w 2 ; ($10) Open
dc.w 0 ; ($11) NewLine
dc.w 4 ; ($12) Read
dc.w 4 ; ($13) Write
dc.w 1 ; ($14) Close
dc.w 1 ; ($15) Flush
dc.w 3 ; ($16) Set Mark
dc.w 2 ; ($17) Get Mark
dc.w 3 ; ($18) Set EOF
dc.w 2 ; ($19) Get EOF
dc.w 0 ; ($1A) Set Level
dc.w 0 ; ($1B) Get Level
dc.w 5 ; ($1C) Get Dir Entry
dc.w 0 ; ($1D)
dc.w 0 ; ($1E)
dc.w 0 ; ($1F)
dc.w 2 ; ($20) Get Dev Num
dc.w 0 ; ($21) Get Last Dev
dc.w 0 ; ($22) Read Block
dc.w 0 ; ($23) Write Block
dc.w 3 ; ($24) Format
dc.w 3 ; ($25) Erase Disk
dc.w 0 ; ($26)
dc.w 0 ; ($27) Get Name
dc.w 0 ; ($28) Get Boot Vol
dc.w 0 ; ($29) Quit
dc.w 0 ; ($2A) Get Version
dc.w 0 ; ($2B) Get FST Info
dc.w 0 ; ($2C) D_INFO
dc.w 0 ; ($2D) D_STATUS
dc.w 0 ; ($2E) D_CONTROL
dc.w 0 ; ($2F) D_READ
dc.w 0 ; ($30) D_WRITE
dc.w 0 ; ($31) Alloc Interrupt
dc.w 0 ; ($32) Dealloc Interrupt
dc.w 1 ; ($33) FST Specific
endr
endr
end
end

View File

@ -6,57 +6,17 @@
include 'M16.Debug'
include 'records.equ'
;
; VolumeGS / Volume call.
;
; check if the disk is ours. create a VCR or mark it active.
;
; P16
; devName
; volName
; totalBlocks
; freeBlocks
; fileSysID
;
; GS/OS
; Word pCount;
; GSString32Ptr devName;
; ResultBuf255Ptr volName;
; LongWord totalBlocks;
; LongWord freeBlocks;
; Word fileSysID;
; Word blockSize;
; [handled by gs/os:]
; Word characteristics;
; Word deviceID;
;
import id_disk
VolumeRecGS RECORD 0
pCount DS.W 1
devName DS.L 1 ; GSString32Ptr
volName DS.L 1 ; ResultBuf255Ptr
totalBlocks DS.L 1
freeBlocks DS.L 1
fileSysID DS.W 1
blockSize DS.W 1
characteristics ds.w 1
deviceID ds.w 1
sizeof equ *
ENDR
VolumeRec RECORD 0 ; ProDOS
deviceName DS.B 4 ; Ptr -
volName DS.B 4 ; Ptr -
totalBlocks DS.B 4 ; Long -
freeBlocks DS.B 4 ; Long -
fileSysID DS.B 2 ; Word -
sizeof equ *
ENDR
entry do_block_size
entry do_file_sys_id