-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdisk-header-id.bas
61 lines (40 loc) · 1.15 KB
/
disk-header-id.bas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
include "xcb-ext-io.bas"
include "xcb-ext-string.bas"
; uses file numbers 15 and 2, and channels 15 and 2, repsectively
fun io_FloppyGetName$(device!)
dim diskName![17]
let diskNameStr$ = @diskName!
let index! = 0
let char! = 0
io_Open 15, device!, 15
io_OpenName 2, device!, 2, "#"
io_WriteString 15, "b-r 2 0 18 0"
io_WriteString 15, "b-p 2 144"
repeat
diskName![index!] = io_ReadByte!(2)
if diskName![index!] = 160 then goto exit_repeat
inc index!
until index! = 16
exit_repeat:
diskName![index!] = 0
io_Close 2
io_Close 15
return diskNameStr$
endfun
fun io_FloppyGetID$(device!)
dim diskID![3]
let diskIDStr$ = @diskID!
let char! = 0
io_Open 15, device!, 15
io_OpenName 2, device!, 2, "#"
io_WriteString 15, "b-r 2 0 18 0"
io_WriteString 15, "b-p 2 162"
diskID![0] = io_ReadByte!(2)
diskID![1] = io_ReadByte!(2)
diskID![2] = 0
io_Close 2
io_Close 15
return diskIDStr$
endfun
print "disk name: ", io_FloppyGetName$(8)
print "disk id: ", io_FloppyGetID$(8)