-
Notifications
You must be signed in to change notification settings - Fork 0
/
cfinfo.f
45 lines (36 loc) · 922 Bytes
/
cfinfo.f
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
HEX
0 VARIABLE CFBUFF 1FE ALLOT
: BYTESWAP ( START-ADDR --- )
DUP 1+ 2DUP
C@ SWAP C@
ROT C! SWAP C!
;
: CFINFO ( --- . DISPLAYS INFORMATION ABOUT THE CF CARD )
CFWAIT
EC CFBASE 7 + C! ( IDENTIFY )
CFWAIT
CFBUFF
BEGIN
DUP CFBASE C@ SWAP C! 1 +
?CFDRQ
UNTIL
DROP
CR ." SERIAL NUMBER: "
A 0 DO ( SWAP THE BYTES OF THE SERIAL NUMBER STRING )
CFBUFF 14 + ( MOVE TO THE POSITION OF THE STRING )
I 2 * + ( SET THE OFFSET )
BYTESWAP ( SWAP THE TWO BYTES )
LOOP
CFBUFF 14 + 14 TYPE ( PRINT OUT THE SERIAL NUMBER )
CR ." MODEL: "
14 0 DO ( SWAP THE BYTES OF THE MODEL NUMBER STRING )
CFBUFF 36 + ( MOVE TO THE POSITION OF THE STRING )
I 2 * + ( SET THE OFFSET )
BYTESWAP ( SWAP THE TWO BYTES )
LOOP
CFBUFF 36 + 28 TYPE ( PRINT OUT THE MODEL NUMBER )
CR ." LBA BLOCKS: "
CFBUFF 72 + @ ( GET LSW )
CFBUFF 74 + @ ( GET MSW )
<# #S #> TYPE CR
;