Research V7 development
[unix-history] / usr / src / cmd / standalone / mtboot.s
CommitLineData
a570deab
KT
1/ tape boot program to load and transfer
2/ the next item on the tape.
3
4/ entry is made by jsr pc,*$0
5/ so return can be rts pc
6
7core = 24.
8halt=0
9.. = [core*2048.]-512.
10start:
11 mov $..,sp
12 mov sp,r1
13 cmp pc,r1
14 bhis 2f
15 clr r0
16 cmp (r0),$407
17 bne 1f
18 mov $20,r0
191:
20 mov (r0)+,(r1)+
21 cmp r1,$core*2048.
22 blo 1b
23 jmp (sp)
24
252:
26 mov $1f,*$4
27 mov $340,*$6
28 tst *$htcs1
29 mov $htrew,rew
30 mov $htread,tread
31 br 2f
321:
33 mov $tmread,tread
34 mov $tmrew,rew
352:
36 jsr pc,*rew
37 mov $2,tapa
38 mov $-256.,wc
39 jsr pc,*tread
40
41 mov *$2,r0
42 add *$4,r0
43 sub $512.,r0
44 asr r0
45 neg r0
46 bge 1f
47
48 mov r0,wc
49 mov $3,tapa
50 mov $512.,ba
51 jsr pc,*tread
521:
53 jsr pc,*rew
54 clr r0
55 mov $20,r1
56 mov sp,r4
57 clc
58 ror r4
591:
60 mov (r1)+,(r0)+
61 sob r4,1b
62 jsr pc,*$0
63 br .
64
65htcs1 = 172440
66htba = 172444
67htfc = 172446
68htcs2 = 172450
69htds = 172452
70httc = 172472
71
72P800 = 1300
73P1600 = 2300
74PIP = 20000
75RESET = 40
76MOL = 10000
77ERR = 40000
78REV = 33
79READ = 71
80REW = 7
81
82htread:
831:
84 mov ba,mtma
85 cmp mtapa,tapa
86 beq 1f
87 bhi 2f
88 jsr pc,hrrec
89 br 1b
902:
91 jsr pc,htrew
92 br 1b
931:
94 mov wc,r1
951:
96 jsr pc,hrrec
97 add $256.,r1
98 bmi 1b
99 rts pc
100
101hrrec:
102 mov $htds,r0
103 tstb (r0)
104 bpl hrrec
105 bit $PIP,(r0)
106 bne hrrec
107 bit $MOL,(r0)
108 beq hrrec
109 mov $htfc,r0
110 mov $-512.,(r0)
111 mov mtma,-(r0)
112 mov $-256.,-(r0)
113 mov $READ,-(r0)
1141:
115 tstb (r0)
116 bpl 1b
117 bit $ERR,(r0)
118 bpl 1f
119 mov $RESET,*$htcs2
120 mov $-1,*$htfc
121 mov $REV,(r0)
122 br hrrec
1231:
124 add $512.,mtma
125 inc mtapa
126 rts pc
127
128htrew:
129 mov $RESET,*$htcs2
130 mov $P800,*$httc
131 mov $REW,*$htcs1
132 clr mtapa
133 rts pc
134
135
136mts = 172520
137mtc = 172522
138mtbrc = 172524
139mtcma = 172526
140
141tmread:
1421:
143 mov ba,mtma
144 cmp mtapa,tapa
145 beq 1f
146 bhi 2f
147 jsr pc,tmrrec
148 br 1b
1492:
150 jsr pc,tmrew
151 br 1b
1521:
153 mov wc,r1
1541:
155 jsr pc,tmrrec
156 add $256.,r1
157 bmi 1b
158 rts pc
159
160tmrrec:
161 mov $mts,r0
162 bit $2,(r0)+ / rewind status
163 bne tmrrec
164 tstb (r0)+ / cu ready
165 bpl tmrrec
166 inc r0
167 mov $-512.,(r0)+ / byte count
168 mov mtma,(r0) / bus address
169 mov $mtc,r0
170 mov $60003,(r0) / read 800bpi
1711:
172 tstb (r0)
173 bpl 1b
174 tst (r0)+
175 bpl 1f
176 mov $-1,(r0)
177 mov $60013,-(r0) / backspace
178 br tmrrec
1791:
180 add $512.,mtma
181 inc mtapa
182 rts pc
183
184tmrew:
185 mov $60017,*$mtc
186 clr mtapa
187 rts pc
188
189mtapa: 0
190mtma: 0
191tapa: 0
192wc: 0
193ba: 0
194rew: 0
195tread: 0