Compare commits
2 Commits
364d33f4d8
...
a5f51fbfae
Author | SHA1 | Date |
---|---|---|
David Schmidt | a5f51fbfae | |
David Schmidt | 565548cc0e |
|
@ -10,7 +10,7 @@
|
|||
"EntryFlags":32702671,
|
||||
"AutoLabelStyle":"Simple",
|
||||
"AnalysisParams":{
|
||||
"AnalyzeUncategorizedData":true,
|
||||
"AnalyzeUncategorizedData":false,
|
||||
"DefaultTextScanMode":"LowHighAscii",
|
||||
"MinCharsForString":4,
|
||||
"SeekNearbyTargets":true,
|
||||
|
@ -74,6 +74,23 @@
|
|||
"Type":"ExternalAddr",
|
||||
"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":{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
|
@ -93,13 +110,13 @@
|
|||
|
||||
"ReqCnt":{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":false,
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"ReqCnt",
|
||||
|
@ -125,6 +142,23 @@
|
|||
"Type":"ExternalAddr",
|
||||
"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":{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
|
@ -518,14 +552,18 @@
|
|||
"294":"Resource not available",
|
||||
"302":"Zero # bytes read",
|
||||
"399":"I/O error",
|
||||
"492":"Positive request count, continue",
|
||||
"496":"Positive request count, continue",
|
||||
"511":"Block number too large",
|
||||
"518":"Byte count not a multiple of 512",
|
||||
"579":"Copy 7 Control/Status list bytes from device",
|
||||
"689":"set up buffer pointer one",
|
||||
"693":"now set up 3 more pointers, in $80 increments",
|
||||
"712":"set up the xbyte for the pointers",
|
||||
"910":"Invalid control/status code",
|
||||
"1015":"CtlStat",
|
||||
"1017":"Format the device",
|
||||
"1081":"This would be pulling data from beyond the Z8 block???",
|
||||
"1765":"these look familiar for low level disk nibbles"},
|
||||
|
||||
"LongComments":{
|
||||
|
@ -536,7 +574,7 @@
|
|||
"BackgroundColor":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,
|
||||
"MaxWidth":80,
|
||||
"BackgroundColor":0},
|
||||
|
@ -844,14 +882,14 @@
|
|||
"LabelAnno":"None"},
|
||||
|
||||
"106":{
|
||||
"Label":"Var06",
|
||||
"Label":"LastError",
|
||||
"Value":8298,
|
||||
"Source":"User",
|
||||
"Type":"GlobalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"107":{
|
||||
"Label":"Var07",
|
||||
"Label":"SlotNum",
|
||||
"Value":8299,
|
||||
"Source":"User",
|
||||
"Type":"GlobalAddr",
|
||||
|
@ -914,14 +952,14 @@
|
|||
"LabelAnno":"None"},
|
||||
|
||||
"116":{
|
||||
"Label":"VarTbl1",
|
||||
"Label":"LastUnit",
|
||||
"Value":8308,
|
||||
"Source":"User",
|
||||
"Type":"GlobalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"121":{
|
||||
"Label":"VarTbl2",
|
||||
"Label":"StatusList",
|
||||
"Value":8313,
|
||||
"Source":"User",
|
||||
"Type":"GlobalAddr",
|
||||
|
@ -1044,6 +1082,132 @@
|
|||
"Value":9977,
|
||||
"Source":"User",
|
||||
"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"}},
|
||||
|
||||
"OperandFormats":{
|
||||
|
@ -1063,6 +1227,18 @@
|
|||
"Label":"Entry",
|
||||
"Part":"Low"}},
|
||||
|
||||
"5":{
|
||||
"Length":4,
|
||||
"Format":"StringGeneric",
|
||||
"SubFormat":"Ascii",
|
||||
"SymbolRef":null},
|
||||
|
||||
"9":{
|
||||
"Length":11,
|
||||
"Format":"Fill",
|
||||
"SubFormat":"None",
|
||||
"SymbolRef":null},
|
||||
|
||||
"24":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
|
@ -1119,6 +1295,18 @@
|
|||
"SubFormat":"None",
|
||||
"SymbolRef":null},
|
||||
|
||||
"42":{
|
||||
"Length":4,
|
||||
"Format":"StringGeneric",
|
||||
"SubFormat":"Ascii",
|
||||
"SymbolRef":null},
|
||||
|
||||
"46":{
|
||||
"Length":11,
|
||||
"Format":"Fill",
|
||||
"SubFormat":"None",
|
||||
"SymbolRef":null},
|
||||
|
||||
"63":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
|
@ -1143,18 +1331,38 @@
|
|||
"SubFormat":"None",
|
||||
"SymbolRef":null},
|
||||
|
||||
"71":{
|
||||
"Length":28,
|
||||
"Format":"StringGeneric",
|
||||
"SubFormat":"Ascii",
|
||||
"SymbolRef":null},
|
||||
|
||||
"99":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"None",
|
||||
"SymbolRef":null},
|
||||
|
||||
"121":{
|
||||
"Length":7,
|
||||
"Format":"Dense",
|
||||
"SubFormat":"None",
|
||||
"SymbolRef":null},
|
||||
|
||||
"164":{
|
||||
"Length":3,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"SelC800",
|
||||
"Part":"Low"}},
|
||||
|
||||
"185":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"XREQCODE",
|
||||
"Label":"SOS_BADREQCODE",
|
||||
"Part":"Low"}},
|
||||
|
||||
"190":{
|
||||
|
@ -1162,7 +1370,7 @@
|
|||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"XBADOP",
|
||||
"Label":"SOS_BADOP",
|
||||
"Part":"Low"}},
|
||||
|
||||
"195":{
|
||||
|
@ -1269,6 +1477,22 @@
|
|||
"Label":"XNODRIVE",
|
||||
"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":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
|
@ -1282,7 +1506,7 @@
|
|||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"XBLKNUM",
|
||||
"Label":"SOS_BLKNUM",
|
||||
"Part":"Low"}},
|
||||
|
||||
"518":{
|
||||
|
@ -1290,7 +1514,7 @@
|
|||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"XBYTECNT",
|
||||
"Label":"SOS_BYTECNT",
|
||||
"Part":"Low"}},
|
||||
|
||||
"523":{
|
||||
|
@ -1331,6 +1555,14 @@
|
|||
"Label":"SosBuf",
|
||||
"Part":"Low"}},
|
||||
|
||||
"801":{
|
||||
"Length":3,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"Ph2Off",
|
||||
"Part":"Low"}},
|
||||
|
||||
"910":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
|
@ -1339,6 +1571,22 @@
|
|||
"Label":"XCTLCODE",
|
||||
"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":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
|
@ -1871,6 +2119,12 @@
|
|||
"Length":4,
|
||||
"Format":"Dense",
|
||||
"SubFormat":"None",
|
||||
"SymbolRef":null},
|
||||
|
||||
"1941":{
|
||||
"Length":1,
|
||||
"Format":"Dense",
|
||||
"SubFormat":"None",
|
||||
"SymbolRef":null}},
|
||||
|
||||
"LvTables":{
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
; Target assembler: cc65 v2.18.0 [--target none -C df1.driver_code_0x2000_cc65.cfg]
|
||||
; 6502bench SourceGen v1.8.1
|
||||
.setcpu "6502"
|
||||
XREQCODE = $20
|
||||
SOS_BADREQCODE = $20
|
||||
XCTLCODE = $21
|
||||
XBADOP = $26
|
||||
SOS_NORESC = $25
|
||||
SOS_BADOP = $26
|
||||
SOS_IOERR = $27
|
||||
XNODRIVE = $28
|
||||
XBYTECNT = $2c
|
||||
XBLKNUM = $2d
|
||||
SOS_BYTECNT = $2c
|
||||
SOS_BLKNUM = $2d
|
||||
|
||||
SIR_Len = $05
|
||||
ReqCode = $c0
|
||||
|
@ -18,11 +20,13 @@ ReqCnt = $c4
|
|||
SosBlk = $c6
|
||||
QtyRead = $c8
|
||||
AllocSIR = $1913
|
||||
SelC800 = $1922
|
||||
SysErr = $1928
|
||||
Ph2Off = $c084
|
||||
MOTOROFF = $c088
|
||||
Q6L = $c08c
|
||||
|
||||
; UNIFILE / DUOFILE SOS Driver
|
||||
; UNIFILE / DUOFILE SOS Driver Version 1.00A
|
||||
;
|
||||
; Device identification Block (DIB) #0
|
||||
;
|
||||
|
@ -44,8 +48,9 @@ DIB0_Blks:
|
|||
.word $0001 ;Manufacturer
|
||||
.word $100a ;Driver version
|
||||
.word $0003 ;DCB length followed by DCB
|
||||
L2022: .byte $00
|
||||
L2023: .byte $ff
|
||||
DCB_Bytes:
|
||||
.byte $00
|
||||
.byte $ff
|
||||
.byte $02
|
||||
;
|
||||
; Device identification Block (DIB) #1
|
||||
|
@ -54,7 +59,8 @@ DIB1: .word $0000 ;Link pointer to next DIB
|
|||
.word Entry ;Entry pointer
|
||||
.byte $04 ;Name length byte
|
||||
.byte ".DF2" ;Device name
|
||||
.res 12,$00
|
||||
.res 11,$00
|
||||
.byte $00 ;Active, no page alignment
|
||||
.byte $02 ;Slot number
|
||||
.byte $01 ;Unit number
|
||||
.byte $f1 ;Type
|
||||
|
@ -74,8 +80,9 @@ Var02: .byte $00
|
|||
Var03: .byte $00
|
||||
Var04: .byte $00
|
||||
Var05: .byte $00
|
||||
Var06: .byte $00
|
||||
Var07: .byte $00
|
||||
LastError:
|
||||
.byte $00
|
||||
SlotNum: .byte $00
|
||||
Var08: .byte $00
|
||||
Var09: .byte $00
|
||||
Var0A: .byte $00
|
||||
|
@ -84,8 +91,15 @@ Var0C: .byte $00
|
|||
Var0D: .byte $00
|
||||
Var0E: .byte $00
|
||||
Var0F: .byte $00
|
||||
VarTbl1: .res 5,$00
|
||||
VarTbl2: .res 8,$00
|
||||
LastUnit:
|
||||
.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:
|
||||
.byte $00
|
||||
Var1E: .byte $06
|
||||
|
@ -96,17 +110,17 @@ Var21: .byte $17
|
|||
Entry: lda ReqCode
|
||||
cmp #$08
|
||||
beq @L2091
|
||||
lda Var06
|
||||
lda LastError
|
||||
bne L20BB
|
||||
@L2091: lda ReqCode
|
||||
cmp #$09
|
||||
beq @L209A
|
||||
sta VarTbl1+1
|
||||
sta LastReq
|
||||
@L209A: jsr @L20A8
|
||||
lda #$96
|
||||
jsr L230A
|
||||
lda #$00
|
||||
jsr $1922
|
||||
jsr SelC800
|
||||
rts
|
||||
|
||||
@L20A8: lda ReqCode
|
||||
|
@ -120,10 +134,10 @@ Entry: lda ReqCode
|
|||
pha
|
||||
rts
|
||||
|
||||
BadReq: lda #XREQCODE ;Bad request code!
|
||||
BadReq: lda #SOS_BADREQCODE ;Bad request code!
|
||||
L20BB: jsr SysErr
|
||||
;
|
||||
BadOp: lda #XBADOP ;Invalid operation!
|
||||
BadOp: lda #SOS_BADOP ;Invalid operation!
|
||||
jsr SysErr
|
||||
;
|
||||
lda #XNODRIVE
|
||||
|
@ -145,7 +159,7 @@ DoTable: .word DRead-1 ;0 Read request
|
|||
; D_INIT call processing
|
||||
;
|
||||
DInit: bit InitStatus
|
||||
bmi @L2121
|
||||
bmi DInitDone
|
||||
dec InitStatus
|
||||
lda DIB0_Slot
|
||||
clc
|
||||
|
@ -155,32 +169,35 @@ DInit: bit InitStatus
|
|||
ldx SIR_Addr
|
||||
ldy SIR_Addr+1
|
||||
jsr AllocSIR
|
||||
bcs @L2126
|
||||
bcs InitNoResource
|
||||
lda DIB0_Slot
|
||||
asl A
|
||||
asl A
|
||||
asl A
|
||||
asl A
|
||||
sta Var07
|
||||
sta SlotNum
|
||||
lda #$01
|
||||
jsr L22DB
|
||||
bcc @L2116
|
||||
jsr DCtrl00
|
||||
lda #$01
|
||||
jsr L22DB
|
||||
bcs @L2122
|
||||
bcs InitNoDrive
|
||||
@L2116: lda $ca28
|
||||
cmp #$d5
|
||||
beq @L2121
|
||||
beq DInitDone
|
||||
cmp #$ad
|
||||
bne @L2122
|
||||
@L2121: rts
|
||||
bne InitNoDrive
|
||||
DInitDone:
|
||||
rts
|
||||
|
||||
@L2122: lda #XNODRIVE ;Drive not connected
|
||||
bne @L2128
|
||||
InitNoDrive:
|
||||
lda #XNODRIVE ;Drive not connected
|
||||
bne L2128
|
||||
|
||||
@L2126: lda #$25 ;Resource not available
|
||||
@L2128: sta Var06
|
||||
InitNoResource:
|
||||
lda #SOS_NORESC ;Resource not available
|
||||
L2128: sta LastError
|
||||
jsr SysErr
|
||||
;
|
||||
; D_READ call processing
|
||||
|
@ -230,7 +247,7 @@ L2150: jsr L2241
|
|||
rts
|
||||
|
||||
IO_Error:
|
||||
lda #$27 ;I/O error
|
||||
lda #SOS_IOERR ;I/O error
|
||||
jsr SysErr
|
||||
;
|
||||
; D_WRITE call processing
|
||||
|
@ -268,24 +285,25 @@ DWrite: jsr L21DF
|
|||
rts
|
||||
|
||||
L21DF: lda SOS_Unit
|
||||
sta VarTbl1
|
||||
lda L2022
|
||||
sta LastUnit
|
||||
lda DCB_Bytes
|
||||
sta Var08
|
||||
lda ReqCnt
|
||||
bne @L21F5
|
||||
lda $c5
|
||||
bne @L21F5
|
||||
@L21F2: jmp SysErr
|
||||
bne L21F5 ;Positive request count, continue
|
||||
lda ReqCnt+1
|
||||
bne L21F5 ;Positive request count, continue
|
||||
WriteError:
|
||||
jmp SysErr
|
||||
|
||||
@L21F5: lda SosBlk
|
||||
L21F5: lda SosBlk
|
||||
cmp DIB0_Blks
|
||||
lda SosBlk+1
|
||||
sbc DIB0_Blks+1
|
||||
lda #XBLKNUM ;Block number too large
|
||||
bcs @L21F2
|
||||
lda #SOS_BLKNUM ;Block number too large
|
||||
bcs WriteError
|
||||
jsr L227C
|
||||
lda #XBYTECNT ;Byte count not a multiple of 512
|
||||
bcc @L21F2
|
||||
lda #SOS_BYTECNT ;Byte count not a multiple of 512
|
||||
bcc WriteError
|
||||
rts
|
||||
|
||||
L220B: ldx #$06
|
||||
|
@ -318,10 +336,11 @@ L2224: lda $cb
|
|||
@L2240: rts
|
||||
|
||||
L2241: ldx #$06
|
||||
@L2243: lda $ca29,x
|
||||
sta VarTbl2,x
|
||||
CpyCSList:
|
||||
lda $ca29,x ;Copy 7 Control/Status list bytes from device
|
||||
sta StatusList,x
|
||||
dex
|
||||
bpl @L2243
|
||||
bpl CpyCSList
|
||||
sec
|
||||
lda $ca29
|
||||
bpl @L226D
|
||||
|
@ -351,7 +370,7 @@ L2241: ldx #$06
|
|||
jsr $402b
|
||||
L227C: lda ReqCnt
|
||||
bne @L22D6
|
||||
lda $c5
|
||||
lda ReqCnt+1
|
||||
lsr A
|
||||
bcs @L22D6
|
||||
sta Var09
|
||||
|
@ -399,18 +418,18 @@ L227C: lda ReqCnt
|
|||
@L22D6: clc
|
||||
rts
|
||||
|
||||
L22D8: lda L2023
|
||||
L22D8: lda DCB_Bytes+1
|
||||
L22DB: sta Var0B
|
||||
@L22DE: jsr @L22E9
|
||||
bcc @L22E8
|
||||
bcc @Done
|
||||
dec Var0B
|
||||
bne @L22DE
|
||||
@L22E8: rts
|
||||
@Done: rts
|
||||
|
||||
@L22E9: lda #$a0
|
||||
sta Var0A
|
||||
ldy #$00
|
||||
ldx Var07
|
||||
ldx SlotNum
|
||||
@L22F3: lda Q6L,x
|
||||
bmi @L2302
|
||||
dey
|
||||
|
@ -422,11 +441,11 @@ L22DB: sta Var0B
|
|||
|
||||
@L2302: clc
|
||||
lda DIB0_Slot
|
||||
jsr $1922
|
||||
jsr SelC800
|
||||
rts
|
||||
|
||||
L230A: sta $ca28
|
||||
ldx Var07
|
||||
ldx SlotNum
|
||||
ldy #$00
|
||||
@L2312: lda MOTOROFF,x
|
||||
bpl @L231C
|
||||
|
@ -441,8 +460,8 @@ L230A: sta $ca28
|
|||
;
|
||||
; control code $00
|
||||
;
|
||||
DCtrl00: ldx Var07
|
||||
lda $c084,x
|
||||
DCtrl00: ldx SlotNum
|
||||
lda Ph2Off,x
|
||||
rts
|
||||
|
||||
L2325: tay
|
||||
|
@ -469,17 +488,17 @@ L2325: tay
|
|||
sta $ca26
|
||||
lda #$00
|
||||
sta $ca27
|
||||
ldx DIB1-1
|
||||
ldx DCB_Bytes+2
|
||||
stx $ca21
|
||||
@L236B: cpy #$03
|
||||
bne @L237C
|
||||
bne @Done
|
||||
ldy #$00
|
||||
lda (CSList),y
|
||||
sta $ca26
|
||||
iny
|
||||
lda (CSList),y
|
||||
sta $ca27
|
||||
@L237C: rts
|
||||
@Done: rts
|
||||
|
||||
;
|
||||
; D_STATUS call processing
|
||||
|
@ -528,7 +547,7 @@ DStat00: jsr L22D8
|
|||
; status code $01
|
||||
;
|
||||
DStat01: ldy #$06
|
||||
@L23C9: lda VarTbl2,y
|
||||
@L23C9: lda StatusList,y
|
||||
sta (CSList),y
|
||||
dey
|
||||
bpl @L23C9
|
||||
|
@ -547,19 +566,20 @@ DStatFE: ldy #$00
|
|||
;
|
||||
; D_REPEAT - repeat the last D_READ or D_WRITE call
|
||||
;
|
||||
DRepeat: lda VarTbl1
|
||||
DRepeat: lda LastUnit
|
||||
cmp SOS_Unit
|
||||
bne @L23F4
|
||||
lda VarTbl1+1
|
||||
bne DRepeatErr
|
||||
lda LastReq
|
||||
sta ReqCode
|
||||
bne @L23ED
|
||||
bne @Write
|
||||
jmp DRead
|
||||
|
||||
@L23ED: cmp #$02
|
||||
bcs @L23F4
|
||||
@Write: cmp #$02
|
||||
bcs DRepeatErr
|
||||
jmp DWrite
|
||||
|
||||
@L23F4: jmp BadOp
|
||||
DRepeatErr:
|
||||
jmp BadOp
|
||||
|
||||
;
|
||||
; D_CONTROL call processing
|
||||
|
@ -596,13 +616,13 @@ CtrlFE: jsr L22D8
|
|||
@L2422: jmp IO_Error
|
||||
|
||||
@L2425: ldy #$00
|
||||
@L2427: lda @L246D,y
|
||||
@L2427: lda Z8Block1,y
|
||||
sta $cb00,y
|
||||
lda @L256D,y
|
||||
lda Z8Block2,y
|
||||
sta $cc00,y
|
||||
lda @L266D,y
|
||||
lda Z8Block3,y
|
||||
sta $cd00,y
|
||||
lda L276D,y
|
||||
lda L276D,y ;This would be pulling data from beyond the Z8 block???
|
||||
sta $ce00,y
|
||||
iny
|
||||
bne @L2427
|
||||
|
@ -628,7 +648,8 @@ CtrlFE: jsr L22D8
|
|||
jmp L2150
|
||||
|
||||
; 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 $d6,$00,$18,$31,$10,$b0,$12,$56
|
||||
.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 $e6,$1b,$17,$31,$20,$e6,$04,$10
|
||||
.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 $d6,$15,$17,$31,$20,$e4,$1b,$07
|
||||
.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 $00,$af,$44,$33,$33,$44,$33,$33
|
||||
.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 $5a,$d6,$00,$18,$31,$10,$af,$31
|
||||
.byte $00,$78,$1b,$d6,$15,$4f,$ec,$15
|
||||
|
@ -746,10 +769,10 @@ DCtrl04: jsr L22D8
|
|||
txa
|
||||
clc
|
||||
adc $d8
|
||||
sta VarTbl1+2
|
||||
sta Var12
|
||||
pla
|
||||
adc $d9
|
||||
sta VarTbl1+3
|
||||
sta Var13
|
||||
jsr L278D
|
||||
stx $da
|
||||
stx $ca27
|
||||
|
@ -774,9 +797,9 @@ L2758: lda ($d8),y
|
|||
bne @L2768
|
||||
inc $db
|
||||
@L2768: lda $d8
|
||||
cmp VarTbl1+2
|
||||
cmp Var12
|
||||
L276D: lda $d9
|
||||
sbc VarTbl1+3
|
||||
sbc Var13
|
||||
bcc L2758
|
||||
rts
|
||||
|
||||
|
|
Loading…
Reference in New Issue