forked from mist64/cbmsrc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
tsutil.src
103 lines (90 loc) · 2.37 KB
/
tsutil.src
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
102
103
.messg "tsutil"
.subttl "tsutil"
.page
scrub jsr gaflgs ; wr out buf if dirty
bvc scr1 ; not dirty
jsr wrtout
jsr watjob
scr1 rts
setlnk jsr set00 ; put trk,sec in buffer
lda track
sta (dirbuf),y
iny
lda sector
sta (dirbuf),y
jmp sdirty
getlnk jsr set00 ; get link from buffer
lda (dirbuf),y ; into trk and sec
sta track
iny
lda (dirbuf),y
sta sector
rts
nullnk jsr set00 ; set trk link=0 and
lda #0 ; link=last non-zero char.
sta (dirbuf),y
iny
ldx lindx
lda nr,x
tax
dex
txa
sta (dirbuf),y
rts
set00 jsr getact ; set pntr to buffer
asl a
tax
lda buftab+1,x
sta dirbuf+1
lda #0
sta dirbuf
ldy #0
rts
curblk jsr fndrch ; rd trk,sec from header
gethdr jsr getact
sta jobnum
asl a
tay
lda hdrs,y ; 4/12
sta track
lda hdrs+1,y ; 4/12
sta sector
rts
.pag
wrtab lda #wrtsd_dv ; wrtab/rdab
sta cmd ; wrtout/rdin
bne sj10 ; wrtss/rdss
rdab lda #read_dv
sta cmd
bne sj10
wrtout lda #wrtsd_dv
sta cmd
bne sj20
lda #read_dv
sta cmd
bne sj20
wrtss lda #wrtsd_dv
sta cmd
bne rds5
rdss lda #read_dv
rds5 sta cmd
ldx lindx
lda ss,x
tax
bpl sj30
sj10 jsr sethdr
jsr getact
tax
lda #0
sta lstjob,x
sj20 jsr cdirty
jsr getact
tax
sj30 jmp setljb
rdlnk lda #0 ; rdlnk
jsr setpnt
jsr getbyt
sta track
jsr getbyt
sta sector
rts