2020; ************************************************************************************************
2121
2222Command_Dir: ;; [dir]
23+ phy
2324 lda KNLDefaultDrive ; set drive to list.
2425 sta kernel.args.directory.open.drive
2526 stz kernel.args.directory.open.path_len
@@ -33,15 +34,29 @@ _CDEventLoop:
3334 bra _CDEventLoop
3435
3536_CDProcessEvent
36- lda KNLEvent.type
37+ lda KNLEvent.type
3738 cmp #kernel.event.directory.CLOSED
38- beq _CDExit
39+ beq _CDSuccess
3940
4041 jsr _CDMessages ; handle various messages
4142 bra _CDEventLoop
43+ _CDSuccess:
44+ ply
45+ lda #0
46+ clc
47+ rts
48+ _CDExit:
49+ ply
50+ jmp WarmStart
51+
4252;
4353; Dispatch messages
44- ;
54+ ;
55+ _CDEVErr:
56+ lda KNLEvent.directory.stream
57+ sta kernel.args.directory.close.stream
58+ jmp kernel .Directory.Close
59+
4560
4661_CDMessages:
4762 cmp #kernel.event.directory.OPENED
@@ -55,9 +70,10 @@ _CDMessages:
5570 cmp #kernel.event.directory.EOF
5671 beq _CDEVEOF
5772 cmp #kernel.event.directory.ERROR
58- beq _CDEVEOF
73+ beq _CDEVErr
5974 rts
6075
76+
6177_CDEVRead:
6278 lda KNLEvent.directory.stream
6379 sta kernel.args.directory.read.stream
@@ -75,8 +91,11 @@ _CDEVVolume:
7591 jsr EXTPrintCharacter
7692 bra _CDEVRead
7793
78- _CDExit:
79- jmp WarmStart
94+ _CDEVEOF:
95+ lda KNLEvent.directory.stream
96+ sta kernel.args.directory.close.stream
97+ jsr kernel .Directory.Close
98+ rts
8099
81100
82101_CDEVFile:
@@ -91,12 +110,12 @@ _CDEVFile:
91110 sec
92111 adc #16
93112 tax
94- _CDEVTab:
113+ _CDEVTab:
95114 lda #32
96115 jsr EXTPrintCharacter
97116 dex
98117 bpl _CDEVTab
99- jsr _CDReadExtended
118+ jsr _CDReadExtended
100119 lda lineBuffer
101120 ldx lineBuffer+1
102121 jsr ConvertInt16
@@ -109,17 +128,22 @@ _CDEVTab:
109128_CDEVFMessage:
110129 .text " block(s)." ,13 ,0
111130_CDEVFree:
131+ jsr _CDReadExtended
132+ lda lineBuffer
133+ ldx lineBuffer+1
134+ jsr ConvertInt16
135+ jsr PrintStringXA
136+ ldx #_CDEVFreeMessage >> 8
137+ lda #_CDEVFreeMessage & $FF
138+ jsr PrintStringXA
112139 bra _CDEVEOF
113140
114- _CDEVEOF:
115- lda KNLEvent.directory.stream
116- sta kernel.args.directory.close.stream
117- jmp kernel .Directory.Close
118-
141+ _CDEVFreeMessage:
142+ .text " blocks free." ,13 ,0
119143
120144;
121145; IN: A = # of bytes to read
122- ;
146+ ;
123147_CDReadData:
124148
125149 sta kernel.args.recv.buflen
@@ -151,8 +175,8 @@ _CDReadExtended:
151175 .send code
152176
153177 .section storage
154- .send storage
155-
178+ .send storage
179+
156180; ************************************************************************************************
157181;
158182; Changes and Updates
0 commit comments