Research V5 development
[unix-history] / usr / mdec / mcopy.s
CommitLineData
1636e684
KT
1/ copy mag tape to disk
2
3 jsr pc,rew
42:
5 jsr pc,4(r5)
6 <'p' for rp; 'k' for rk\n\0>
7 .even
8 jsr pc,2(r5)
9 cmp r0,$'k
10 bne 3f
11 mov $rkblk,r0
12 br 1f
133:
14 cmp r0,$'p
15 bne 2b
16 mov $rpblk,r0
171:
18 mov r0,rxblk
19 mov $'\n,r0
20 jsr pc,(r5)
21 jsr pc,4(r5)
22 <disk offset\n\0>
23 .even
24 jsr pc,numb
25 mov r0,bno
26 jsr pc,4(r5)
27 <tape offset\n\0>
28 .even
29 jsr pc,numb
30 mov r0,r1
31 beq 2f
321:
33 jsr pc,rblk
34 dec r1
35 bne 1b
362:
37
38 jsr pc,4(r5)
39 <count\n\0>
40 .even
41 jsr pc,numb
42 mov r0,r1
431:
44 jsr pc,rblk
45 jsr pc,wblk
46 dec r1
47 bne 1b
48 jsr pc,rew
49 rts pc
50
51numb:
52 clr r1
531:
54 jsr pc,2(r5)
55 cmp r0,$'\n
56 beq 1f
57 sub $'0,r0
58 cmp r0,$9
59 bhi 2f
60 mul $10.,r1
61 add r0,r1
62 br 1b
631:
64 mov r1,r0
65 rts pc
662:
67 jsr pc,4(r5)
68 <illegal digit\n\0>
69 .even
70 tst (sp)+
71 rts pc
72
73mts = 172520
74mtc = 172522
75mtbrc = 172524
76mtcma = 172526
77
78rblk:
79 bit $2,*$mts
80 bne rblk
81 tstb *$mtc
82 bge rblk
83 mov $-512.,*$mtbrc
84 mov $buf,*$mtcma
85 mov $60003,*$mtc
861:
87 tstb *$mtc
88 bge 1b
89 tst *$mtc
90 bge 1f
91 jsr pc,4(r5)
92 <tape error\n\0>
93 .even
94 mov $-1,*$mtbrc
95 mov $60013,*$mtc
96 br rblk
971:
98 rts pc
99
100rew:
101 mov $60017,*$mtc
102 rts pc
103
104wblk:
105 mov bno,r0
106 inc bno
107 mov r1,-(sp)
108 mov r0,r1
109 clr r0
110 jmp *rxblk
111
112rpda = 176724
113rpblk:
114 div $10.,r0
115 mov r1,-(sp)
116 mov r0,r1
117 clr r0
118 div $20.,r0
119 bisb r1,1(sp)
120 mov $rpda,r1
121 mov (sp)+,(r1)
122 mov r0,-(r1)
123 br 1f
124
125rkda = 177412
126rkblk:
127 div $12.,r0
128 ash $4.,r0
129 bis r1,r0
130 mov $rkda,r1
131 mov r0,(r1)
132
1331:
134 mov $buf,-(r1)
135 mov $-256.,-(r1)
136 mov $3,-(r1)
1371:
138 tstb (r1)
139 bge 1b
140 tst (r1)
141 blt 1f
142 mov (sp)+,r1
143 rts pc
1441:
145 jsr pc,4(r5)
146 <disk error\n\0>
147 .even
148 mov (sp)+,r1
149 dec bno
150 br wblk
151
152.bss
153buf: .=.+512.
154rxblk: .=.+2
155bno: .=.+2