Compare commits

...

2 Commits

Author SHA1 Message Date
David Schmidt
a5f51fbfae Update definitions 2023-04-07 16:17:56 -04:00
David Schmidt
565548cc0e More definitions 2023-04-07 15:55:20 -04:00
2 changed files with 363 additions and 86 deletions

View File

@ -10,7 +10,7 @@
"EntryFlags":32702671, "EntryFlags":32702671,
"AutoLabelStyle":"Simple", "AutoLabelStyle":"Simple",
"AnalysisParams":{ "AnalysisParams":{
"AnalyzeUncategorizedData":true, "AnalyzeUncategorizedData":false,
"DefaultTextScanMode":"LowHighAscii", "DefaultTextScanMode":"LowHighAscii",
"MinCharsForString":4, "MinCharsForString":4,
"SeekNearbyTargets":true, "SeekNearbyTargets":true,
@ -74,6 +74,23 @@
"Type":"ExternalAddr", "Type":"ExternalAddr",
"LabelAnno":"None"}, "LabelAnno":"None"},
"Ph2Off":{
"DataDescriptor":{
"Length":1,
"Format":"NumericLE",
"SubFormat":"Hex",
"SymbolRef":null},
"Comment":"",
"HasWidth":false,
"Direction":"ReadWrite",
"MultiMask":null,
"Label":"Ph2Off",
"Value":49284,
"Source":"Project",
"Type":"ExternalAddr",
"LabelAnno":"None"},
"QtyRead":{ "QtyRead":{
"DataDescriptor":{ "DataDescriptor":{
"Length":1, "Length":1,
@ -93,13 +110,13 @@
"ReqCnt":{ "ReqCnt":{
"DataDescriptor":{ "DataDescriptor":{
"Length":1, "Length":2,
"Format":"NumericLE", "Format":"NumericLE",
"SubFormat":"Hex", "SubFormat":"Hex",
"SymbolRef":null}, "SymbolRef":null},
"Comment":"", "Comment":"",
"HasWidth":false, "HasWidth":true,
"Direction":"ReadWrite", "Direction":"ReadWrite",
"MultiMask":null, "MultiMask":null,
"Label":"ReqCnt", "Label":"ReqCnt",
@ -125,6 +142,23 @@
"Type":"ExternalAddr", "Type":"ExternalAddr",
"LabelAnno":"None"}, "LabelAnno":"None"},
"SelC800":{
"DataDescriptor":{
"Length":1,
"Format":"NumericLE",
"SubFormat":"Hex",
"SymbolRef":null},
"Comment":"",
"HasWidth":false,
"Direction":"ReadWrite",
"MultiMask":null,
"Label":"SelC800",
"Value":6434,
"Source":"Project",
"Type":"ExternalAddr",
"LabelAnno":"None"},
"SIR_Len":{ "SIR_Len":{
"DataDescriptor":{ "DataDescriptor":{
"Length":1, "Length":1,
@ -518,14 +552,18 @@
"294":"Resource not available", "294":"Resource not available",
"302":"Zero # bytes read", "302":"Zero # bytes read",
"399":"I/O error", "399":"I/O error",
"492":"Positive request count, continue",
"496":"Positive request count, continue",
"511":"Block number too large", "511":"Block number too large",
"518":"Byte count not a multiple of 512", "518":"Byte count not a multiple of 512",
"579":"Copy 7 Control/Status list bytes from device",
"689":"set up buffer pointer one", "689":"set up buffer pointer one",
"693":"now set up 3 more pointers, in $80 increments", "693":"now set up 3 more pointers, in $80 increments",
"712":"set up the xbyte for the pointers", "712":"set up the xbyte for the pointers",
"910":"Invalid control/status code", "910":"Invalid control/status code",
"1015":"CtlStat", "1015":"CtlStat",
"1017":"Format the device", "1017":"Format the device",
"1081":"This would be pulling data from beyond the Z8 block???",
"1765":"these look familiar for low level disk nibbles"}, "1765":"these look familiar for low level disk nibbles"},
"LongComments":{ "LongComments":{
@ -536,7 +574,7 @@
"BackgroundColor":0}, "BackgroundColor":0},
"0":{ "0":{
"Text":" UNIFILE / DUOFILE SOS Driver\r\n \r\n Device identification Block (DIB) #0\r\n \r\n", "Text":" UNIFILE / DUOFILE SOS Driver Version 1.00A\r\n \r\n Device identification Block (DIB) #0\r\n \r\n",
"BoxMode":false, "BoxMode":false,
"MaxWidth":80, "MaxWidth":80,
"BackgroundColor":0}, "BackgroundColor":0},
@ -844,14 +882,14 @@
"LabelAnno":"None"}, "LabelAnno":"None"},
"106":{ "106":{
"Label":"Var06", "Label":"LastError",
"Value":8298, "Value":8298,
"Source":"User", "Source":"User",
"Type":"GlobalAddr", "Type":"GlobalAddr",
"LabelAnno":"None"}, "LabelAnno":"None"},
"107":{ "107":{
"Label":"Var07", "Label":"SlotNum",
"Value":8299, "Value":8299,
"Source":"User", "Source":"User",
"Type":"GlobalAddr", "Type":"GlobalAddr",
@ -914,14 +952,14 @@
"LabelAnno":"None"}, "LabelAnno":"None"},
"116":{ "116":{
"Label":"VarTbl1", "Label":"LastUnit",
"Value":8308, "Value":8308,
"Source":"User", "Source":"User",
"Type":"GlobalAddr", "Type":"GlobalAddr",
"LabelAnno":"None"}, "LabelAnno":"None"},
"121":{ "121":{
"Label":"VarTbl2", "Label":"StatusList",
"Value":8313, "Value":8313,
"Source":"User", "Source":"User",
"Type":"GlobalAddr", "Type":"GlobalAddr",
@ -1044,6 +1082,132 @@
"Value":9977, "Value":9977,
"Source":"User", "Source":"User",
"Type":"NonUniqueLocalAddr", "Type":"NonUniqueLocalAddr",
"LabelAnno":"None"},
"290":{
"Label":"InitNoDrive",
"Value":8482,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"294":{
"Label":"InitNoResource",
"Value":8486,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"34":{
"Label":"DCB_Bytes",
"Value":8226,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"498":{
"Label":"WriteError",
"Value":8690,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"289":{
"Label":"DInitDone",
"Value":8481,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"744":{
"Label":"Done",
"Value":8936,
"Source":"User",
"Type":"NonUniqueLocalAddr",
"LabelAnno":"None"},
"892":{
"Label":"Done",
"Value":9084,
"Source":"User",
"Type":"NonUniqueLocalAddr",
"LabelAnno":"None"},
"1133":{
"Label":"Z8Block1",
"Value":9325,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"1389":{
"Label":"Z8Block2",
"Value":9581,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"1645":{
"Label":"Z8Block3",
"Value":9837,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"117":{
"Label":"LastReq",
"Value":8309,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"1012":{
"Label":"DRepeatErr",
"Value":9204,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"1005":{
"Label":"Write",
"Value":9197,
"Source":"User",
"Type":"NonUniqueLocalAddr",
"LabelAnno":"None"},
"118":{
"Label":"Var12",
"Value":8310,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"119":{
"Label":"Var13",
"Value":8311,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"120":{
"Label":"Var14",
"Value":8312,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"128":{
"Label":"Var1C",
"Value":8320,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"579":{
"Label":"CpyCSList",
"Value":8771,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"}}, "LabelAnno":"None"}},
"OperandFormats":{ "OperandFormats":{
@ -1063,6 +1227,18 @@
"Label":"Entry", "Label":"Entry",
"Part":"Low"}}, "Part":"Low"}},
"5":{
"Length":4,
"Format":"StringGeneric",
"SubFormat":"Ascii",
"SymbolRef":null},
"9":{
"Length":11,
"Format":"Fill",
"SubFormat":"None",
"SymbolRef":null},
"24":{ "24":{
"Length":1, "Length":1,
"Format":"NumericLE", "Format":"NumericLE",
@ -1119,6 +1295,18 @@
"SubFormat":"None", "SubFormat":"None",
"SymbolRef":null}, "SymbolRef":null},
"42":{
"Length":4,
"Format":"StringGeneric",
"SubFormat":"Ascii",
"SymbolRef":null},
"46":{
"Length":11,
"Format":"Fill",
"SubFormat":"None",
"SymbolRef":null},
"63":{ "63":{
"Length":2, "Length":2,
"Format":"NumericLE", "Format":"NumericLE",
@ -1143,18 +1331,38 @@
"SubFormat":"None", "SubFormat":"None",
"SymbolRef":null}, "SymbolRef":null},
"71":{
"Length":28,
"Format":"StringGeneric",
"SubFormat":"Ascii",
"SymbolRef":null},
"99":{ "99":{
"Length":2, "Length":2,
"Format":"NumericLE", "Format":"NumericLE",
"SubFormat":"None", "SubFormat":"None",
"SymbolRef":null}, "SymbolRef":null},
"121":{
"Length":7,
"Format":"Dense",
"SubFormat":"None",
"SymbolRef":null},
"164":{
"Length":3,
"Format":"NumericLE",
"SubFormat":"Symbol",
"SymbolRef":{
"Label":"SelC800",
"Part":"Low"}},
"185":{ "185":{
"Length":2, "Length":2,
"Format":"NumericLE", "Format":"NumericLE",
"SubFormat":"Symbol", "SubFormat":"Symbol",
"SymbolRef":{ "SymbolRef":{
"Label":"XREQCODE", "Label":"SOS_BADREQCODE",
"Part":"Low"}}, "Part":"Low"}},
"190":{ "190":{
@ -1162,7 +1370,7 @@
"Format":"NumericLE", "Format":"NumericLE",
"SubFormat":"Symbol", "SubFormat":"Symbol",
"SymbolRef":{ "SymbolRef":{
"Label":"XBADOP", "Label":"SOS_BADOP",
"Part":"Low"}}, "Part":"Low"}},
"195":{ "195":{
@ -1269,6 +1477,22 @@
"Label":"XNODRIVE", "Label":"XNODRIVE",
"Part":"Low"}}, "Part":"Low"}},
"294":{
"Length":2,
"Format":"NumericLE",
"SubFormat":"Symbol",
"SymbolRef":{
"Label":"SOS_NORESC",
"Part":"Low"}},
"399":{
"Length":2,
"Format":"NumericLE",
"SubFormat":"Symbol",
"SymbolRef":{
"Label":"SOS_IOERR",
"Part":"Low"}},
"506":{ "506":{
"Length":2, "Length":2,
"Format":"NumericLE", "Format":"NumericLE",
@ -1282,7 +1506,7 @@
"Format":"NumericLE", "Format":"NumericLE",
"SubFormat":"Symbol", "SubFormat":"Symbol",
"SymbolRef":{ "SymbolRef":{
"Label":"XBLKNUM", "Label":"SOS_BLKNUM",
"Part":"Low"}}, "Part":"Low"}},
"518":{ "518":{
@ -1290,7 +1514,7 @@
"Format":"NumericLE", "Format":"NumericLE",
"SubFormat":"Symbol", "SubFormat":"Symbol",
"SymbolRef":{ "SymbolRef":{
"Label":"XBYTECNT", "Label":"SOS_BYTECNT",
"Part":"Low"}}, "Part":"Low"}},
"523":{ "523":{
@ -1331,6 +1555,14 @@
"Label":"SosBuf", "Label":"SosBuf",
"Part":"Low"}}, "Part":"Low"}},
"801":{
"Length":3,
"Format":"NumericLE",
"SubFormat":"Symbol",
"SymbolRef":{
"Label":"Ph2Off",
"Part":"Low"}},
"910":{ "910":{
"Length":2, "Length":2,
"Format":"NumericLE", "Format":"NumericLE",
@ -1339,6 +1571,22 @@
"Label":"XCTLCODE", "Label":"XCTLCODE",
"Part":"Low"}}, "Part":"Low"}},
"988":{
"Length":3,
"Format":"NumericLE",
"SubFormat":"Symbol",
"SymbolRef":{
"Label":"LastUnit",
"Part":"Low"}},
"993":{
"Length":2,
"Format":"NumericLE",
"SubFormat":"Symbol",
"SymbolRef":{
"Label":"DRepeatErr",
"Part":"Low"}},
"1038":{ "1038":{
"Length":2, "Length":2,
"Format":"NumericLE", "Format":"NumericLE",
@ -1871,6 +2119,12 @@
"Length":4, "Length":4,
"Format":"Dense", "Format":"Dense",
"SubFormat":"None", "SubFormat":"None",
"SymbolRef":null},
"1941":{
"Length":1,
"Format":"Dense",
"SubFormat":"None",
"SymbolRef":null}}, "SymbolRef":null}},
"LvTables":{ "LvTables":{

View File

@ -1,12 +1,14 @@
; Target assembler: cc65 v2.18.0 [--target none -C df1.driver_code_0x2000_cc65.cfg] ; Target assembler: cc65 v2.18.0 [--target none -C df1.driver_code_0x2000_cc65.cfg]
; 6502bench SourceGen v1.8.1 ; 6502bench SourceGen v1.8.1
.setcpu "6502" .setcpu "6502"
XREQCODE = $20 SOS_BADREQCODE = $20
XCTLCODE = $21 XCTLCODE = $21
XBADOP = $26 SOS_NORESC = $25
SOS_BADOP = $26
SOS_IOERR = $27
XNODRIVE = $28 XNODRIVE = $28
XBYTECNT = $2c SOS_BYTECNT = $2c
XBLKNUM = $2d SOS_BLKNUM = $2d
SIR_Len = $05 SIR_Len = $05
ReqCode = $c0 ReqCode = $c0
@ -18,11 +20,13 @@ ReqCnt = $c4
SosBlk = $c6 SosBlk = $c6
QtyRead = $c8 QtyRead = $c8
AllocSIR = $1913 AllocSIR = $1913
SelC800 = $1922
SysErr = $1928 SysErr = $1928
Ph2Off = $c084
MOTOROFF = $c088 MOTOROFF = $c088
Q6L = $c08c Q6L = $c08c
; UNIFILE / DUOFILE SOS Driver ; UNIFILE / DUOFILE SOS Driver Version 1.00A
; ;
; Device identification Block (DIB) #0 ; Device identification Block (DIB) #0
; ;
@ -44,8 +48,9 @@ DIB0_Blks:
.word $0001 ;Manufacturer .word $0001 ;Manufacturer
.word $100a ;Driver version .word $100a ;Driver version
.word $0003 ;DCB length followed by DCB .word $0003 ;DCB length followed by DCB
L2022: .byte $00 DCB_Bytes:
L2023: .byte $ff .byte $00
.byte $ff
.byte $02 .byte $02
; ;
; Device identification Block (DIB) #1 ; Device identification Block (DIB) #1
@ -54,7 +59,8 @@ DIB1: .word $0000 ;Link pointer to next DIB
.word Entry ;Entry pointer .word Entry ;Entry pointer
.byte $04 ;Name length byte .byte $04 ;Name length byte
.byte ".DF2" ;Device name .byte ".DF2" ;Device name
.res 12,$00 .res 11,$00
.byte $00 ;Active, no page alignment
.byte $02 ;Slot number .byte $02 ;Slot number
.byte $01 ;Unit number .byte $01 ;Unit number
.byte $f1 ;Type .byte $f1 ;Type
@ -74,8 +80,9 @@ Var02: .byte $00
Var03: .byte $00 Var03: .byte $00
Var04: .byte $00 Var04: .byte $00
Var05: .byte $00 Var05: .byte $00
Var06: .byte $00 LastError:
Var07: .byte $00 .byte $00
SlotNum: .byte $00
Var08: .byte $00 Var08: .byte $00
Var09: .byte $00 Var09: .byte $00
Var0A: .byte $00 Var0A: .byte $00
@ -84,8 +91,15 @@ Var0C: .byte $00
Var0D: .byte $00 Var0D: .byte $00
Var0E: .byte $00 Var0E: .byte $00
Var0F: .byte $00 Var0F: .byte $00
VarTbl1: .res 5,$00 LastUnit:
VarTbl2: .res 8,$00 .byte $00
LastReq: .byte $00
Var12: .byte $00
Var13: .byte $00
Var14: .byte $00
StatusList:
.byte $00,$00,$00,$00,$00,$00,$00
Var1C: .byte $00
InitStatus: InitStatus:
.byte $00 .byte $00
Var1E: .byte $06 Var1E: .byte $06
@ -96,17 +110,17 @@ Var21: .byte $17
Entry: lda ReqCode Entry: lda ReqCode
cmp #$08 cmp #$08
beq @L2091 beq @L2091
lda Var06 lda LastError
bne L20BB bne L20BB
@L2091: lda ReqCode @L2091: lda ReqCode
cmp #$09 cmp #$09
beq @L209A beq @L209A
sta VarTbl1+1 sta LastReq
@L209A: jsr @L20A8 @L209A: jsr @L20A8
lda #$96 lda #$96
jsr L230A jsr L230A
lda #$00 lda #$00
jsr $1922 jsr SelC800
rts rts
@L20A8: lda ReqCode @L20A8: lda ReqCode
@ -120,10 +134,10 @@ Entry: lda ReqCode
pha pha
rts rts
BadReq: lda #XREQCODE ;Bad request code! BadReq: lda #SOS_BADREQCODE ;Bad request code!
L20BB: jsr SysErr L20BB: jsr SysErr
; ;
BadOp: lda #XBADOP ;Invalid operation! BadOp: lda #SOS_BADOP ;Invalid operation!
jsr SysErr jsr SysErr
; ;
lda #XNODRIVE lda #XNODRIVE
@ -145,7 +159,7 @@ DoTable: .word DRead-1 ;0 Read request
; D_INIT call processing ; D_INIT call processing
; ;
DInit: bit InitStatus DInit: bit InitStatus
bmi @L2121 bmi DInitDone
dec InitStatus dec InitStatus
lda DIB0_Slot lda DIB0_Slot
clc clc
@ -155,32 +169,35 @@ DInit: bit InitStatus
ldx SIR_Addr ldx SIR_Addr
ldy SIR_Addr+1 ldy SIR_Addr+1
jsr AllocSIR jsr AllocSIR
bcs @L2126 bcs InitNoResource
lda DIB0_Slot lda DIB0_Slot
asl A asl A
asl A asl A
asl A asl A
asl A asl A
sta Var07 sta SlotNum
lda #$01 lda #$01
jsr L22DB jsr L22DB
bcc @L2116 bcc @L2116
jsr DCtrl00 jsr DCtrl00
lda #$01 lda #$01
jsr L22DB jsr L22DB
bcs @L2122 bcs InitNoDrive
@L2116: lda $ca28 @L2116: lda $ca28
cmp #$d5 cmp #$d5
beq @L2121 beq DInitDone
cmp #$ad cmp #$ad
bne @L2122 bne InitNoDrive
@L2121: rts DInitDone:
rts
@L2122: lda #XNODRIVE ;Drive not connected InitNoDrive:
bne @L2128 lda #XNODRIVE ;Drive not connected
bne L2128
@L2126: lda #$25 ;Resource not available InitNoResource:
@L2128: sta Var06 lda #SOS_NORESC ;Resource not available
L2128: sta LastError
jsr SysErr jsr SysErr
; ;
; D_READ call processing ; D_READ call processing
@ -230,7 +247,7 @@ L2150: jsr L2241
rts rts
IO_Error: IO_Error:
lda #$27 ;I/O error lda #SOS_IOERR ;I/O error
jsr SysErr jsr SysErr
; ;
; D_WRITE call processing ; D_WRITE call processing
@ -268,24 +285,25 @@ DWrite: jsr L21DF
rts rts
L21DF: lda SOS_Unit L21DF: lda SOS_Unit
sta VarTbl1 sta LastUnit
lda L2022 lda DCB_Bytes
sta Var08 sta Var08
lda ReqCnt lda ReqCnt
bne @L21F5 bne L21F5 ;Positive request count, continue
lda $c5 lda ReqCnt+1
bne @L21F5 bne L21F5 ;Positive request count, continue
@L21F2: jmp SysErr WriteError:
jmp SysErr
@L21F5: lda SosBlk L21F5: lda SosBlk
cmp DIB0_Blks cmp DIB0_Blks
lda SosBlk+1 lda SosBlk+1
sbc DIB0_Blks+1 sbc DIB0_Blks+1
lda #XBLKNUM ;Block number too large lda #SOS_BLKNUM ;Block number too large
bcs @L21F2 bcs WriteError
jsr L227C jsr L227C
lda #XBYTECNT ;Byte count not a multiple of 512 lda #SOS_BYTECNT ;Byte count not a multiple of 512
bcc @L21F2 bcc WriteError
rts rts
L220B: ldx #$06 L220B: ldx #$06
@ -318,10 +336,11 @@ L2224: lda $cb
@L2240: rts @L2240: rts
L2241: ldx #$06 L2241: ldx #$06
@L2243: lda $ca29,x CpyCSList:
sta VarTbl2,x lda $ca29,x ;Copy 7 Control/Status list bytes from device
sta StatusList,x
dex dex
bpl @L2243 bpl CpyCSList
sec sec
lda $ca29 lda $ca29
bpl @L226D bpl @L226D
@ -351,7 +370,7 @@ L2241: ldx #$06
jsr $402b jsr $402b
L227C: lda ReqCnt L227C: lda ReqCnt
bne @L22D6 bne @L22D6
lda $c5 lda ReqCnt+1
lsr A lsr A
bcs @L22D6 bcs @L22D6
sta Var09 sta Var09
@ -399,18 +418,18 @@ L227C: lda ReqCnt
@L22D6: clc @L22D6: clc
rts rts
L22D8: lda L2023 L22D8: lda DCB_Bytes+1
L22DB: sta Var0B L22DB: sta Var0B
@L22DE: jsr @L22E9 @L22DE: jsr @L22E9
bcc @L22E8 bcc @Done
dec Var0B dec Var0B
bne @L22DE bne @L22DE
@L22E8: rts @Done: rts
@L22E9: lda #$a0 @L22E9: lda #$a0
sta Var0A sta Var0A
ldy #$00 ldy #$00
ldx Var07 ldx SlotNum
@L22F3: lda Q6L,x @L22F3: lda Q6L,x
bmi @L2302 bmi @L2302
dey dey
@ -422,11 +441,11 @@ L22DB: sta Var0B
@L2302: clc @L2302: clc
lda DIB0_Slot lda DIB0_Slot
jsr $1922 jsr SelC800
rts rts
L230A: sta $ca28 L230A: sta $ca28
ldx Var07 ldx SlotNum
ldy #$00 ldy #$00
@L2312: lda MOTOROFF,x @L2312: lda MOTOROFF,x
bpl @L231C bpl @L231C
@ -441,8 +460,8 @@ L230A: sta $ca28
; ;
; control code $00 ; control code $00
; ;
DCtrl00: ldx Var07 DCtrl00: ldx SlotNum
lda $c084,x lda Ph2Off,x
rts rts
L2325: tay L2325: tay
@ -469,17 +488,17 @@ L2325: tay
sta $ca26 sta $ca26
lda #$00 lda #$00
sta $ca27 sta $ca27
ldx DIB1-1 ldx DCB_Bytes+2
stx $ca21 stx $ca21
@L236B: cpy #$03 @L236B: cpy #$03
bne @L237C bne @Done
ldy #$00 ldy #$00
lda (CSList),y lda (CSList),y
sta $ca26 sta $ca26
iny iny
lda (CSList),y lda (CSList),y
sta $ca27 sta $ca27
@L237C: rts @Done: rts
; ;
; D_STATUS call processing ; D_STATUS call processing
@ -528,7 +547,7 @@ DStat00: jsr L22D8
; status code $01 ; status code $01
; ;
DStat01: ldy #$06 DStat01: ldy #$06
@L23C9: lda VarTbl2,y @L23C9: lda StatusList,y
sta (CSList),y sta (CSList),y
dey dey
bpl @L23C9 bpl @L23C9
@ -547,19 +566,20 @@ DStatFE: ldy #$00
; ;
; D_REPEAT - repeat the last D_READ or D_WRITE call ; D_REPEAT - repeat the last D_READ or D_WRITE call
; ;
DRepeat: lda VarTbl1 DRepeat: lda LastUnit
cmp SOS_Unit cmp SOS_Unit
bne @L23F4 bne DRepeatErr
lda VarTbl1+1 lda LastReq
sta ReqCode sta ReqCode
bne @L23ED bne @Write
jmp DRead jmp DRead
@L23ED: cmp #$02 @Write: cmp #$02
bcs @L23F4 bcs DRepeatErr
jmp DWrite jmp DWrite
@L23F4: jmp BadOp DRepeatErr:
jmp BadOp
; ;
; D_CONTROL call processing ; D_CONTROL call processing
@ -596,13 +616,13 @@ CtrlFE: jsr L22D8
@L2422: jmp IO_Error @L2422: jmp IO_Error
@L2425: ldy #$00 @L2425: ldy #$00
@L2427: lda @L246D,y @L2427: lda Z8Block1,y
sta $cb00,y sta $cb00,y
lda @L256D,y lda Z8Block2,y
sta $cc00,y sta $cc00,y
lda @L266D,y lda Z8Block3,y
sta $cd00,y sta $cd00,y
lda L276D,y lda L276D,y ;This would be pulling data from beyond the Z8 block???
sta $ce00,y sta $ce00,y
iny iny
bne @L2427 bne @L2427
@ -628,7 +648,8 @@ CtrlFE: jsr L22D8
jmp L2150 jmp L2150
; maybe Z8 code to do the formatting of the disk ; maybe Z8 code to do the formatting of the disk
@L246D: .byte $8b,$04,$97,$01,$02,$00,$8f,$e6 Z8Block1:
.byte $8b,$04,$97,$01,$02,$00,$8f,$e6
.byte $39,$80,$e6,$04,$10,$e6,$05,$4b .byte $39,$80,$e6,$04,$10,$e6,$05,$4b
.byte $d6,$00,$18,$31,$10,$b0,$12,$56 .byte $d6,$00,$18,$31,$10,$b0,$12,$56
.byte $33,$01,$e6,$31,$3f,$e6,$04,$10 .byte $33,$01,$e6,$31,$3f,$e6,$04,$10
@ -660,7 +681,8 @@ CtrlFE: jsr L22D8
.byte $92,$ca,$cf,$af,$af,$e4,$00,$1e .byte $92,$ca,$cf,$af,$af,$e4,$00,$1e
.byte $e6,$1b,$17,$31,$20,$e6,$04,$10 .byte $e6,$1b,$17,$31,$20,$e6,$04,$10
.byte $e6,$05,$3c,$d6,$00,$18,$a4,$1e .byte $e6,$05,$3c,$d6,$00,$18,$a4,$1e
@L256D: .byte $45,$6b,$05,$e4,$45,$1e,$00,$1b Z8Block2:
.byte $45,$6b,$05,$e4,$45,$1e,$00,$1b
.byte $af,$af,$e4,$1a,$0d,$d6,$15,$02 .byte $af,$af,$e4,$1a,$0d,$d6,$15,$02
.byte $d6,$15,$17,$31,$20,$e4,$1b,$07 .byte $d6,$15,$17,$31,$20,$e4,$1b,$07
.byte $56,$e4,$7f,$92,$48,$31,$00,$b0 .byte $56,$e4,$7f,$92,$48,$31,$00,$b0
@ -692,7 +714,8 @@ CtrlFE: jsr L22D8
.byte $31,$20,$46,$e4,$80,$92,$48,$31 .byte $31,$20,$46,$e4,$80,$92,$48,$31
.byte $00,$af,$44,$33,$33,$44,$33,$33 .byte $00,$af,$44,$33,$33,$44,$33,$33
.byte $f0,$05,$d6,$15,$01,$2c,$ff,$4a .byte $f0,$05,$d6,$15,$01,$2c,$ff,$4a
@L266D: .byte $f1,$af,$e6,$04,$10,$e6,$05,$2a Z8Block3:
.byte $f1,$af,$e6,$04,$10,$e6,$05,$2a
.byte $d6,$00,$18,$e6,$04,$10,$e6,$05 .byte $d6,$00,$18,$e6,$04,$10,$e6,$05
.byte $5a,$d6,$00,$18,$31,$10,$af,$31 .byte $5a,$d6,$00,$18,$31,$10,$af,$31
.byte $00,$78,$1b,$d6,$15,$4f,$ec,$15 .byte $00,$78,$1b,$d6,$15,$4f,$ec,$15
@ -746,10 +769,10 @@ DCtrl04: jsr L22D8
txa txa
clc clc
adc $d8 adc $d8
sta VarTbl1+2 sta Var12
pla pla
adc $d9 adc $d9
sta VarTbl1+3 sta Var13
jsr L278D jsr L278D
stx $da stx $da
stx $ca27 stx $ca27
@ -774,9 +797,9 @@ L2758: lda ($d8),y
bne @L2768 bne @L2768
inc $db inc $db
@L2768: lda $d8 @L2768: lda $d8
cmp VarTbl1+2 cmp Var12
L276D: lda $d9 L276D: lda $d9
sbc VarTbl1+3 sbc Var13
bcc L2758 bcc L2758
rts rts