-
Notifications
You must be signed in to change notification settings - Fork 93
Expand file tree
/
Copy pathsystem.src
More file actions
101 lines (95 loc) · 1.38 KB
/
system.src
File metadata and controls
101 lines (95 loc) · 1.38 KB
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
.messg "system"
.subttl "system"
.page
hugerel
lda relsw
and #bit5
rts
;
; read and write super sidesectors
;
rdsss
ldx lindx
lda #all-1
cmp sssgrp,x
bne rdsssa ; ss not resident read it
rts
rdsssa
lda #read_dv
.byte skip2
wrtsss lda #wrtsd_dv
pha
ldx lindx
lda ssstrk,x
sta track ; set track
lda ssssec,x
sta sector ; set sector
lda #all
sta sssgrp,x
lda ss,x ; get ss buffer #
sta jobnum
jsr seth ; set the job header
pla
jsr dojob ; do the job
ldx lindx
lda #all-1
sta sssgrp,x ; mark sss resident
rts
;
; read last group
;
rdlg
lda #$5a
sta grpnum
jsr rdss1
bne rdlg1
rts
rdlg1
dec grpnum
lda grpnum
jsr rdss1c
bne rdlg1
rts
;
; read side sector 1 of group n
;
rdss1
ldx lindx
cmp sssgrp,x
bne rdss1a
rts
rdss1a
pha ; save group
jsr rdsss ; read the sss
rdss1d
lda #3
jsr ssdir ; point to the first group
pla
rdss1c
tax ; save group number
asl a
tay
lda (dirbuf),y ; get track
bne rdss1b
ora #all
rts ; return $ff
rdss1b
sta track
iny
lda (dirbuf),y ; get sector
sta sector
txa ; get group #
pha
lda #all
ldx lindx
sta sssgrp,x ; mark group nonresident
lda ss,x ; get ss buffer #
sta jobnum
jsr seth ; set the job header
lda #read_dv
jsr dojob ; read the ss in
ldx lindx
pla
sta sssgrp,x ; mark the group as resident
lda #0
rts ; return 0