KNS1062

KNS1062 KNS1062

User Manual: KNS1062

Open the PDF directly: View PDF PDF.
Page Count: 241

DownloadKNS1062
Open PDF In BrowserView PDF
.MAIN. ,CROSS - MICRO PROCESSOR ASSEKBLER6(31l 3-MAY-79 16:50
CONDEF.H80
TABLE OF CONTENTS
:3

56
82
171
514
515
616
645
699
913
1074
1109
1243
1477
1617
1637

1661
1991
2030
2145
2348
2349
240B
2486
2555
2563
2579
2581
2632
2649
2670
2671
2693
2715
2721
2729
2735
2743
2749
2762
2783
2828
2838
2851
, 2857
2893
2915
2939
2978
2992
3003
3012
3022
3030

*CONSOLE ERROR COIlES I1EFINED*
****NUMERICAL VALUE ASSIGNMENTS
****ASCII CHARACTER VALUE ASSIGNMENTS
U**MACROS FOR OFTEN USED COItE, OR COIlE SUBJECT TO REPEATED CHANGES
**** I(S10 CONSOLE HARDCORE *i**
**'RST" INSTRUCTION CODE**
**POWER UP START LOCATON**
**INITIALIZE UARTSt*
8080 PROM CHECKSUMMER
**BEGINNING OF BASIC CONSOLE NULL JOB ••• BEGINS WITH APROMPT
**TYPEIN COMMAND DECODER AND DISPATCHER**
****CTY SERVICE****
**COHMAND DECOIlER CONTINUEII**
**COMHAND DISPATCH LIST**
CHECKSUMS AS COMPUTED BY SPECIAL iO-BASED PROGRAM
i** 'HR" CHD U*
****INTERRUPT HANDLER****
**8080 TO I(S10 CHARACTER SERVICE*t
**I(S10 TO 8080 CHARACTER SERVICE**
UTn HANDLER FOR SPECIAL CHARACTERS**
U** CONSOLE COMMANDS AS IHPLIHENTED U**.
*** 'EB' CMD ***
*** "DB' CHII ***
*** 'EH" CMII *i*
*** "EN" CMD **t
*t* "EN" CND ***
ti* "IIH' CHII *t*
*** "IIN' CHIt *tt
t*t "DN" CMD *t*
t** "EI" CMII ***
*** 1£11' CHIt *t*
*** "DNI CMIt U*
*** 'EK' CHD ***
*t* 'EN" CMO ***
*** 'LA' CMD *t*
*** 'LI" CMD ***
t*t 'LK' CMD t**
*** 'DN" CMIt ***
t*t 'DK" CHO ***
*tt 'cpa CMO t*t
*** 'ER" CMO t*t
*** "LRI CMD t**
t** 'DR" CMD **t
*** 'LC" CMO **t
*** "CE" CliO ***
*** 'TE' CMD *t*
t*t 'SC" CMD t**
*t* 'TP CHIt' ***
*t* 'MH' CMD t*t
*t* 'SI" CMD *t*
tt* ICS' CMD t*t
*** 'CH" CMD **t
**t "LF' CHO *t*
tt* "DF' CMIt ***

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79
CMDS.M80
TABLE OF CONTENTS
3122
3164

3202
3234
3245
3337
3343
3344
3395
3472
3513
3544
3569
3583
3590
3603
3633
3645
3684
3715
3744
3826
3856
3949
3979
4018
4105
4128
4237
4337
4387
4394
4403
4414
4598
4813
5000
5695
5702
6051
6067
6128
6298
6320
6507
6528
6570
6672

ii* IRC' ***
i** IEJ I CMD ***
*** ITR" CMD ***
U* 'PM" Ci'm Ut
*** lEe· CMD ***
*** 'EN' CMD ***
*** 'DC· CMD ***
*** "DN TO DC· eMD ***
*** 'SH' CMD ***
*** ·PE· CMD ***
*** 'EX· CMD ***
*** ·ST' CHD *t*
*** 'COl CHD ***
**t 'HAl CMD ***
*** ·SH" CMD ***
*** 'KLI CMD *t*
*** ITT' CMD ***
*** IpW' CMD t**
*** 'MK· &'UM' eMD ***
*** "ZMa CMD ***
*** ·RP' CMD **t
t*t 'DS' CMD ***
*** "MS· CMD ***
*** 'BT' CMD **t
*** 'LBI CMD ***
*** 'MT' CMD ***
*t* 'MB' CMD ttt
FILE SYSTEM
CRAM LOADER CODE
*** 'FI' CMD tt*
*** 'B2' CMD ***
U* 'VD' 01[1 ***
*** 'VT' CMD ***
VERIFY CRAM CODE
CHANNEL COMMAND LIST EXECUTOR
*** "BCI CMD ***
****KS10 CONSOLE SUBROUTINE FILE
***t CLRB EXECUTE CODE t*t*
**** SOME ERROR CODES ****
SUBROUTINE TIME DELAY
STRING COMPARE ROUTINE
UART MODE MODIFICATIONS
MODE 4 FOR DECIDING TO COLLECT AN ENVELOPE OR CTY OUT
ENVELOPE COLLECTOR
**t* MORE ERROR ESCAPES ****
****DISK TRANSFER CHANNEL COMMAND LIST****
TAPE TRANSFER CHANNEL COMMAND LIST
- SM10 DATA STORAGE PARAMETERS

16~50

VER 6.2 KSI0 CONSOLE PROGRAM
CONDEF.Mao
1

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16150 PAGE 1
;*******a080 CONSOLE FOR DIGITAL EQUIPMENT CORP. KS10*******

2

3
4
5

.SBTTL *CONSOLE ERROR CODES DEFINED*

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 1-1
CONDEF.M80
*CONSOlE ERROR CODES DEFINED*
7

,lISTING CONTROLS
.NLIST BEX
.LIST MD,MC,MES
iSYMBOL ASSIGNMENTS

a

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

020000
003244
000043

RAIiST =
KPAINI =
KATIMX =

8192.
1700.
35.

000300
000300
000301
000301
000302
000100
000100
000101
000101
000101
000102
000102
000204
000205
000206
000210
000212
000201
000200
000203
000202
000114
000115
000116
000000
000001
000002
000003
000103
000103
000105
000107
000111
000113
000102
000104
000106
000110
000112

RUNFP
TTYSW
SIiSTS
:SOOTSW
CARRIER
SMPAR
RESET
REFERR
LIGHTS
DTR
R.BUSY
R.RESET
CRIiCTL
DIAG
ClKCTL
BUSCTL
CPUCTL
CTYCTL
CHDAT
REMeTL
REIiDAT
DTARB
BUSARB
INT2KS
D2835
D2027

"'0300
"0300
"'0301
"'0301
"'0302
"0100

I11219

D0411
ftOOO3
A2B35
, A2027
A1219
A0411
AOO03
W2835
W2027
W1219
W0411
WOO03

=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=

=
=
=
=
:::

=

=
=
=
=

"'moo

"'0101
"'0101
"0101
"0102
"0102
"0204
"0205
~0206

"'0210
"0212
"0201
"0200
"'0203
~0202

"'0114
"'0115
"0116
"'00
"'01

"'02
"03
"0103
"'0103
"0105
"0107
"0111

"0113
"0102
"0104
"0106
"0110
"0112

iFIRST "RAIi" MEIiORY ADDRESS
;VAlUE FOR .44 SEC BETWEEN WORD31 CHECKS
,NUMBER OF TIME IN AROW KA HAS TO BE THE SAME
iKATlliX .EG. 14. IS 6 SECONDS, .£9.35. IS 15 SEC
,I/O REG CONTAING CPU IRUN FLOp·
iI/O REG FOR TTY FRONT PANEL SWITCHES
iI/O REG FOR KS10 STATUS BITS
iI/O REG FOR HARDWARE IBOOT" SWITCH
iIIO REG FOR READING KLINIK CARRIER
iI/O REG FOR ENABLING KS10 PARITY DETECT
iIIO REG FOR ISSUEING KS10 BUS RESET
iI/O REG FOR READING MOS IiEM REFRESH ERR FLAG
iI/O REG FOR WRITING THE PANEL LIGHTS
iIIO REG FOR WRITING THE DATA TERIiINAL READY
iI/O REG FOR READING 'IiEM BUSY· OR "1/0 BUSY·
iI/O REG FOR READY IF RESET WENT TRUE(VIA AC LO)
iIIO REG FOR ACCESSING CRAIi
il/O REG FOR DIAG FUNCTION BITS
;1/0 REG FOR SETTING KSI0 CLK CTl BITS
il/O REG FOR KS10 BUS COMIi.
iI/O REG FOR KSlO "RUN,EXECUTE,CONTINUE"
iI/O REG FOR UART CONTROL/STATUS
illO REG FOR UART DATA BUFFER
jREMOTE UART CONTROL REGISTER
iREIiOTE UART DATA REGISTER
illO REG FOR DATA CYCLE OF BUS ARB ••
il/O REG FOR BUS ARBITRATION SIGNALS
iI/O REG FOR INTERRUPTING KS-10
iR DATA BITS 28-35
iR DATA BITS 20-27
iR DATA BITS 12-19
iR DATA BITS 04-11
,R DATA BITS 0-3

VER 6,2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLEF: 6(31) 3-MAY-79 16:50 PAGE 1-2
CONOEF,MBO
utNUHERICAL VALUE ASSIGNMENTS
5':w
57
58
59
60
61

62
63
64

002000
001000
000377
000020
000001
000100
000020
000174

6S
66

67
68
69
70
71
"''1
it:..

73

74
75

76
77

7B
79
80

100000
000001
000002
000001
000002
000004
000010
000020
000003
000002
000373
000004
000333
000323
000311

.SBTTL****NUMERICAl VALUE ASSIGNMENTS
~O2000
BPI16 ::
i'DENSITY/SLAlJE' DEFAULT FOR 1600 BPI TAPES
~01000
BPI8 =
,'DENSITY/SLAVE' DEFAULT FOR 800 BPI TAPES
~O377
EOLCH =
I ENIHlF -LINE CODE
n020
ARBRESP =
iBlT FOR 'SUS REG'
DATACK ::
01
iBIT FOR 'DATA ACKNOWLEDGE'
n0100
NONXMEM =
iBIT FOR 'NON-EXISTANT MEMORY'
"'020
TRPDEF -,
iBIT SAYS DEFAULT TRAP ENABLE ON
DEFLTE =
"'0174
iBITS SAY DEFAULT! CACHE ENABLE, lMSEC CU( ENASL
iALL PARITY ON
nOl00000
BIT1S =
iTHIS IS BIT1S(IF UCOUNT RIGHT TO LEFT)
BT ,BIT =
1
iBIT SAYS DOING BOOTSTRAP FROM I1ISK
MT .BIT =
2
iBIT SAYS DOING BOOTSTRAP FROM MAGTAPE
,MODEO ::
1
iFLAG SAYS KLINIK MOIlE 0
.MODE1 =
2
iFLAG SAYS KLINIK MODE 1
•MODE2 :::
4
iFLAG SAYS KLINIK MODE 2
~010
,MODE3 ".
iFLAG SAYS KUNIt; MOIlE 3
M020
•MODE4 =
iFLAG SAYS KLUHK MOnE 4 (MANUFACTURING MODE)
n03
CARRLOSS =
;INTERRUPT conE FOR 'KLINIK CARRIER LOSS'
KLACTIVE = "'02
iINTERRUPT COBE FOR WHEN KUNrt; BECOMES ACTIVE
'-'0373
STMSK =
;MAS~; FOR THE STATE LIGHT
"'04
STBIl =
iSTATE BIT
.IN
"'0333
iTHE "IN' INSTRUCTION
=
,OUT "0323
HHE 'OUT' INSTRUCTION
"'0311
.RET =
iTHE 'RET' INSTRUCTION

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16150 PAGE 1-3
VER 6.2 KS10 CONSOLE PROGRAM
cmmEF.Mao
***ASCII CHARACTER VALUE ASSIGNMENTS
82
n~

o..!t

84
0"
u.J

86
a7
88

89
90
91
9-j
~

93

94
95
96

97
98
99

100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119

120
121

.....

l'i'i

123
124
125

000000
000001
000015
000012
000054
000034
000007
000052
000042
000043
000051
000033
000032
000031
000025
000023
000021
000017
000003
000177
000103
000104
000011
000040
000057
000134
000044
000045
000077
000076
000125
000117
000136
000001
000002
000003
000004
000005
000006
000007
000070
000071
000012

.SBTTL****ASCII
a.OUT =
SYNC =
CRCHR :::
LFCHR :::
COMMA =
CNBCK =
BELL :::
STAR :::
:::
GUO
:::
lBSIGN
RF'AREN :::
:::
ALT
CHTLZ :::
CWTLY =
CNTLU =
CNTLS =
CNTLII =
CHTLO ::
CNTle :::
RBOUT :::
CCHR ::
DCHR :::
:::
TAB
:::
SPACE
SLASH =
BSlASH DOLLAH ::
PERCHT :::
:::
(lUES
:::
ARROW
:::
UCHR
:::
OCHR
UPARR :::
=
ONE
TWO
THREE =
FOUF: =
FIVE =
=
SIX
SEVEN =
EIGHT .=
NINE
TEN
=

CHARACTER VALUE ASSIGNMENTS
mULL CHAR .. STArHtS FOF: 'QUICK,OUT'
00
01
lSYNe CHAR FOR APT MESSAGES
~015
,CARRIAGE RETURN
"'012
JLINE FEED
"054
,ASCII FOR COMMA
"'034
;CONTROL-BACKSLASH
"07
iA BELL FOR WHEN HOST SYSTEMS GIVE ME GRIEF
"'052
iA STAR *
"'042
,DOUBLE QUOTES •
-~O43
iPDUNn SIGN t
,RIGHT PAREt-l )
"'051
"033
iALT MOnE
iCONTROL-Z
-~O31
iCONTROL-Y ENnS MODE 4
"'025
ICONTROL-U
"'023
iCONTROL-S
"'021
iCONTROl-Q
"017
;CONTROL-Q
"'03
iCOHTROL-C
"'0177
iRUB-OUT
; 'C·
"0103
"0104
l'D"
"011
iHORIZONTAL TAB
"'040
iSPACE
iSLASH 'j'
"057
"0134
iBACKSLASH "\'
-~O44
inOLLAR SIGN '$'
~-[!32

'"'045

1'lO77
"'076

;ax'
I'

• 'i."

; B zoo. I

"0125

;'U'

'"'0117

i'O'

"0136
"001
"002
"003
"'004
"005
"OOb
n007
"'070
"071
"012

; 11"11

i '1 •
t_p;.!!
f i-

,' !i ""!Ii
J

; '4'
;'5i!
; •6'
, 1i71

,'8' THE ASCII NUMBER
,'9' THE ASCII NUMBER
;'10'

VER 6.2 KS10 CONSOLE PROGRAM
CROSS - MICRO PROCESSOR ASSEMBLER 6(31J 3-MAY-79 16:50 PAGE 1-4
cmmEF. MSO
***ASCII CHARACTER VALUE ASSIGNMENTS
1':>7
~,

128
129
130
i31

132
133
134
135
136
137
138
139
140

141
142
143
144
145
146
147
148
149
150
151
152
153
154

000000
000002
000004
000006
000010
000012
000014
000016
000020
000022
000024
000026
000030
000032
000034
000036
000040
000042
000044
000046
000776
000772

155

156
i57
i58
159

000031

160

161
162
163
164
165
166
167
168
169

000071
000000
000000
000000
000000

,NUMERICAL ASSIGNMENTS TO GENEF~ATE THE OFFSETS USED IN COMPUTING
iDEVICE ADDRESSES FROM ANY RH BASE ADDRESS
,RADIX e
p,oo :::
0
Pfv2

:::

P.04
P.06

::

1\

:::

6
10
12
14

P.lO

::

P,12
P.i4

::
::

"\

f..

P.16
P.20

::

20

??

:::

22

-

24

[I

1 ".r..a.

P.24
P.26
P.30
P...'1'1,,P.34
P.36

P.40
P.42
P.44
P.46
D776
It772

::

16

..

26

::

30

::

32
34
36
40

..

=
::
:;:

42

=

44

:::

46

...

776

..
772
•RADIX 10
;DRIVE CONTROLLER F:EGISTER IS 776440 .. FOLLOWING COMMANDS APPLY
7=REWIND
l1=IiRIVE CLEAR
25=ERASE
27:::WRITE TAPE MARK
SKP.TAPE="031
31=SPACE FORWARD(SKIP AFILE)
33=SPACE REVERSE(SKIP AFILE, MOVING TAPE IN REVERSE)
51:::WRITE CHECK FORWARD
57=WRITE CHECK REVERSE
61=WRITE FORWARD
REAII,TAPE=M071 ;
71 =F:EAII FORlIlARI! (GO! )
77=READ REVERSE(GO!)
iIlEFAULT VALUES FOR CHECKSUM COUNTS, 50 THAT ASSEMBLIES WITH 3 PF:OMS WILL WOF:K
CHKSMO ::
0
CHK5Ml :::
0
CHKSM2 ::
0
I)
CHKSM3 =

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 1-5
CONDEF.M80
***MACROS FOR OFTEN USED COIlE, OR CODE SUBJECT TO REPEATED CHANGES
171
172

,SBTTL****MACROS FOR OFTEN USED CODE, OR CODE SUBJECT TO REPEATEB CHANGES

173

;PCHAR--i PRINTS ASINGLE CHARACTER, WHICH IT FIrms IN THE TRAILING BYTE
f CLOBBERS ACCUM
.MACRO PCHAR
XCHR
RST
i
,GO PRINT CHAR IN TRAILING BYTE
•BYTE XCHR
,CHAR TO PRINT

174
175
176
177

178

179
180

181
182
183
184

185
186
187

iKCHAR--i PRINT ASINGLE CHARACTER ON THE KLINIK LINE ONLY, CHAR TO BE PRINTEII PASS
i AS ATRAILING ARG
,MACRO KCHAR XCHR
CALL KCHR
/GO PRINT THE CHARACTER
,BYTE XCHR

188
189
190
191

192
193
194

195
196
197
198
199

200
201

202
203
204

205
206
207
208

209
210
211

,ENDM
;PLINE--; PRINTS ALINE OF CHARACTERS, POINTER PASSED AS TRAILING ARG
i AND ENIi OF LINE SIGNALEI! BY A '0' BYTE
,MACHO FUNE XMS
RST
3
iPRINT LINE OF CHARS
,ADIlR XMS
;BUFF TO PRINT
,ENDM
iKLINE--; PRINTS ALINE OF CHARACTERS, POINTER PASSED AS TRAILING AHG
; AND EN[! OF LINE SIGNALED BY A '0' BYTE
,MACRO KLINE XMS
CALL KLINE ,PRINT LINE OF CHARS
.ADDR XMS
iBUFF TO PHINT
,ENDM
mHOFF--i EXECUTES THE OLD 'INTERNAL MODE OFF' SUBHOUTINE .. 1 BUT BY usmB THE
; RESTART INSTRUCTION CALL, WE SAVE 30.t BYTES OVER 'CALL INTOFF'
,MACRO WTOFF
iGO EXIT FROM INTERNAL MOIlE
RST
6

212

213
214
215

216
217
21B

219
220

.ENDM
iINTON--; EXECUTES THE OLB 'INTERNAL MODE ON' SUBROUTINE", BUT BY USING THE
; RESTART INSTRUCTION CALL, WE SAVE 30,t BYTES OVER 'CALL INTON"
,MACRO INTON
,GO SET INTERNAL MODE
2
,END!,!

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 1-6
CONDEF.M80
***MACROS FOR OFTEN USED CODE, OR CODE SUBJECT TO REPEATED CHANGES
222
223
224
225

226
227
228
229
230
231

232
233

234
235

236
237
238
239
240
241

242
243
244
245
246
247
248
249
250
251
252
253
254
255

iCLINE--i PRINTS ALINE OF CHARACTERS, POINTER PASSED IN (H,L),
; AND END OF LINE SIGNALEr; BY A '0' BYTE
,MACRO CLINE XMS
LXI
H,XMS iPASS POINTER TO THE CHARACTERS
CALL CLINE ,PRINT LINE OF CHARS
.ENDM
iPCRLF--; PRINTS CARRIAGE RETURN-LINE FEED
; LEAVES ALL REGISTERS IN TACT
,MACRO PCRLF
CRLF
iGO PRINT CARRIAGE RETURN LINE FEED
.ENDM
iSSCLK--; ISSUES ASINGLE KS10 CLOCK •• CLOBBERS THE ACCUMULATOR
,MACRO SSCLK
MVI
A,02 iBIT TO SET ·SINGLE CLK' TO KS10
OUT
CLKCTL iISSUE THE SINGLE CLOCK
.ENDM
iPTAB--; PRINTS ATAB
; CLOBBERS ACCUM
,MACRO PTAB
PCHAR TAB

iGO PRINT ATAB

256

,ENDM
iPSPACE--; PRINTS A" SPACE
; CLOBBERS ACCUM
.MACRO PSPACE
PCHAR SPACE

iGO PRINT ASPACE

257
258

.ENDM

VER 6.2 I\S10 CONSOLE PROGRAM GROSS - MICRO PROCESSOR ASSEMBLER 6(311 3-MAY~79 16:50 PAGE 1-7
CONDEF.M80
***MACROS FOR OFTEN USED CODE, OR CODE SUBJECT TO HEPEtHED CHANGES
260
261
262
263
264
265
266
267

268
269

270

iPSLSH--; PRINTS AII' SLASH
; CLOBBERS ACCUM
.MACRO PSLASH
PCHAR SLASH

iGO PRINT ASLASH

.ENDH
IErmCHD---MACRO TO DO THE RIGHT STUFF
; AT THE END OF ACOMMAND .. COMMON ConE FOR FINISHING ALL INSTRS
•MACRO ENDCMD
RET
,RETURN TO CALLER

271
272
273

274
275

276
277

278
279
280
281
232

283
284
285

236

287
288
289
290
291

.ENDM
fBUSRESP--- MACRO TO READ I/O REG 3010
; IN ORDER TO CHECK ANY OF THE BITS WHICH
; ARE READABLE IN THAT REGISTER •• THE BIT
1 OR BITS TO BE CHECKED IS PASSED AS A
, TRAILING ARGUEMENT 'DB' TO ARST INSTR.
iTHE EXECUTION OF THE RESTART ACCOUNTS
j FOR THE 2 'NOP' TIME REQUIRED FOR THE
; BUS ARBITRATOR TO GRANT THE BUS. THIS
; MACRO RETURNS MAINLINE WITH THE I-BIT SET
; IF THE REG 301 DOES !NOT! MATCH THE TRAILING
j ARG THAT WAS PASSED AND WITH THE Z'-BIT CLEAR
; IF THERE IS A 'TRUE' IN ANY OF THE BIT POSITIONS
; PASSED ...
.MACRO BUSRESP XXX
CALL BUSRESP HIO A CALL TO EXECUTE THIS CODE
,BYTE XXX
;B1T8 TO BE CHECKED
.EHIll'!

,MACRO D

ARG,ARG1,NUL,ARG2,ARG3

,NLIST

292

293

.RADIX 8

294
295

296

•BYTE

')Q;

&376>
u.2 :;: «ARG2!2(0) &3> l «ARGU4> &374}
0..1 :;:

'-.1 !

298

299
300

0..3 :;:
, 0..4 :;:
.E:YTE
.BYTE
,BYTE

301
302
303
304

«ARG1!100;' &7>
 &1> ! «ARG2*2>

iBYiE

305
306

307
308
309

ARG3

!

«ARG*10> &370>

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 2
CONDEF.M80
***MACROS FOR OFTEN USED CODE, OR CODE SUBJECT TO REPEATED CHANGES
311

312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345

•MACRO LIt
ARG2,ARG3
.RADIX 8
ARG
ARG1
NUL

=

0
0
0

0.1 =
G.2 =
•BYTE
•BYTE
.BYTE
.RADIX

{{ARG3/400> &1> ! {{ARG2*2> 1 376>
«ARG21200> &3> ! {{ARG1*4> & 374> ! <2*4>
G.l
ARG3 & 377
G,2
10

:

:

.ENDM
ARG2,ARG3
•MACRO EI •
.RADIX 8
ARG
ARG1
NUL

.ENDM

=
=
=

0
0

Gtl =
G.2 =
,BYTE
•BYTE
•BYTE
.RADIX

«ARG3/400> &1) ! «ARG2*2) &376>
«ARG2/2(0) &3> ! «ARG1*4) &374> ! <4*4>

0

11.1

ARG3 & 377
9.2
10

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 2-1
CONDEF.M80
***MACROS FOR OFTEN USED CODE, OR CODE SUBJECT TO REPEATED CHANGES
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386

•MACRO D1.
ARG2tARG3
.RADIX 8
ARG
ARG1
NUL

=

()

=

0

=

•BYTE
G.l =
G.2 =
/ .BYTE
•BYTE

()

ARG3 &377
{{ARG3/4(0) &1> ! ({ARG2*2) &376){{ARG2/200> &3)- ! {{ARG1*4)- &374>
Q.1
G.2

.RADIX 10
.ENDI'!
•MACRO DI.INDIRECT ARG3
.RADIX 8
.ADDR ARG3
.BYTE "0200
.RADIX 10
.ENDM
•MACRO TWAIT ARG3
.RADIX a
.ADDR ARG3
•BYTE <14*4)
.RAII1X 10
.ENDM
.MACF:O WAIT ARG3
.RADIX 8
.ADDR ARB3
•BYTE {6*4)

•amI'!

.RADIX Hl

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 2-2
CONDEF.MBO
***MACROS FOR OFTEN USED CODE, OR CODE SUBJECT TO REPEATED CHANGES
3BB
3B9
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421

.MACRO ERRTST
.RADIX
.ADDR
•BYTE

ARG3
B

ARG3
<10*4>

.RADIX 10
.ENDM
ARG2,ARG3
•MACRO UBA.
.RADIX B
ARG
ARB1
NUL

=
=
=
•BYTE
G.l =
11.2 =
•BYTE
•BYTE
.RADIX

0

0
0
ARG3 & 377
«ARG3/400> &1) ! «ARG2*2) &376)
((ARG2/200) &3) ! «ARG1*4) &374> ! (16*4>
11.1

11.2
10

.ENDM
•MACRO [NDLST
.RAnIX a
•BYTE
.BYTE
•BYTE
.RADIX
.ENDM

0
0

<12*4>
10

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31:1 3-MAY-79 16:50 PAGE 3
cmmEF.M80
*UMACROS FOR OFTEN USED CODE; OR CODE SUB,JECT TO REPEATED CHANGES
4'"-"
17
424
4't..oJ
1r
4'1L
':'\.1

427
42B
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451

452

•MACRO MOV5B
RST
.BYTE
.ENDM
•MACHO CRLF
RST
•BYTE
.ENDM

4
(I

4

2

•MACHO ARG16
RBT
•BYTE
.ENDM

4
4

•MACRO RUN ..
RBT
•BYTE
.ENIIM

4
6

•MACHO ARG36
RST
.BYTE
.ENDM
.MACRO CLRRM
RBT
,BYTE
.ABDR
.ENDM

4
8

FOO
4

10.
FOOt5

VER 6.2 I1
692
693
694
695
696
697

ASSEMBLH~

UA~:T TO RECEl VE ANI! TRANSMIT
A,'-'BOOO10I01 iBITS FOR UART CONTROL
MVI
ISET UART TO RECEIVE ANI! TRANSMIT
OUT
CTYCTL i***** I/O WRT 200/025 *****

O'){\

!WI

000203 323 203

OUT

JONE BIT TO SAY RESET THE UART
REMeTL iRESET THE KLINIK UART BUT no NOT ENABLE IT!!

()OO205 '1'11. 200
000207 333 202

IN
IN

CHIlAT
REMDAT

i***** I/O fW 201***** READ
;***** I/O RD 203***** READ

CAL.L

BFRST

i INIT TTY

000201 07t-

d~~

0OO21i

7-ir,:-

,,)lJ

160 CliO

At 020
M

INPUT BUFFER

DUMMY CHAR OUT OF UART
1 DUMMY CHAR OUT OF UART

1

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-10
HCORE.M80
8080 PROM rHECKSUMMER

703 000214 041 000 000
704 00021'7 257
705 000220 117
706 000221 107
707 000222 137
708 000223 127

.SBTTL 8080 PROM CHECKSUMMER
,CODE TO COMPUTE ACHECKSUM FOR EACH OF THE 2K 8080 PROM PIECES
;FIRST COMPUTE THE CHECKSUMS FOR. EACH PROM, THEN DO SIMPLE TEST ON THE 8080
iRAM •• BEGIN WITH THE PROMS
H,OO
iSTART AT PROM ADDRESS 0
LXI
A
;CLEAR ACCUM
LCHKR: XRA
;CLEAR B,C PAIR
MOV
Cd\
MOV
BfA
i's,e' TO BE USED AS ADDEND
E,A
;CLEAR D,E PAIR
MOV
D,A
MOV
,'D,E' TO HOLD CURRENT COUNT OF CHECKSUM

709
710 000224 116

A256:

699
700

701
702

711 000225 043

'712 000226 353
n3 000227 011
714 000230 353

MO\)

INX
XCHG
DAD

C,M
H
B

XCHG

,GET ABYTE
;UPDATE MEM POINTER
iPUT CURRENT CHECKSUM SUB TOTAL INTO H,L
iTHROW IN AN ADDEND
iRETURN H,L TO RIGHTFUL PLACE

715

71.6

717 000231 175
718 000232 247
719 000233 302 224 000
720

721
722 000236 174
723 000237 346 007
724 000241 302 224 aoo

jNObi QUICK CHECK FOR THE END OF PROM
A,L
;GET LO ORDER OF CURRENT PROM ADDRESS
MOV
;5£T CONDITION CODES
ANA
A
iIF .EG. O,WE'VE DONE 256 LOCS, IF .NE. 0, DO MORE
IN.Z
A250
iFAlL TO HERE WHEN DONE
A,H
MOV
"07
ANI
JNZ
A256

ACHUNK OF 256 •• S£E IF ITS ON APROM BOUNDARY NOW
,GET HI ORDER PIECE OF ADDRESS
HF THIS .Ea. 0, THEN WE ARE AI ABOUNDARY
iIF .NE 0, THEN KEEP TRYING

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MflY-79 16150 PAGE 3-11
8080 PROM CHECKSUMMER
HCOHE.M80
726
727 000244 174
728 000245 017

729 000246 017
730 000247 017
i'31 000250 075
732 000251 207

iFALL THRU HERE WHEN WE'VE COMPLETED APROMS WORTH
;GET HI ORDER, WHICH CORRESPONDS TO ·WHICH PROM"
MOV
I'hH
RRC
;JUSTIFY AT EDGE OF THE ACCUM
RRC
RRC
,DECREMENT MAKES ·0-3' INSTEAD OF '1-4"
DCR
A
iDOUBLE THIS VALUE TO MAKE IT ON 16 BYTE BOUNDARIES
ADD
A

733

734 000252 365
77"'~r:.. 000253 345
736 000254 302 315 000
737
738

739
740
741

742 000257 :565

743 000260 041 175 005
744 000263 076 010
745 000265 062 000 040
746 000270 006 377
747 000272 176
748 000273 vi
749 000274 117
750 000275 003
Oc.;~

751
752 000276 353
753 000277 011
754 000300 353
755
'l56
757
758
759
'760

000301 043
000302 072 000 040
000305 075
000306 302 265 000

000311 001 000 000
761
762 000314 361

PUSH
PUSH
JNZ

PSW
H

[lEV

iSAVE THIS VALUE FOR ABIT
jAND SAVE OUR CURRENT POINTER
;Ir DOING PROM ZERO, ELIMINATE THE ACTUAL CHECKSUM COUNT

iFEU. THRtI TO HERE TO DO ACTUAL CHECKSUM ELIMINATION
iEXECUTEII WHEN CHECKSUMMING PROM O. IT REMOVES THE ACTUAL CHECKSUM VALUES
iFROM THE COMPUTED CHECKSUM, AS WE CANNOT SOLVE THE CHECKSUM FEEDBACK
,LOOP PROBLEM
,SAVE ACCUM
PUSH PSW
H,CHECKS iH,L GETS APOINTER TO THE LIST OF CHECKSUMS
LXI
A,S.
MVI
iSTART WITH ACOUNT OF B, FOR THE EIGHT BYTES WE MUST SUB
DEVLP: STA
T80DT ;SAVE COUNT IN RAI'If SO WE CAN USE ACCUM
MVI
[I, "0377 JIN [hC PAIR, ENSURE UPPER HALF .Ell. -1
A,M
MOV
iGET CHECKSUM BYTE TO ACCUM
;NEGATE IT
triA
C,A
MOV
;THROW IT INTO A16 BIT ENTITY
iAND MAKE B,C PAIR 2'S COMPLIMENT
INX
B
XCHG
[lAD

XCHG
INX
L.DA
DCR
,INZ

B
H

TeODT
A

DEVLP

,GET CURRENT COMPUTED CHECKSUM TO H,L
;·SUBTRACT' THE BYTE WE'VE ASSEMBLED. (2'S COMP ADDITION)
;PUT H,L/D,E PAIR RIGHT
;AND UPDATE THE POINTER INTO THE LIST
,GET OUR CURRENT COUNT FROM THE RAM
;DECREMENT
jCONTINUE IN THE LOOP

,NOW GUARANTEE B,C PAIR IS ALL GONE
LXI
IhOO
iFALL THRU WHEN FINISHED
POP
F'SIrJ
,RESTORE ACCUM

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-12
HCORLMBO
BOBO PRDM CHECKSUMMER

01l

DAD

767 000322 116
768 000323 043

MDU

C,A
iGET CURRENT PROM NUMBER INTO C
H,CHECKS iH,L POINTS TO THE TABLE OF CHECKSUM
B
IADD INDEX, AND NOW (M) PNTS TO EXPECTED CHECKSUM
(,M
;COPY EXPECTED CHECKSUM INTO C

IHX

H

000324

106

MOV

770 000325 043
771

INX

764 000315 117
7,~5

000316 041 175

766 OOC032i.

7t8

BE\!:

005

772

773 000326 353
774 000327 011
775 000330 175
776 000331 264
777
778

O()0332 353

779 000333 341
780 000334 302 356 000

MOV

LXI

B,M
H

;AND B, MAKES 'ByC' PAIR
iAMB KEEP COUNT UP

iNOW [lIE HAS CALCULATED CHECKSUM ANI! B,C HAS EXPECTED CHECKSUM
XCHG
iH,L NOW HAS CALCULATED CHECKSUM
OAD
B
iIF CHECKSUM OK, RESULT OF THIS SHOULD .EG, 0
MOV
A,L
iGET LO PIECE
ORA
H
HHROW IN HI PIECE .. CONIIITION CODE FLAGS NOW SET
XGHG
POP
JNZ

HI,E NOW HAS THE ~~ESULTS OF THE ADIiITION
H
iBEFORE JUMPING ON CONDITION CODES, FIRST FIX REGISTER
CHKERR iIF H,L WAS .NE. 0, THEN WE HAn PROM CHECKSUM ERROR ...

781

782
783 000337 361
784 000340 376 006
785 000342 302 217 000

;FAlL THRU IF CHECKSUM WAS OK
POP
PSW
,RESTORE IN[lEX INTO 'WHICH PROM' WE ARE IN
CPI
6
;SEE IF DONE ALL
JNZ
LCHt\R iJUMP BACK TO BEGINNING IF NOT nONE ALL

786

187
788 000345 303 373 000

;FALL THRU IF [lONE ALL-.PROMS CHECKSUM OK
JMP
XXX230 ISO AVOHl THE ERROR PRINTOUT CODE

VER 6.2 KSg,
HCORE.M80

CONSOlE PROGf\AM
CROSS - MICRO PROCESSOR
8080 PROM CHECKSUMMEf:

790
791 OO(i35(j 077 10] 110
792 000356

000356 337
(ll 000357 350
793 000361 361
/94 000362 Ol?
795 000363 074
(1)

(l()i)

796 OOO~~64 366 060
797 000366 315 010 004
798 ()()O37l.
(:2) 000371 347
(2)

l)OO372 002

ASSEMBLEF:

6(31)

3-I1A,(-79 16/50 PAGE 3-13

JUMPED TO HERE IF YOU ENCOUNTERED ACHECKSUM ERROR.
ROMMSG! .ASCIZ nCHK i ;IF PROM CHECKSUM FAILS, USE THIS MESSAGE
GHKERRi PUNE ROMKSG iPRINT ' i'CHK •
RST
iPRINT LINE OF CHARS
:3
,ADDR ROMMSG iBUFF TO PRINT
POP
PSW
iRETRIEVE PROM NUMBER
RRC
HtIVIDE DOWrh SINCE WE DOUBLED IT BEFORE
iMAKE PROM TYPE-OUT BE 1,-4
INR
A
nObO
ORI
HIAKE IT ASCII
;80 PRINT IT
CALL PCHR
PCRLF
i(CH-lF>
RCT
li·
,"
;YOU

•BYTE

2

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-HAY-79 16:50 PAGE 3-14
HCORE.M8O
8080 PROM CHECKSUM HER
SM
SOl

302 000373 076 174

803 000375 323 100
804
805

SOb
807
80S 000377 041 342 040

809 000402
tHO 000405
811 000406
812 000410
813

0'1'
<.1
021 001
032

376 252
312 062 001

814
RiC'
.,h}

B16
817
Sla
819

820
821

822
8';'1
~\o!

8;:4

825
926

B27
B28
829

830
831
832
833
834
835
S3b

000413
000414
000415
000416
000421
000421
000423
000424
000425
000427
000431
000433
000434
000435
000436
000437
000440
000441
000446
Ott453
000460
000461

167
043
023
303 005 001
244 006
377
377

200 010
255 001
013 042
174
020
014
004
010
041

377
'1;:;'
)
\oit.
i'..

iFINAl STEP IS TO ENABLE F'ARITY DETECTION IN THE KS10
; DEFAULT IS: PARITY DETECTION ON •• DATA PATH PARITY DETECION ENABLED
XXX230: MVI
A,DEFLTE HNIT ENABLES TO BE ON
SMPAR i***** 1/0 WRT 100/174
OUT

*****

;LITTLE ROUTINE TO LOAD ALL DEFAULT CONSTANTS INTO THE 8080 RAM
;THIS ROUTINE SAVE ABOUT 40. BYTES OF PROM, OVER USING LXI'S,SHLD'S
iMVI'S &STA'S
LXI
H,KATIMl illST OF DESTINATION LOCATIONS BEGINS HERE
D,PRMLST iLIST OF DATUMS FOR THE RAM INIT
LXI
RAMMER: LDAX n
iGET BYTE FROM THE DATA LIST
cpr
"'0252 iTEST FOR END OF LIST
.IZ
XXX235 ,CONTINUE PROM INIT
iELSE MORE RAM TO INITIALIZE
M,A
jPUT GOOD STUFF IN RAM
MOV
INX
H
WPIIATE POINTERS
INX
D
..IMP
RAMMER
PRMLST!
.ADDR KPAINI iKATIM1(2) KEEP ALIVE INITIAL COUNTER
.!IF DF,SCECOD,
•BYTE -1
iFOR SCE ADR INIT
.IIF OF/seECOD,
jFOR seE ADR INIT
•BYTE -1
.ADDR MODEO iMODDIS{Z) IN1T THE KLINIK LINE TO HODE 0
.ADDR REINI jNORMAL INSTR ENDS WILL GO TO REINIT
.ADDR ENVBUF iENVPNT<2} APT PNTER FOR ENVELOPES SENT TO THE HOST
•BYTE DEFLTE iPARBT{l) INIT ENABLES TO BE ON
•BYTE TRPDEF iTRAPEN(l) INIT ENABLES THE HARDWARE TRAPS
•BYTE "'014
iMTAUBA(ll DEFAULT MAGTAPE UBA NUMBER IS "3"
iDSKUBA(l) DEFAULT DISK UBA NUMBER IS "l"
•BYTE "04
.BYTE '~O10
iSTATE(l) STATE BEGINS WITH DTR TRUE
iLSTMSG(l) FIRST APT MSG SHOULD BE 136(NOT OF 41)
•BYTE "'041
It 0,0,,2,0
;DEN.SLV(5) GET DEFAULT VALUE FOR ALL TAPES
,!'!TBASE: D0,0,,7721440 iMTBASE(5) INITIAL DEFAULT MTA RHBASE ADDRESS
.DSBASEt II (hOn776,700 iDSBASE(5) INITIAL DEFAULT DSK RHBASE ADDRESS
;RPINI(l) SO CAN MAKE IT -1
.BYTE -1
•BYTE "'0252 iEND OF LIST MARKER

837
B38 !)(}O462

076 025

839 000464 323 203
840 000466 076 010
841 000470 323 101

XXX23S: MVI
OUT
MVI
OUT

A,"025 iSIT TO RESET THE UART
REMCTL ,RESET THE KLINIK UART AND ENABLE IT!!
A,"010 JGET ABIT TO SET IDATA TERMINAL READY·
DTR
iSET IT.

lJER 1;,,'2 KS10 CONSOLE PROGF~AM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-15
HCORE.MBO
8080 PROM CHECKSUMMER
843 000472

PUNE

000472
(1) 000473
844 000475
U) 00{)475
845 000476

337

RST

205 (lOS

847 000504

373

.ADDR
INTON
RST
CALL
CALL
EI

(1)

327

315 032 012
846 000501 315 113 011

848
849 000505 315 022 033

850 000510 012 040
851 000512 364 Oib
852
853 000514 312 163 001
854
B55 000517
(1)

000517 367

856

000520
000520 337
000521 013 037
000523 303 255 001

(1)
(1)

857

S5S

CALL

.ADDR
.ADDF:

INIMS
3
HHMS
2
EHi
EBCHD

iPRINT VERSION AND ID
iPRINT LINE OF CHARS
iBUFF TO PRINT
;SET INTERNAL HODE
iGO SET INTERNAL MODE
iDO PSUEDO EXAMINE TO SET MEM LATCHES
iEXAMINE THE BUS, TO SEE IF ZERO
jENABLE INTERRUPTS

CMP36 ;NOW CHECK RESULTS OF THE "EB' CHD
EMBUF iTHE RESULTS READ FROM THE BUS
MADOOO ; VERSUS AWORD OF ALL ZEROES

JZ
PWRCHK jIF OK, GO TO AUTO BOOT
iFALL THRU IF ERRORS ENCOUNTERED
Il'HOFF
,LEAVE INTERNAL MODE
RST
6
,GO EXIT FROM INTERNAL MODE
FUME INIER iSAY "INITIALIZE ERROR'
RST
;PRINT LINE OF CHARS
3
.fiD!tR INlER ,BUFF TO PRINT
JMP
REItH ,AND GO OUT

VER 6.2 1(510 GONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER M3U 3-MAY-79 16:50 PAGE 3-16
8080 PROM CHECKSUMMER

HCORE,!'!SO
860

861 000526 315 263 022
862 000531 332 175 032
863 000534 315 043 023
864
965 000537 315 347 021
8bb 000542

000542 347
000543 012
m 000544 100 040
867 000546 066 070
86S
869 000550 076 004
870 000552 062 255 040
871 000555 315 113 017
872 000560 303 255 001
(1)

(1)

873

874

875
876 000563
(1) 000563
(1) 000564
(1) 000565
877 000567
878 000570

347
012
031 040
043
066 200
315 357 012

879 000572
880 000575
(1) 000575 367

,JUMP TO HERE IF DOING PWR FAIL RESTART
PWR.FAIU CALL MICROP iREAD IN POINTERS AND READY TO GO
JC C.BTERR ;IF BOMBED, GIVE UP
CALL DMEM2CRAM ,GO READIN THE MICRO-CODE
CALL
CLRRM
RST
•BYTE
.ADDH

BT.GO ;START MICRO-CODE
TMF'BF2 iCLEAR ABUFFER
4
10 •

!'IV!

TMPBF2+5
1'1,"'070 iPOWER FAIL START ADDRESS IS 170 1

MVI
STA
CALL
JMP

A,4
GOCODE
STINT
REItH

iCODE 4 INDICATES PWR FAIL
,SAVE IN RESTART INDICATOR
iGO START MACHINE, USE INTERNAL MODE
iAND GO LET THINGS HAPPEN

,fIRST THING TO no IS TO CHECK IF THIS IS APOWER FAIL RESTART
iNOTE: WE ARE STILL IN ·INTERNAL" HODE HERE •• THINGS WONT PRINT
PWRCHK; CLRRM WAD iCLEAR ABUFFER .. WE WILL GENERATE A1100000·
4
RST
•BYTE 10.
.ADDR IOAD+5
iClRRH PASSES PNTR •• WE HAKE IT 'IOADtl"
IHX
H
M,~0200 ,SET BIT THAT MAKES IT '100000·
MVI
iGO EXAHINE 1/0 ADDRESS
CALL EU
,CLEAR INTERNAL MODE
INTOFF
,GO EXIT FROM INTERNAL MODE
RST
6

VER 6.2 KS10 CONSOLE PF:OGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-17
3080 PROM CHECKSUMMER
HGORE.tlSO
882 000576 016 226

883 000600 041 031 000
884 000603 315 134 014

ass

886 000606 072 157 040
887 000611 247
B88 000612 :502 255 001

889
890
891
892 000615 333 301
893 000617 346 002
894 000621 312 043 002
895
896 000624 333 102
897 000626 346 100
898 000630 312 000 000
899
900

901 000633 015
902 000634 302 200 001
903
904

905 000637 072 014 040
906 000642 346 200
907 000644 312 126 001

SYSUP: MVI
SYSUP1: LXI
CALL
LDA
ANA
JNZ

C,lS0. ;NOW DO AN AUTO BOOT SEGUENCE
H,25. ;WILL DO ADELAY LOOP
LTLOOP ; BY HAND, BY-PASSING USUAL MACRO GENERATION
RPEND
A
REINl

,SEE IF ACHAR WAS TYPED TO END THE AUTO BOOT
iSET CONDITION FLAGS
iIF ACHAR WAS TYPED, NO AUTO STUFF, GO NULL JOB

iWHILE WE HAVEN/T GOT ANYTHING TO DO, MIGHT AS WELL CHECK BOOT SWITCH
iTO SEE IF THAT GOT PUSHED WHILE WE WERE SITTING HERE
IN
BOOTSW j***** liD RD/301 *****
j'BOOT' BUTTON PUSHED IS 'TRUE .LO,·
ANI
2
,THEREFORE, IF RESULTS .EG. Z-BIT, THEN BUTTON PUSHED
JZ
NO.5
IN
ANI.
JZ

r'0102

"0100
0000

iREAII AND SEE IF 'AC PWR LO' HAPPENED
,CHECK THE RESET SIGNAL
ilTS TRUE .LO., SO IF TRUE, RESTART THE MACHINE

iFAlL THROUGH IF NO BOOT BUTTON PUSHED
...
DCR
iSTILL TIMING OUT •• WAIT LONGER
JNZ
SYSUPl iBACK WHILE WAITING
('

jNOW SEE IF NEED AUTO BOOT, OR POWER FAIL RECOVERY ••
EMBUFt2 ,FETCH UP BITS 12-19
LIlA
"'0200 ;CHECK THE PWR SAVED BIT
ANI
PWR,FAIL iIF BIT SET, GO TRY APOWER FAIL RECOVERY
JZ

90B

909
910 000647
(1)

(1)

911

000647 337
000650 365 037
000652 315 234 021

iFELL THROUGH IF THIS MUST BE AN AUTO BOOT SEQUENCE
PLINE AUT OMS ,SAY "BT AUTO'
'7
,PRINT LINE OF CHARS
RST
'"
.ADDR AUT OMS ,BUFF TO PRINT
CALL BTAUT iCALL THE BOOT

iJER 6.2 KS10 CONSOLE PROGRAM , CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-18
HCORE.M80
UBEGINNING OF BASIC CONSOLE NULL JOB ••• BEGINS WITH Ii PROMPT
913

91.4 000655 061 000 044

915 000660
916 000662
917 000664
918 000666
919 000670
920 000672 041 001 041
000675 042 211 040
922 000700 041 255 001

)'21

923 000703 042 350 040
924 000706 315 160 010
9"·' 000711 373
,,J

.SBTTl **BEGINNING Of BASIC CONSOLE NULL JOB ••• BEGINS WITH APROMPT
SP,RAMST+~02000 iRESET STACK POINTER TO RE-INIT
iGUARANTEE END-Of-LINE eNTR RESET
CLRB EOL
CLRB ERRCD iCLEAR CURRENT ERROR CODE
CLRB ERRCD+l iCLEAR CURRENT ERROR CODE
CLRB RPTON iALWAYS CLEAR THE REPEAT FLAG
CLRB NOPHT iCLR THE 'NO PRINT' FLAG
flrRPINI ,GET POINTER TO BUFFER WHERE WE SAVE
LXI
SHLD RPLST ; THE COMMAND DISPATCH ADDRESSES.USED BY REPEAT
H,REINI iIF GOT HERE, SAFE TO GUARANTEE UALWAYS GET HERE
LXI
SHLD NOREND iPASS REINIT LOCATION TO THE NORMAL END DISPATCH
CALL BFRST iRESET TTY INPUT BUFFER
iMAKE SURE THAT BOMBS RESTORE THE INTERRUPTS
El

REIN!: LXI

926

927 000712 072 156 040
928 000715 247
9~lQ
000716 302 335 001
k'
930
931 000721 072 251 040

000724 247
933 000725 302 335 001
932

LDA
ANA
JNZ

USRMD

LDA
ANA
JNZ

MMFLG

A

NULLJ
A

NULLJ

iGRAl! USER MODE FLAG
,SET CONDITION CODES
lIF USER MODE, NO PROMPTS, NO CR-LF, NOTHING
jIF MM MODE WE WILL PRINT NO PROMPTS
iSET 8080 FLAGS
jSKIP PROMPT IF MM

934

935 000730
(2) 000730
(2) 000731
936 000732
(1) 000732
(1) 000733

347
002
337
053 037

PCRLF
RST
4
•BYTE 2
PLINE KSPRHT
RST
3
.ADDR KSPRMT

;START FRESH WITH CR-LF
iPROMPT IS 'KS10}'
iPRINT LINE OF CHARS
illUFF'TO PRINT

VER 6.2 I(S10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-19
HCORE.MBO
**BEGINNING OF BASIC CONSOLE NULL JOB ••• BEGINS WITH APROMPT
938

BEGINS THE NULL STATE LOOP ....
; CHECK FRONT PANEL BOOT SWITCH
NULLJ: LXI
H,DCODE iNULLJ JOB WILL PROCESS COMMANDS ON "END-OF-LINE"
~0102
NULLW: IN
iREAD AND SEE IF 'AC PWR LO· HAPPENED
"'0100 ;CHECK THE RESET SIGNAL
ANI
0000 ilTS TRUE .LO., SO IF TRUE, RESTART THE MACHINE
JZ
tHERE

939
940 000735 041 222 002
941 000740 333 102
942 00Q742 346 100
943 000744 312 000 000
944
945 000747 333 302

946 000751 057
947 000752 117
948 000753 346 014
949 000755 017
950 000756 107
951 000757 072 124 040
9<:'i 000762 270
'"
953 000763 345
954 000764 304 327 03:3
955 000767 341

IN
CM
MOV
ANI
RRC
MOV
LDA
CMf'
PUSH
CNI
POf'

"'0302

jREAD THE STATE OF THE KLINIK SWITCHES
iFIX THE HARDWARE INVERSION
iSAVE RESULTS OF READ IN REG IC'
CrA
"'014 ;OFF ALL BUT THE 2 KLINIK BITS
jJUSTIFY 'WORD-WISE"
B,A
,SAVE THE KLINIK BITS FOR ASEC.
KLNKSW 16ET THE CURRENT KLINIK SWITCH STATE
iNOW SEE IF KLINIK SWITCH HAS CHANGED SINCE LAST TIME
B
,SAVE
H,L IT HAS OUR DISPATCH ADDRESS
Ii
KLNKLT iIF COMPARE WAS .NE. 0, THEN WE MUST CHANGE LIGHTS
iRETRIEVE H,L 50 THAT WE HAVE THE REAL DISPATCH
11

956

957
958

959

960 000770 171
961 000771 346 001
962 000773 312 004 002

10K, NOW SEE IF WE ARE WATCHING CARRIER FROM THE KLINIK LINE,
iAND IF WE ARE, SEE IF IT HAS GONE AWAY •• IF KLINIK CARRIER GOES
,AWAY FOR 2 SECONDS, THEN WE WILL HANGUP THE LINE
A,e
MOV
iGET STATE OF THE CARRIER INTO ACCUM
j5EE IF IT IS SET
ANI
1
iIF THERE IS NO CARRIER, THEN SEE IF WE CARE
JZ
NOO

963

964
965

966
967
969

000776 062 130 040
001001 303 034 002

%9

970 001004 072 130 040
971 001007 247
972 001010 312 034 002

iCARRIER WAS TRUE IF WE GOT HERE, SET FLAG SAYING THAT WE MUST WATCH
iIF IT DECIDES TO GO AWAY ON US
STA
WATCHC ;SET FLAG SAYING WATCH THE KLINIK
,AND PROCEED WITH THE NULL JOB
NO
JMF'
j60T I1ERE IF CARRIER WAS FALSE, SEE IF WE CARE
NOO: LDA
WATCHC iFETCH UP THE 'WATCH' FLAG
jSET FLAGS
ANA
A
iWE DONI CARE, JUMP
JI
NO

973

974
975 001013 345
9?6

001014

(1)
(U

001014 041 220 001
001017 315 l34 01.4
001022 333 302
001024 346 001
001026 304 132 034
001031 341

':;77
978
979

980

981 001032

iCARRIER WENT AWAY ON US. WAIT 2 SECONDS, IF STILL GONE, HANG EM Uf'
iBEST SAVE DISPATCHER TYPE ADDRESS
PUSH H
LONG. DELAY 2 jWAIT 2 SECONDS
LXI
H,200. *2 iSET UP THE TIMING COUNT IN H,L REG
CALL LTLOOP iAND GO DELAY ABOUT 1 SECOND FOR EACH (300 COUNT)
IN
CARRIER i***** 1/0 RD 302 ***t*
iSEE IF TRUE(LOWl OR FALSE(HIGHl
ANI
1
CNZ
KILL.KLINIK ,IT WAS STILL FALSE(I.E HIGH), HANGUP THE LINE
,NOW RESTORE
POP
H
CLRB WATCHC iAND SAY TO LEAVE THIS ALONE FOR AWHILE

VER 6.:2 [;;S10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-20
HCORE,M8(l
**BEGINNING OF BASIC CONSOLE NULL JOB .. , BEGINS WITH APROMPT
9tU
001034 .j,,:t ... 301
985 001036 :346 002
'786 00104(l 302 051 002

'lOll
U,

"'\I,~

~

iElS£ FALL THRll CAUSE ALL OK
NO:
BOOTSW ;***** 1/0 READ 301 *****
IN
.i..,
ANI
iIS BOOT SW SET???(TRUE LO, BECAUSE OF INVERSION)
;SKIP NEXT INSTR IF FALSE(I.E HIGH)
.JNZ
Ni

98'/

S'BS 001043 3-J,;Jt- :m \/21
lino
reI! 001046 303 335 001

NO,S!

CALL
JMP

BOOT
NULLJ

;OTHERWISE. .. GO TO BOOT COMMAND
iAFTER BOOT, ALL TTY INPUT WAITS ARE KILLE!!

iJER 6,2 1<510 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16i50 PAGE 3-21
**BEGINNING OF BASIC CONSOLE NULL JOB ••• BEGINS WITH APROMPT
HCORE.MSO

999 001064 302 035 027
1000 001067 303 076 002

iCONTINUE NULL STATE STATUS CHECK
I CHECK FOR SYSTEM PARITY ERRORS
Nit
BOOTSW ~***** I/O RD 301 *****
IN
"'010
HS PARITY ERR SIGNAL SEHTRUE .LO.)
ANI
.JHZ
NX2
;SKIP NEXT INSTR IF NOT SET
iIF YES SET, MUST CHECK THE PARITY ERROR
CHKPAR iGET FLAG TO SEE IF SHOULD REPORT PARITY ERRORS
LDA
At!A
A
iSET FLAGS
RPTPAR iIF NOT ZERO, MUST GO REPORT PARITY ERROR
JNZ
;AND CONTINUE ELSE
JMP
H2

1001
1.002 001072 057

NX2:

991.
992
993 001051 333
994 001053 346
995 001055 302
996
997 001060 072

301
010
072 002

166 040

998 001063 247

1003 001073 062 166 040

CMA
STA

jIF HERE, SET ACCUM .m. -1
CHKPAR ;Atm SET FLAG TO SAY REPORT PARITY ERR

V[J! i).2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16;50 PAGE 3-22
HCORE.M80
UBEGINNING OF BASIC CONSOLE NULl. JOB ••• BEGINS WITH APROMPT
1005

1007

;COHTINLIE NULL STATE STATUS CHECKS
; CHECK TO SEE IF RUN FLOP HAS DIED

1008 001076 333 300

N2;

lJ~(l6

1009 001100 346 01(\

:lOtO 001102 302 124 002
lOll

1012
1013
1014
1015
1016
1017
1018

001105
001110
00111t
001112
001115
001116
001121

072 231 040
247
365
304 257 016
361
302 313 002
303 130 002

IN

AN I

f,:UNFP;
MQ1 0

JNZ
NX3
;FALL THRl! IF HALT LOOP
LDA
CHKHLT
ANA
A
PUSH PSW
e/llz
HLTCM
POP
PSW
.JNZ
CHKKA
JMP

N3

,***** I/O READ 3000 *****

II S HALT LOOP SEn?  PRINTED
.CRLF: POP
,MUST FIX THE STACK
H
CRLFIN: PCHAR CRCHR iPRINT CARRIAGE RETURN
RBT
1
iGO PRINT CHAR IN TRAILING BYTE
•BYTE CRCHR ,CHAR TO PRINT
PCHAR LFCHR ,PRINT LINE FEED
RBT
,GO PRINT CHAR IN TRAILING BYTE
1
.BYTE LFCHR ,CHAR TO PRINT
,RETURN
RET

CF:OSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16150 PAGE 3-40
VER 6.2 KS10 CONSOLE PROGRAM
HCOi~E.M80
**COI'IMANII DISPATCH LISTU:
1477
1478
1479
1480
14B1
1482
1483
1484
1485
1486
1487
148B

002210
002210
002212
002214
002216
002220
002222
002224
002226
1489 002230
1490 002232
1491
1492 002234
1493 002236
1494 002240
1495 002242
i496 002244
1497 002246
1498 002250
1499 002252
1500 002254
1501 002256
1502
1503 002260
1504 002262
1505 002264
1506 002266
1.507 002270
1508 002272
1509 002274
1510 002276
1511 002300
1512 002302

122 120

140
104
323
104
100
104
224
114
331
114
i20
104
012
114

020
116
212

103
216
115
212
103
213
101
213

111
213
111
213
102
011

125
104
240
104 113
146 213
114 113
132 213
105 113
053 013
114 106
242 214
104 106
251 214
115 113
012 220

.SBTTL UCOMMAND DISPATCH LISTU
iTHIS LIST CONTAINS ALL CHARACTER PAIRS WHICH ARE
,LEGITIMATE COMMANDS TO THE KS10 CONSOLE
CMIILSn
•BYTE fR, 'F' i*REPEAT IN FAST LOOf'*
.AIIDR RPCMII
.BYTE 'II, 'N i*IIEPOSIT NEXn
.A[I[lR BITl5! IINCMD
•BYTE '[I,'C allEPOSIT CRAMi
.AIl[lR BIT15!DCCMD
,BYTE 'n,fl'! ,UIEF'OSIT MEMORYt
.ADIlR BIT15!IlMCMD
,BYTE 'LI 'C i*LOAD CRAM AIIIlRESS*
.AIlDR BIT15!LCCM[I

CONSIDE~~D

.ADIIR

'L, 'A ,*LOA[I MEMORY ADIIRESSt
BITl5! LACMD
'[1,'1 aIlEPOSIT I/O*
BIT15! IlIum
'L, 'I i*LOAII I/O A[lDRESS*
BIT1S! LICMD
'I1,'D atlEPOSIT BUSt
DBCHD
'II, 'K aDEPOSIT KONSOLE*
BIT15!DKCMD

•BYTE
.ADDR
•BYTE
•ArtDR
•BYTE
,AtlDR
•BYTE
.AIIBR
•BYTE
.A[lUR

'L, 'K aLOAD ADR FOR KONSOLEt
BIT15!LKCMD
'E, 'K itEXAMINE KONSOLEt
EKCMD
'Ll 'F iLOArl BIAG FUNCTION
SITIS! LFCMD
'D,JF iDEPOSIT INTO DIAG FUNCTION
BITI5!UFCMD
'i'hiK aMARK MICRO-COnEt
BIT15!MKCMD

.BYTE
,AIIDR
•BYTE
.ADI1R
•BYTE
.AIlDR
•BYTE
•AnDR
.BYTE

VER 6.2 I(S10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-41
HCORE.Mao
**COliMAND DISPATCH LIST**
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545

002304
002306
002310
002312
002314
002316
002320
002322
002324
002326

125
005
120
371
103
336
124
012
124
104

115
220
105
016
105
013
105
014
120
014

•BYTE
.ADDR
.BYTE
.ADDR
.BYTE
.ADDR
.BYTE
.ADDR
•BYTE
.ADDR

'U,'1i j*UNMARK MICRO-CODEt
BIT15!UMCMD
'p, 'E aPARITY ENABLEt
PECMD
'C,/E j*CACHE ENABLE*:
CECtlD
'T, 'E ;*1 MSEC CLOCK ENABLE*
TECMD
'TI'P j*lRAP EHABLE*
TPCMD

002330
002332
002334
002336
002340
002342
002344
002346
002350
002352

123
102
110
207
103
164
123
173
123
201

124
217
101
017

.BYTE
.flDDR
•BYTE
.ADDR
•BYTE
.ADDR
•BYTE
.ADDR
•BYTE
.ADDR

'S, IT aSTARU
BIT15!STCMD
IH, 'A j*HALT*
HACtlD
IC,/O aCONTINUEi
COCtlD
'S,/I jiSIHGLE INSTRUCTi
SICMD
'S, 'M j*START MICRO-CODEt
SMCtlD

002354
002356
002360
002362
002364
002366
002370
002372
002374
002376

115
225
103
214
103
227
103
164
105
173

•BYTE
.ADDR
.BYTE
.ADDR
.BYTE
.ADDR
•BYTE
.ADDR
•BYTE
.ADDR

Ith'R
MRCMD
'C,'S
CSCMD
IC, 'H
CHCIID
Ie, 'P
CPCIID
'E, 'N
ENCMD

117

017
111

014
115
016
122
005
123
014
110

014
120
013
116
012

atlASTER RESEn
jiSTART CPU CLOCKi
jiHALT CPU CLOCK*
jiPULSE CPU CLOCKi
jiEXAMIHE NExn

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-42
HCORE.MSO
**COMMAND DISPATCH LISn*
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1.573
1574
1575
1576
1577
1578

002400
002402
002404
002406
002410
002412
002414
002416
002420
002422

105
024
105
347
105
260
105
113
105
103

012
111
012
103
015
102
011
112
015 -

•BYTE
.ADDR
.BYTE
.ADDR
•BYTE
.ADDR
•BYTE
.ADDR
•BYTE
.ADDR

'E, tM
EMCMD
'E,'I
EICMD
'E,'C
ECCHD
'E, 'Tl
EBCMD
'E,'J
EJCMD

002424
002426
002430
002432
002434
002436
002440
002442
002444
002446

124
172
122
017
132
064
120
247
102
244

122
015
103
015
115
020
115
015
124
021

.BYTE
.ADDR
.BYTE
.ADDR
•BYTE
.ADDR
•BYTE
.ADDR
•BYTE
.ADDR

'T, 'R
TRCMD
'R, 'C
RCCMD
'z, 'M
ZMCMD
'f', ttl
PMCI1D
'B,'T
BTCMD

002450
002452
002454
002456
002460
002462

102
360
114
274
105
037

103
025
102
021
130
217

.BYTE
.ADDR
•BYTE
.ADtIR
•BYTE
.ADDR
•BYTE
.ADDR
.BYTE
.ADDR

'B,/C i*BOOT CHECK*
BCCMD
'L,'B i*LOAD BOOU
LBCI1D
'E,'X i*EXECUTE*
BIT15!EXCMD
IL, 'T i*LAMP TEsn
LTCI1D
'K, 'L i*KLINIK*
KLCI1D

115

i%%%
;%X%
002464 113 114
002466 245 017

i*EXAMINE MEMORY*
aEXAMINE 1/0*
i*EXAMINE CRAM*
aEXAMINE BUS*
i*EXAMINE CURRENT CRAM INFO*
i*TRACE*
i*FUNCTION READ CRAM CONTROL REG*
i*ZERO KS10 MOS MEMORY*
i*PULSE MICRO-CODE •• t:
aBOOT SYS*

VER 6.2 K510 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-43
HCORE.M80
**GOMMAND DISPATCH LIST**
1580
1581
15B2
15B3
1584
1585
15B6
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
159B
1599
1600
1601

002470
002472
002474
002476
002500
002502
002504
002506
002510
002512
002514
002516
002520
002522
002524
002526
002530
002532
002534
002536
002540
002542

105
215
114
300
104
310
115
373
104
324
115
002
1'17
'-"

215
115
207
120
333
124
307
126
014

p'1
(,.(,.

013
122
013
122
013
124
021
123
020
123
021
110
017
102
022
127
017
124
017
124
024

•BYTE
.ADDR
•BYTE
.AIIDR
•BYTE
.AD[lR
•BYTE
.AItDR
,BYTE
.AD[lR
•BYTE
,AIIUR
•BYTE
.AUUR
•BYTE
.AItItR
.BYTE
.ADnR
•BYTE
,A[IDR
•BYTE
.ADDR

'E,'R
ERCMIt
'L, 'R
LRCMD

iiEXAMINE REGISTER*

'{I,'R

aDEPOSIT REGISTER*

DRCMB
'I'\, 'T
MTCMI!
'lit'S
[lSCMD
'1'1f'S
MSCMII
'S, 'H
SHCMU
'M,/B
MBCMD
'P,'W
Plt/CMD
'T,'T
HCMD
'V,'T
VTCMII

alOAD REG1STERi

i*MAGT APE Boon
;*D1SK SELEcn
i*MAGTAPE SELECT:«
;iSHUTIIOWNi
iiMAGTAPE BOOTSTRAP*
iiPASSWORU
i*KLINIK LINE TO TTVi
aVERIFY AGAINST TAPE*

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6{31} 3-MAY-79 16:50 PAGE 3-44
HCORE.tlBO
*iCOHMAND DISPATCH LIST**
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615

002544
002546
002550
002552
002554
002556
002560
002562
002564
002566
002570
002572
002574

126
001
130
054
106
303
102
371
115

147
123
046
000

104
024
061
040
111
223
062
023
115
014
103
014

•BYTE
.ADDR
•BYTE
.ADDR
•BYTE
.ADDR
•BYTE
.ADDR
•BYTE
.ADDR
.BYTE
.ADDR
.BYTE

'IJ,'D iilJERIFY AGAINST DISKt
VDCtlD
'X,'1 iDUMMY
RAMXl
'F, 'I aFILEt
BITI5!FICMD
'B, '2 ittTEMP BOOTCHECK 2i*
B2Ct1D
'M, 'M itiANUFACTURING MODE
tlMCMD
'S, 'C iSOFT CRAM ERROR RECOVERY ON/OFF SWITCH
SCCMD
iEND LIST MARKER
0
I

I

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-45
HCORLM80
CHECKSUMS AS COMPUTED BY SPECIAL 10-BASED PROGRAM
1617

.SBTTL CHECKSUMS AS COMPUTED BY SPECIAL 10-BASED PROGRAM

161S

1619
1620

001
CHECKSl .AIInR 0
.AonR 0
.AIIIIR 0
.ADIIR 0

1621

1622
1623
1624
1625
1626
1627

000

001
002575 052 240
002577 217 301
002601 1,57 340
002603 216 006
1633
000

1628

1629
1630
1631
1632
1634

1635 002605 134 113 123

iPSUEIlO BYTES FOR F:AM NUMBER
;PSUEIIO BYTES FOR RAM NUMBER
i PSUEIIO BYTES FOR HAM NUMBEF:
iPSUEDO BYTES FOR RAM NUMBER

1

2
3
4

•EtHIC

.IF DF,PASS2
CHECKS: .AIIDR CHKSMO iCHECKSUM FOR RAM
•AIIIIR CHKSM 1 ;CHECKSUM FOR HAM
.ADDR CHKSM2 iCHECKSUM FOR HAM
.ADDR CHKSM3 iCHECKSUM FOR RAM
.ENnc
.TITLE VER 6.2 KS10 CONSOLE PROGRAM
INIMS: .ASCIZ /\KS10 CSL.V6.2\/ iPOWER UP

NUMBEH
NUMBEH
NUMBER
NUMBER

1
2
3

4

MESSAGE AND IDENTIFIER

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16150 PAGE 3-46
HeORE.Mao
ii* 'MR' CMD i**
1637
163a
1639 002625
1640 002625 257
1641 002626 323 212
1642 002630 315 227 014
1643
1644

1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
(1)

.SBTTL *** 'MR' CMD ***
;THIS CODE PERFORMS THE 'MASTER RESET' CONSOLE FUNCTION
MRCMII:
XRA
;SET ACCUM=O
A
OUT
CPUCTL ;5ET O'S TO 'RUN,EXECUTE,CONT'
CALL CHCMD ,AND INSURE CPU HAS STOPPED ...
,ISSUE 51'110 BUS RESET
A,5
MRINT: MVI
HHTS FOR [IF' RESEP, & •CRAM RESET·
OUT
CRMCTL i***** 1/0 WRT 204/5 *****

002633 076 005
002635 323 204

J

,BITl FOR RESET
,ISSUE RESET,SET CONSOLE MOBE

002637 076 200
002641 323 100

liVI

A,~B10000000

OUT

RESET

002643 315 356 016

CALL

SMFINI ,GET CURRENT PARITY SETTINGS & SET IN KS

002646 072 355 040
002651 323 205

LIlA
OUT

TRAPEN ,BIT FOR 'CLR TEN INT' SHOULB BE LOW
DIAG
i***** 1/0 WRT 205/XX *****

002653
002655
002660
002661
002661

B,O
MVI
CALL STATEM
•BYTE ~012
ENDCMD
RET

006 000
315 326
012
311

o~"!

,).:.

HULL SET NO BITS IN THE STATE WORD
iSET THE STATE
,OFF THE STUFF WE BONT WANT
iANn OUT
,RETURN TO CALLER

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-47
HCORE.MBO
****INTERRUPT HANDLER**i*
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
16B1
16B2
1683
16B4
1685
16B6
1687
168B
1689
1690
1691
1692
1693

002662
002665
002666
002670
002671
002673
002674
002676

041
345
333
107
333
260
346
302

206 006
201
203
070
067 010

.SBTTl ****INTERRUPT HANDlER****
jHERE ON INTERRRUPTS •• REGS ALREADY SAVED AT "RST' BLOCK
HrENDIN jPUSH OUR FAVORITE EXIT ADDRESS ON THE STACK
INTRP: LXI
; AND WE CAN DO "RETI'S TO lEAVE ROUTINE
PUSH H
CTYCTl ;GET CTY TTY STATUS
IN
B,A
iSAVE IT IN THE IB" REG FOR ACOUPLE INSTRS
MOV
IN
REMCTL ,NOW FETCH UP THE REMOTE STATUS
,AND THROW BOTH STATUS'S TOGETHER
ORA
B
"'070 ;ANY ERR BITS SET??
ANI
JNZ
HERR iGO TELL ERR IF YES

002701 170
002702 346 002
002704 302 335 005

;FAll THROUGH IF NO ONE
MOV
ArB
ANI
2
JNZ
INTCH

002707 333 202
002711 346 177
002713 107

;FALL HERE IF IT WAS AKLINIK CHAR
IN
REHDAT ;FETCH OUT THE CHARACTER
"'0177 ;OFF THE PARITY BIT
ANI
MOV
BrA
;MAKE SECOND COPY OF CHARACTER IN 'B'

002714 376 031
002716 302 331 005
002721
002724
002725
002730

072 251 040
247
302 165 032
170

002731 052 346 040
002734 351

CPI
JNZ

IN ERROR. NOW SEE WHO THE CHARACTER IS FROM
;COPY CTY STATUS INTO ACCUM
iIS ACHARACTER IN THE CTY UART??
,JUMP IF YES. FIND CHARACTER IN CTY UART.

CNTLY ;BEFORE DISPATCHING, SEE IF THIS IS 'CONTROL-Y'
KL.DSP ;IF NOT, DO EVERYTHING AS PER NORMAL

iAHA. IT WAS ACONTROL-Y •• NOW SEE IF IN MM MODE
MMFLG ;GET FLAG
LDA
ANA
A
;SET 80BO CONDITION CODES
JNZ
MMERR1 ;IF YES, MM HODE, THEN GO ABORT WHAT EVER YOU ARE DOING
A,B
MOV
;NOW REPLACE THE CHAR WE JUST BOMBED
iELSE FALL THROUGH
KL.DSP: LHLD MODDIS ;GET CURRENT KLINIK MODE DISPATCH
PCHL
,DISPATCH TO DO THE RIGHT THING

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-48
HCORE.MBO
****INTERRUPT HANIILER****
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716

002735 333 200
002737 346 177
002741 107

,CHECK IF WE ARE IN USER MOIlE
INTCH; IN
CTYIIAT ;INPUT CHARACTER
~0177
, STRIP BIT 8
ANI
B,A
iSAVE CHAR FOR 2" INSTRUCTIONS
MOV

002742 072 247 040
002745 346 020
002747 312 373 005

JSEE IF THIS IS MANUFACTURING MODE BEFORE WE CONTINUE
CSLMOIlE ,GRAB CURRENT CSL MODE
LDA
ANI
•MODE4 iAND SEE IF ITS MODE 4
CMNBUF iIF NO, CTY INPUT NORMAL
JZ

002752 170
002753 315 123 004

iPLACE YOU GO IF MANUFACTURING MODE., CTY CHARS ARE JUST SENT TO KLINIK
A,B
,GRAB CHARACTER TO BE SENT TO KLINIK
MOV
CALL KCHRO ;ONLY ECHO CTY STUFF AGAINST THE KLINIK LINE

002756 376 031
002760 300

iNOW SEE IF THAT WAS AMOItE CHANGE CHAR WE JUST SENT IIOWN THE LINE
CNTLY iIS IT 'CONTROL-Y·
CPI
iIF WAS NOT, SIMPLY GET OUT
RNZ

002761
002763
002765 315 101 034
002770 303 255 001

CLRIl
CLRB
CALL
JMP

KLNKSW iFORCE RE-EXAMINE OF THINGS
MMFLG ,TURN OFF MANUFACTURING HOIlE
SETM2 ;FORCE KLINIK LINE IMMEDIATELY INTO MOllE 2
REINi

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBL£R 6(31) 3-MAY-79 16:50 PAGE 3-49
HCORE.M80
****INTERRUPT HANDLER****
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
(1)
(1)

1731
(1)
(1)

1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745

002773
002773
002776
002777
003000

072 156 040
247
170
302 277 006

jALSO STANDARD
HODE3:
CHNBUF: LDA
ANA
HOV
JNZ

COMMON ENTRY POINT WHEN KLINIK LINE PARALLELS THE eTY
USRMD
A
A,B
USER

;GET USER MODE FLAG
;IS IT SETn
iCOPY CHAR INTO ACCUH(GET HERE FOR KLINIK OR CTY)
;JUHP IF IN USER HODE •••

003003 376 017
003005 302 025 006

,FALL THRU TO HERE IF NOT USER MODE AND WE NEED DO SOMETHING WITH CHAR
CPI
CNTLO ;CONTROL 011?
JNZ
SKP2 iJMP IF NO

003010
003010
003011
003012
003012
003013
003014
003017
003021
003024

;ELSE FALL INTO
PCHAR
RST
•BYTE
PCHAR
RST
•BYTE
LDA
ADI
STA
XRA

CONTROL-O CODE •• STOP THE PRINTER
UPARR
1
;GO PRINT CHAR IN TRAILING BYTE
UPARR ,CHAR TO PRINT
OCHR
,GO PRINT CHAR IN TRAILING BYTE
1
OCHR ,CHAR TO PRINT
NOPNT ,GET CURRENT STATE OF "NO PRINT"
n0200 iZAP PRINT FLAG
NOPNT ,PUT IT BACK
A
iZAP CHAR SO WE CAN EARLY EXIT

SKP2:

CPI
CZ

CNTLS
CNTS

,IS IT CONTROL-S
,CALL IF YES

CPI
JNZ

CHTLO
SKP6

,IS IT CONTROL-Q
,JHP IF NO

317
136
317
117
072 120 040
306 200
062 120 040
257

003025 376 023
003027 314 141 007
003032 376 021
003034 302 042 006
003037
003041 257

;FALL TO HERE IF YES, ZAPP CNTL-Q FLAG
CLRB STPPD HAP! !
,CLEAR ACCUM
XRA
A

VER 6.2 KSI0 CONSOLE PROGRAti CROSS - tlICRO PROCESSOR ASSEtiBLER 6(31) 3-tlAY-79 16:50 PAGE 3-50
HCORE.M80
****INTERRUPT HANDLER**i*
1747
1748
1749
1750
1751
1752
1753
1754
1755
(1)

(1)

1756
(1)
(1)

1757
(2)
(2)
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772

003042 062 157 040
003045 376 032
003047 312 365 006

SKP6:

003052 376 025
003054 302 071 006
003057
003057
003060
003061
003061
003062
003063
003063
003064
003065
003070

317
136
317
125
347
002
315 160 010
257

STA
CPI
JZ

RPEND
CNTLZ
eNTZ

jANY OTHER CHARS tlEAN END REPEAT LOOP
jCONTROL Z?'?
jJtlP IF YES

CPI
JNZ

CNTLU
SKP8

;CONTROL-U'?'?
jJMP IF NO

jFALL TO HERE TO DO THE
PCHAR UPARR
RST
1
•BYTE UPARR
PCHAR UCHR
RST
1
.BYTE UCHR
PCRLF
RST
4
•BYTE 2
CALL BFRST
XRA
A

CONTROL-U CODE

SKPS:

JGO PRINT CHAR IN TRAILING BYTE
;CHAR TO PRINT
;GO PRINT CHAR IN TRAILING BYTE
jCHAR TO PRINT
jAND ACR-LF TO GIVE CLEAN LINE
jCLEAR INPUT BUFFER
jAND SET ACCUM FOR EARLY OUT

CPI
JZ

CNTLC
CNTC

;CONTROL-cn
jJliP IF YES

003076 376 000
003100 310

CPI
RZ

Q.OUT

JSEE IF tlUST TAKE AQUICK OUT
jLEAVE IF YES

003101 376 054
003103 302 112 006

CPI
JNZ

COMMA
till

;IS IT ACOMMA'?
jIF NOT COMMA, AVOID THIS NEXT COUPLE INSTRUCTIONS

003071 376 003
003073 312 146 010

003106 041 225 040
003111 064

jFALL TO HERE IF WAS ACOMtiA
H,CliCNT jPOINT TO THE COMIiA COUNTER
LXI
;UPDATE •• AND CONTINUE
INR
M

•

VER 6.2 KSI0 CONSOLE PROGRAH CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-HAY-79 16150 PAGE 3-51
HCORE,MBO
***UNTERRUPT HANIILER****
1774
1775 003112 376
1776 003114 314
1777
1778 003117 376
1779 003121 314
1780
1781 003124 376
17B2 003126 314
1783
1784 003131 052
1785 003134 376
1786 003136 312
1787

034
,)"1"
... .:..oJ

iNOT SPECIAL CHAR •• PROCESS NORMAL
CPI
CNBCK ;CONTROL BACKSLASH SHOULD LOOK LIKE CRLF
CZ
EOMRK iCALL IF YES

!ill:

006

015
225 006

CPI
CZ

CRCHR
EOMRK

,CARRIAGE RET??
;CALL IF YES

012
225 006

CPI
CZ

LFCHR
EOIiRK

JUNE FEED??
,CALL IF YES

215 040
177
244 006

LHLD
CPI
JZ

BUF.
RBOUT
RUB

,POINTER TO FIRST FREE BUFFER PLACE
,RUB-OUT CHAR??
UHf' IF YES

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6{3U 3-MAY-79 16150 PAGE 3-52
HCORE.MBO
**UINTERRUPT HAN[lLER****
1789
1790
1791
1792
1793
1794
1795
1796
1797
179B
1799
1800
IB01
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1B16
1817
1818
1B19
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833

iOTHERWISE ITS AREGULAR CHAR ••
,THIS IS [lUMB CODE FOR FIRST GO AROUN[I
,TYPE-AHEArt WONT WORK
003141 315 214 006

CALL

UP.LO

,CONVERT SO PROGRAM INTERNAL ONLY SEES UPPER CASE

003144 167
003145 043
003146 042 215 040

MOV
INX
SHLI!

MfA
H
BUF.

,CHAR INTO BUFFER SPACE
;UPDATE PNTR
,AND REPLACE PNTR

003151 107
003152 326 040
003154 372 171 006

MOV
SUI
JM

B,A
"'040
NOECH

,SAVE THE CHAR JUST TYPED
,CHECK IF ITS APRINTING CHAR
HF IT IS NONE-PNT .. GO NO ECHO

003157 170
003160 326 176
003162 362 171 006

MOV
SUI
JP

A,B
"'0176
NOECH

iGET CHAR BACK
iIS IT TOO HI TO BE PRINTING CHAR??
;IF YES, GO NO ECHO

003165 170
003166 315 010 004

MOV
CALL

A,B
PCHR

,GET CHAR BACK AGAIN
,NOW GO ECHO IT •••••

003171
003174
003175
003177
003202
003205

072
074
376
312
062
341

161 040

003206
003207
003210
003211
003212
003213

341
321
301
361
373
311

NOECHI LItA
INR
CPI
JI
STA
POP
,FALL INTO ENn
EN[!IN! POP
POP
POP
POP
EI
RET

003214
003216
003217
003221

376 141
370
376 173
360

iAND ACCEPT LOWER CASE
"0141
UP.LOt CPI
RM
"'0173
CPI
RP

120
001 004
161 040

003222 326 040
003224 311

BFCNT

iGET CHAR COUNT
,BUMP UP
80.
HOO MANY??
BFOVR ,JMP BUFFER OVERFLOW IF YES
BFCNT ,REPLACE COUNT
H
;CLEAR STACK OF THE PSEUDO RETURN FIRST
INTERRRUPT CODE IF CHAR COUNT OK
,RESTORE REGS
H
A

n
£!

PSW
,INTERRUPTS BACK ON
iANII OUT
AS REQUESTED
iLOW CASE lAB OR BETTER??
iIF MINUS, NOT LOW CASE, CONTINUE
iLOW CASE III OR WORSE??
jIF POS, OR IERO, ITS NOT LOW CASE RANGE

iFALL INTO HERE IF IT WAS LOWER CASE ••••
"'040
SUI
iMAKE IT UPPER FOR ALL
RET
iANB OUT

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-53
HCORE.M80
***UNTERRUPT HANttLER****
1835
1836 003225
(2) 003225 347
(2) 003226 002
1837
1838 003227 072
1839 003232 074
1840 003233 062
1841 003236 257
1842 003237 062
1843 003242 057
1844 003243 311
1845
1846
1847
1848 003244 072
1849 003247 247
1850 003250 310
1851 003251 075
1852 003252 062
1853
1854 003255 053
1855 003256 042
1856 003261
(2) 003261 317
(2) 003262 057
1857 003263 176
1858 003264 315
1859 003267 376
1860 003271 300
1861
1862 003272 041
1863 003275 065
1864 003276 311

jCODE FOR END-OF-LINE CHAR TYPED IN
iGIVE CR-LF
EOMRK: PCRLF
RST
4
•BYTE 2
225 040
204 040
225 040

161 040

161 040
215 040

010 OM
054
225 040

LDA
INR
STA
XRA
STA
CMA
RET

CMCNT
A
EOL
A
CMCNT

iCODE FOR ARUB-OUT
RUB:
BFCNT
LDA
ANA
A
RZ
DCR
A
STA
BFCNT

iGET COUNT OF COMMAS
iUP BY ONE, FOR THE eR-LF
iAND SET EOL MARKER
ieLEAR ACeUM
iSET LOCATION
iSET ACCUM =-1
iRETURN

i6ET CURRENT CHAR COUNT
iIS IT 011
iGOOD, NOTHING TO DELETE
iDECREMENT OTHERWISE
iAND PUT IT BACK

iAND BACK UP THE BUFFER PNTR
DCX
H
iPUT IT BACK
SHLD BUF.
PSLASH
iTYPE SLASH AS RUBOUT INDICATOR
i60 PRINT CHAR IN TRAILING BYTE
RST
1
•BYTE SLASH iCHAR TO PRINT
A,M
;GET CURRENT CHAR IN BUFFER
MOV
CALL PCHR iECHO WHAT WAS RUBBED OUT
CPI
COMMA iOH WAIT, WAS THAT ACOMMA??
iJMP IF NO, TAKE ANORMAL OUT
RNZ
iFALL THRU IF WAS ACOMMA
H,CMCNT ;GET COMMA COUNT
LXI
iDECREMENT
DCR
H
iAN EXIT THIS PLACE
RET

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-54
HGORE.M80
****INTERRUPT HANflLER****
1866
t8b7
1868
lS69
J.870

003277 376 034
003301 302 160 007

1871 003304 333 301
lB72
1873

1874
1875
1876
1877
1878
1879
1880
1881
(U
(1)

iHERE IF USER MODE FLAG IS SET ••
USERt CPI
CNBCK ;IS IT In\'n
JNZ
TENCHR jIF NOT, THEN ITS ACHAR FOR THE KS-l0
iBEFORE WE LEAVE USER MODE, WE MUST CHECK THE CONSOLE ENABLE SWITCH
END.USR: IN BOOTSW
i***** 1/0 Rfl 301 ***** IS CONSOLE LOCKEfi UP??

003306 346 004
003310 300

iBIT 2 IS 'LU' IF CONSOLE ENABLE IS TRUE. IF BIT 2 IS 'HI', WE ARE DISABLED
iflUE TO THE HARflWARE INVERSION OF SIGNAL LEVELS
n04
ANI
;CHECK BIT 2
RNZ
iIF HI, WE ARE DISABLED AND WILL IGNORE

003311
003313
003316
003316
003317
003321
003324
003325
003326
003327
003330
003331
003332

;IF YES, USER MODE MUST
CLRB NOPNT
CALL CLRUSE
PLINE RIIYMS
RST
3
.ADDR RDYMS
LXI
H,REINI
lOUT: POP
D
[I
POP
POP
II
POP
B
POP
PSW
SP
INX
INX
SF'

315 346 006
337
335 006
041 255 001
321
321
321
301
361
063
063

1882
1883
1884
1885
1886
1887
1888
1889
Hl90
1891 003333 373
1892 003334 351
1893 003335 105
1894
1895 003346
1896 003350 072
1897 003353 247
1898 003354 310
1899
1900
1901 003355 315
1902 003360 315
1903 003363 034
1904 003364 311

BE CLEAREII
iCLR NO PRINT FLAG IN CASE WE WERE IN "INTERNAL MOIlE"'
iEXIT FROM USER MOIlE
jtENABLED'
iPRINT LINE OF CHARS
iBUFF TO PRINT
iSET UP AN EXIT ADIIRESS
iCLEAR THE PSEUIIO RETURN TO 'ENDIN' FROM STACK
iCLEAR ORIGINAL SAVED 'H,L" OFF STACK

iNOW GET OLII RETURN ABnR OFF STACK

iENABLE INTS ••
jANII GO TO PROMPT
PCHl
RIIYMS: .ASCIZ IENABLEB\/
EI

116 101
251 040

CLRUSE: CLRB
LDA
ANA
RZ

050 034
117 004

,IF WAS SET, MUST BROP
CALL SETM
CALL KCHR
•BYTE CNBCK
RET

USRtlii
MMFLG
A

j ANIt

CLEAR THE USER M0I1E FLAG
,BEFORE DROPPING USER, SEE IF IN MM MOIIE
iSET 8080 FLAGS
iIF NOT MM MOBE, OK TO GET OUT
BACK TO MODE 4
,NON-PRINTING CHAR, ALSO TELLS HOST TO SWITCH MOBES
,'CONTROL-BACKSLASH IS THE MAGIC CHARI
,JUST LEAVE

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-55
HCORE.M80
****INTERRUPT HANDLER****
1906
1907 003365 315
1908 003370 315
1909 003373
1910
1911 003375
(1) 003375 337
(1) 003376 006
1912 003400 041
1913 003403 303
1914 003406 125

017 007
160 010

007
335 001
324 006
123 122

iCONTROl-Z CODE ••• ENTER
CIHZ; CALL SETUSE
CAll BFRST
ClRB KLNKSW

Ui

f'LINE
RST
.ADIIR
LXI
JMP
.AselZ

USER MODE
;SET THE USER MODE
iBUFFER RESET •• RE-INIT TTY INPUT BUFFER
iFORCE LIGHTS TO GET FIXED AFTER ENTER USER

iPRINT 'USER MODE'
3
iPRINT LINE OF CHARS
U
iBUFF TO PRINT
H,NULLJ ,LOAD 'HrL WITH APLACE TO GO
lOUT
iAND GET OUT
IUSR MOIl\!
U

I

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16150 PAGE 3-56
HCORE.M80
***UNTERRUPT HANDLER****
1916 003417
1917
1918 003417
(1) 003417
1919 003420
(1) 003420
(1) 003423
1920 003425
(1) 003425
1921 003426
1.922 003431
1923 003434
1924
1925 003435
1926 003440
1927 003441
1928 003442
1929 003443
1930
1931 003444
1932 003447
1933 003450
1934 003451

327
315 216 030
031 000
367
072 255 040
041 047 040
167

SETUSE:
,HERE IS THE DEPOSIT WORD 31 CODE ••
,DONT PRINT THIS STUFF
WRIt31: INTON
,GO SET INTERNAL MODE
RST
2
EXAM 31
;MUST SAVE CURRENT STATE OF KEEP ALIVE &RELOAD BITS
CALL EXAMSH ;AND DO EXAM ASSUMING SHORT ADDRESS
•AnIlR 31
;AIIIIR TO BE ZAPPEII PASSEII AS TRAILING ARG
INTOFF
HTS OK NOW
,GO EXIT FROM INTERNAL MOIlE
RBT
6
LnA
GaCOIlE ,BYTE 28-35 GETS THE REASON FOR RELOAD
H,I1MnAT iMAKE H,L POINT TO THE nESIREII BUFFER
LXI
M,A
MOl)
,SET THE GOCODE BITS INTO THE BYTE 'nMDAT"

072 355 040
007
007
007
107

LUA
RLC
RLC
RLC
MOV

TRAPEN ,NOW GRAB THE TRAP BIT
,AND SHIFT IT TO THE APPROPRIATE POSITIotH20 TO 40)
i(40 TO 1(0)
;(100 TO 2(0)
BfA
iSAVE IT IN B FOR AWHILE

072 251 040
247
365
312 056 007

LDA
ANA
PUSH
JZ

MMFLG
A
PSW
WRD.PR

;GET 'MAINTENANCE MODE' FLAG
iSET 8080 FLAGS
;SAVE THE STATE OF THE FLAGS FOR LATER USE
iIF NO MM MOIlE, I10NT SET ABIT

1935

1936
1937 003454
1938 003456
1939 003457
1940 003460
1941 003461
1942
1943 003462
1944 003465
1945 003466
1946 003467
1947 003472
1948 003474
1949
1950
1951
1952 003477
1953
1954 003501
1955 003502
1956 003503
lQr:::7
'w, 003504
1958 003507
1959 003511

;WAS

076 100

260
043
043
167
072
017
107
072
346
312

354 040
247 040
014
101 007

MonE, MUST SET THE BIT
Af~0100 iA BIT FOR MM MODE
MVI
WRD •PR: OF:A
;THROW TOGETHER WITH THE TRAP BIT
B
;PUT INTO THE I1EPOSIT BUFFER
INX
H
INX
H
iTHIS IS LOC 'DHDATt2'
MOV
MIA
1'11'1

LDA
RRC
MOV
LIlA
ANI
JZ

PARBT

iNOW FOR THE SELECTION OF PARITY BITS
iRIGHT ONCE TO FREE UP 200 WEIGHT
B,A
iSAVE IN B REG
CSLMODE JGET CURRENT KLINIK MOIlE
.MOIlE2! .HOIIE3 tIF EITHER OF THESE MODES, MUST SET THE BIT
WRII.I1P iJUMP IF NOT THOSE BITS

076 100

iHERE IF ONE OF THOSE MOliES WAS SET
Af~0100 iA BIT TO SET
MVI

260
017
107
072 015 040
346 300
260

WRB.I1P; ORA
RRC
HOV
LnA
ANI
ORA

1960
1961 003512 043

1962 003513 167
1963 003514
(1j 003514 247
(1) 003515 315 217 030

INX
MOV
[lEPOS
ANA
CALL

iTHROW THIS BIT WITH THE OTHERS
jFINAL JUSTIFICATION
Hmw SAVE THIS GOOn STUFF IN 'B'
BfA
EHBUFt3 JGET THE BYTE THAT HAS CURRENT 'KA' BIT
~O300
lOFF EVERYTHING ELSE
iNOW THROW WHOLE HESS TOGETHER AGAIN
B

B

H

M,A
31
A
DEPSHT

iBUMP POINTER TO 'I1MIlATt3'
lANII PUT nATA INTO RAM
iPUT INTO MOS MEMORY AT LOC 31
iCLR 'C-BIT' FOR USE BY COMMON CODE
iANn 00 THE lIEPOSIT ASSUMING SHORT AIIIIR

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-57
HCORE.MBO
****INTERRUPT HANIILER****
(1)

003520 031 000

1964 003522

1965
1966 003524
1967 003525
1968 003527
1969 003532
1970
1971
1972 003533
1973 003536
1974
1.975
1976 003541
1977 003544
1978 003545
11'79 003546

361

076 377
062 156 040
310
315 205 035
303 101 034

176

057
247

310

'~03547

19B2
19B3
19B4
19B5
19B6
19B7
19BB

003550 167
003551 373

1.989

31
jAI![lR TO BE ZAPPEII PASSEII AS TRAILING ARG
GOCO[lE iCLEAR THE RELOA[I COIlE

POP
MVI
STA
RZ

PSW
A,-l
USRMII

iTHIS WORII HAS FLAGS SET FROM BEFORE WHEN WE TESTED 'MMI
,FLAGS WONT CHANGE WHILE WE SET THE USER MODE FLAG
iSET USER MOIlE ... NOW ItO SOMETHING BASED ON THE FLAGS
iIF NOT SET, ASIMPLE OUT

,HERE IF SET, WE MUST SENII AN "ACK" I10WN KLINIK LINE BEFORE ANYTHING ELSE
iIACK" [lOWN THE KLINIK
CALL ACK
JMP
SETM2 ,ALSO SET MODE 2 ANI! USE HIS 'RET' TO RETURN
;TYPE[! •CONH:OL -S TO STOP CONSOLE OUTPUT
H,STPPD iPOINTER TO STOPPED FLAG
CWTS: LXI
A,M
,GET THE Fl.AG
MOV
lSET .EG, 0 IF WAS ALREADY SET
CMA
iNOW SET FLAGS, ICAUSE CMA DOESN'T
ANA
A
;IF .EG, 0 NOW, MERELY LEAVE •• AlREADY SET
RZ
I

041 162 040

1980
1981

003552
003553
003554
003555

•AIl DR
CLRB

176
247
310
303 152 007

MOV

M,A

;AND SET THE FLAG .EG. -1 IF HERE
iLET THE CNTl-Q THRU

jhM
A

;GET FLAG 5T AT US
;IS IT SET??'?
,IF NOT,THEN TIME TO QUIT
iSTAY IN lOOP IF FLAG STILL SET

EI

CNTSU MOV
ANA
F:Z
JMP

CNTSl

VEF: 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-58
HCORE.M80
**8080 TO KS10 CHARACTER SERVICE**
1991
1992 003560 062
1993 003563 076
1994
199~i 003565 323
1996 003567 257
1997 003570 323
1998 003572 323
1999 003574 323
2000 003576 3':>1:
2001 003600 323
2002
2003 003602 076
2004 003604 323
2005
2006
2007 003606 207
2008 003607 323
2009
2010 003611 072
2011 003614 323
2012 003616 076
2013 003620 323
2014
~v

035 040
032

.SBTTL **8080 TO KS10 CHARACTER SERVICE**
TENCHRt STA
CHRBUF iPUT CHARACTER IN ARAM BUFFER
A,~·032 ;DESIRED AItDRESS FOR DEPOSTING CHARACTER
IWI

105
107
106
110
112

OUT
XRA
OUT
OUT
OUT
OUT
OUT

A2835
A
A2027
A1219
W1219
W0411
WOO03

alRITE ONLY RELEVANT PIECE Of THE ADnRESS
;THEN CLR ACCUM
iANII CLR THE REST OF THE HAR[lWARE AnDRESS REGISTER

002
113

MVI
OUT

~l!02

iEIT TO SAY 'WRITE FUNCTION'
i***** I/O WRT 113 **t**

103

115
035 040
102
001
104

2015

2016 003622 323 114
2017
2018 003624 076 360

iTHE FOLLOWING 'ADIl A' WORKS BY LUCK •• I.E. 2+2=4
ADD
A
iBIT INTO ACCUM FOR 'COM/ADR CYCLE'
OUT
SUSARS i***** 1/0 WRT 115/4 *****
LIlA

OUT
MVI
OUT

003626 323 210
003630 076 001
003632 323 116
003634 323 116
003636 311

CHRSUf
W2835
A,l
W2027

;NOW
iPUT
; ANn
iPUT

GET THE CHARACTER WE WANT
IT IN THE HARDWARE REGISTER
GET THE VALID BIT TO GO WITH THE CHARACTER
IT IN THE HARDWARE REGISTER

iAND BY LUCK, THE ACCUM HAS JUST WHAT WE NEED FOR THE NEXT STEP
OUT
DTARS i***** 1/0 WRT 114/1 *****
MVI

2019

2020
2021
2022
2023
2024
2025
2026
2027

AOO03

iCLEAR PIECES OF IlEPOSIT nATA WHICH MUST BE ZERO

OUT
iDO THIS TWICE
MVI
OUT
OUT

RET

iBITS FOR 'CHECK NXM','CONSOLE REO','T ENB FOR COM/AIlR I
jlT ENS FOR DATA CYCLE t
BUSCTL ;*****1/0 WRT 210/360 *****
A,~0360

TO GUARANTEE THAT
JBIT FOR
Afl
INT2KS iSET THE
INT2KS iSET THE

THE INTERRUPT HAPPENS
SETTING INTERRUPT TO THE KS10
INTERRUPT
INTERRUPT

; ANI! EXIT NORMALLY .. "

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEHBLER 6(31) 3-MAY-79 16:50 PAGE 3-59
HCORE.M80
**8080 TO KSI0 CHARACTER SERVICE**
2029
2030
2031
2032
2033 003637
(1) 003637
2034 003640
2035
2036
2037 003641
2038 003644
2039
2040
2041
2042 003646
(1) 003646
(l) 003651
2043 003653
(1) 003653
2044 003654
2045 003657
2046 003660
2047
2048 003663
2049 003664
2050 003667
2051 003671
2052
2053
2054 003674
2055 003675
2056 003677
2057
2058 003702
2059 003704
2060
2061 003707
2062 003712
2063 003713

327
363

iENTER HERE WITH THE CHAR IN THE ACCUM
.SBTTL **KSI0 TO 8080 CHARACTER SERVICE**
iROUTINE FOR HANDLING INTERRUPT CHARACTERS FROH ARUNNING KSI0.
iONLY CHARS FROM KS TO CTY IMPLEMENTED
iSET UP INTERNAL HODE
CHRRDY: INTON
;GO SET INTERNAL MODE
RST
2
iCOHHON CODE,NOT TO BE DISTURBED
DI

072 355 040
323 205

iDISABLE INTERRUPTS FOR THIS OPERATION
TRAPEN ;GET DEFAULT FOR THE TRAP ENABLE BITS
LDA
OUT
DIAG i*****I/O WRTI TO CLR THE INTERRUPT*****

315 216 030
035 000
367
072 013 040
247
312 336 007

107
072 247 040
346 013
302 330 007
170
376 001
312 314 007

iFALL TO HERE IF YES WE ARE IN KLfNiK HODE 2•• ITS POSSIBLE THAT THIS INTERRUPT
iIS FROH THE KLINIK COMM WORD, FOR THE KLINIK LINE
EXAM 35
iEXAH THE KLINIK COMM WORD
CALL EXAMSH iAND DO EXAH ASSUMING SHORT ADDRESS
.ADDR 35
iADDR TO BE ZAPPED PASSED AS TRAILING ARG
INTOFF
iKEEP THIS FLAG IN STEP
RST
;GO EXIT FROH INTERNAL MODE
6
LDA
EMBUF+1 iGRAB THE CONTENTS OF THE BYTE WITH THE CONTROL KEY
ANA
iSET 8080 FLAGS
A
CTYONLY iIF CONTROL KEY CLEAR, NOTHING FROM KLINIK, TRY CTY
JZ
MOV
LDA
ANI
JNZ

B,A
iSAVE THE DATA IN THE ACCUM FOR ALITTLE WHILE
CSLMODE iGET CURRENT HODE •• DECIDE IF HUST THROW AWAY CHARS, OR
.MODEO!.MODE1!.MODE3; JUST ACT AS ANULL BIT BUCKET
NULKL iJUHP TO ANULL ACTION IF ANY OF THESE 3 HODES

iNDY HERE IF CONTROL KEY IS .NE. 0
A,B
iRETRIEVE DATA
HOV
iIS IT THE KEY FOR ASIMPLE CHARACTER TO BE OUTPUT??
CPI
1
KLPCHR iIF YES, GO PROCESS THE CHARACTER
JZ

376 002
302 065 010

CPI
JNZ

iIS IT FOR AHANGUP
2
NOACTN iNOPE, IGNORE ENTIRELY

315 132 034
373
311

CALL
El
RET

KILL.KLINIK HUP, HANG IEH UP .
iIDENTICAL CODE TO LOCATION 'NOACTN", BUT THE 2 BYTES
i HERE ARE CHEAPER THAN A"JHpl •• I/M OUT OF PROM SPACE

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-60
HCORE.M80
**KS10 TO 8080 CHARACTER SERVICE**
2065
2066 003714
(1) 003714 333 203
(1) 003716 346 001
2Ob7 003720 312 314 007

iCODE FOR PRINTING THE
KLPCHR: TSTRIIY REMCTL
IN
REMCTL
ANI
01
KLPCHR
JZ

DESIRED CHARACTER ON THE KLINIK LINE
iSEE IF THE LINE IS READY FOR THE NEXT CHARACTER
iREAD DESIRED UART STATUS
jCHECK IF SET; ZB1T=O IF READY; ZBIT=l IF NOT YET READY
iIF NOT READY YET, BETTER WAIT LONGER

2068

2069
2070
2071
2072
2073

003723
003726
003730
003732
2074 003735

072 012 040
323 202
076 035
315 017 010
363

,HERE WHEN REAllY
LBA
EMBUF
REMIiAT
OUT
A,"035
NULKU MVI
CALL nOCOM
III

;GET THE CHARACTER
;PRINT IT
iNOW MUST CLEAR THE WORn, AND INTERRUPT TO SAY DONE
JGO COMMON CODE
iKEEP INTERRUPTS OFF BECAUSE TTOCOM TURNED IT ON

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-61
HCORE.M80
**KSI0 TO 8080 CHARACTER SERVICE**
2076 003736
(1) 003736
2077 003737
(1) 003737
(1) 003742
2078 003744
(1) 003744
2079 003745
2080 003750
20Bl 003752
2082
20B3 003755
2084 003760
20B5
2086
2087
2088 003761
(1) 003761
(1) 003763
2089 003765
2090
2091
2092
2093
2094 003770
2095 003773
2096 003775
2097

CTYONLy: INTON
RST
EXAH
CALL
315 216 030
033 000
.ADDR
INTOFF
367
RST
072 013 040
LDA
CPI
376 001
JNZ
302 065 010
327

072 012 040
107

LDA
HOV

iDON'T PRINT THIS CRUll
iGO SET INTERNAL HODE
iGET THE COMMUNICATION WORD
iAND DO EXAM ASSUHING SHORT ADDRESS
iADDR TO BE ZAPPED PASSED AS TRAILING ARG
iINTERNAL HODE OFF
iGO EXIT FROM INTERNAL HODE
6
EHBUFf1 i6ET THE INTERRUPT CODE
iIS INTERRUPT CODE .EQ. 1??
1
NOACTN iJUHP TO "NO ACTION' IF NOT, CODE OUT OF BOUNDS

2
33
EXAMSH
33

EMBUF
BrA

iACTUAL CHAR TO ACCUM
iAND SAVE IT IN THE BREG

333 201
346 001
312 361 007

iCODE TO PRINT ACHAR PASSED FROM THE KS-I0 CPU. CODE INTERRUPTS
iTHE 10 WHEN THE CHARACTER HAS FINISHED PRINTING
CTYPCHR: TSTRDY CTYCTL iCHECK IS THE XMITTER READY??
CTYCTL iREAD DESIRED UART STATUS
IN
ANI
01
;CHECK IF SET; Z8IT=0 IF READY; IBIT=1 IF NOT YET READY
JZ
CTYPCHR iLOOP UNTIL IT IS

072 247 040
376 010
302 012 010

iFALL THRU WHEN READY
i8UT BEFORE PRINTING, CHECK THE KLINIK LINE TO SEE IF IT GETS THE
;CHARACTER TOO
CSLHODE iCHECK THE KLINIK MODE
LDA
CPI
•MODE3 iIS THE KLINIK PARALLEL TO THE CTY LINE??
JNl
CTYOUT ;JUMP IF NO. KLINIK DOES NOT GET THIS CHARACTER

2098

2099 004000

004000 333 203
004002 346 001
2100 004004 312 000 010
(1)

(1)

iFALL HERE IF YES, KLINIK LINE GETS APIECE OF THIS CHARACTER TOO.
KLTOOt TSTRDY REHCTL iSEE IF KLINIK LINE IS READY
REHCTL ;READ DESIRED UART STATUS
IN
;CHECK IF SET; ZBIT=O IF READY; IBIT=1 IF NOT YET READY
ANI
01
KLTOO iIF NOT YET, GO BACK AND TRY AGAIN
JZ

2101

2102 004007 170
2103 004010 323 202

MOV
OUT

A,B
iCHAR TO ACCUM
REHDAT iPRIHT IT ON THE KLINIK LINE

2104

2105 004012 170
2106 004013 323 200

CTYOUTI MOV
OUT

A,B
;GET THE CHAR WE SAVED IN THE B REG.
CHDAT jSEND TO THE UART

VER 6.2 KS10 CONSOLE PROGRAM GROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-62
HGORE.Mao
**KS10 TO 8080 CHARACTER SERVICE**
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118

2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143

,NOW CLEAR ADATA BUFFER FOR DEPOSITING 0'5 INTO THE MOS MEMORY
;WE ARE USING IN LINE CODE HERE IN ORDER TO SPEED UP THE TYPE-OUT
iON KSI0 TO 8080 XFER'S ••
004015
004017
004021
004022
004024
004026
004030
004032
004034
004036

107
102
104
106
110
112

MVI
OUT
XRA
OUT
OUT
OUT
OUT
OUT
OUT
OUT

A2835
A
A2027
A1219
W2835
W2027
W1219
W0411
WOO03

004040 076 002
004042 323 113

MVI
OUT

A,02
AOO03

076
323
257
323
323
323
323
323
323
323

033
103
105

004044 207
004045 323 115

TTOCOM~

A,~033

iTHIS IS THE ABIlRESS WE WISH TO [lEPOSIT
iPUT IT INTO THE HARDWARE REGISTER
;CLEAR AGCUI'\' BECAUSE THE REST OF THE AD[lR MUST BE ZERO
iCLR THE OTHER HARBWARE REGISTERS
iANII WE WILL HAKE ALL OF THE HARBWARE IIATA REGS 0

iBIT TO SAY ·WRITE FUNCTION'
iii*ii 1/0 WRT 113 *****

!THIS 'ADD A" WORKS BY LUCK .. I.E. 2+2=4
ArlIt
iBIT INTO ACCUM FOR 'COM/AItR CYCLE'
A
OUT
BUSARB i***** 1/0 WRT 115/4 *****

004047 076 001
004051 323 114

MVI
OUT

All
BTARB

004053 076 360

MVI

004055 323 210

OUT

iBITS FOR 'CHECK NXM','CONSOLE REG','T ENB FOR COM/AItR'
;'T ENB FOR DATA CYCLE'
BUSCTL ;*****I/O WRT 210/360 *****

004057
004061
004063
004065
004066

076 001
323 116
323 116
373
311

ino THIS TWICE
F'OKE10: IWI
OUT
OUT
NOACTN: EI
RET

HlIT INTO ACCUM FOR "liATA CYCLE'
i*iii* 1/0 WRT 114/1 iii**

A,~0360

TO GUARANTEE THE INTERRUTP GETS THRU
Afl
iBIT FOR SETTING INTERRUPT TO THE KSI0
INT2KS ;SET THE INTERRUPT
INT2KS ,SET THE INTERRUPT
iOK FOR INTERRUPTS NOW
iANIt OUT

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31} 3-Mf\Y-79 16150 PAGE 3-63
HCORE.M80
"TTY HANDLER FOR SPECIAL CHARACTERS"
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158

004067 170
004070 346 070
004072 302 111 010

.SBTTL *,TTY HANDLER FOR SPECIAL CHARACTERS**
;WHEN HERE, 'B' REG CONTAINS THE STATUS OF THE CTY LINE
A,B
HERR: MOJJ
iCOPY CTY STATUS TO ACCUM
"'070 ,ANY ERRS IN THE CTY UART??
ANI
JNZ
HERR! iIF YES, GO CHECK THINGS ON THE CTY LINE

004075 076 O')C'
.:.J
004077 323 203

iHERE IF GOT KLINIK ERRORS
A, "'025 iBEFORE JUMPING, RESET THE UART SO IT WILL WORK
liVI
OUT
REMCTL iI/O WRITE TO RESET THE UART

004101
004104
004105
004110

072 156 040
247
302 335 005
311

lIlA
ANA
JNZ
RET

USRMD
A
INTCH

iCHECK USER MODE .. WILL NOT REPORT ERR IF IT IS
;SET FLAGS
iIF WAS USER MODE, IGNORE OVERRUN AND HANDLE CHARACTER
;nONE INT

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - nICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-64
HCORE.M80
**TTY HANDLER FOR SPECIAL CHARACTERS**
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176

"'050

004111 346 050

HERR1: ANI

004113 076 025
004115 323 201
004117 302 131 010

iNOW MUST CLR ERROR FROM THE UART FIRST
MVI
A,"025 iBITS TO CLR ERROR CONDITIONS IN UART
OUT
CTYCTL i*****I/O WRT 200/25 *****
JNZ
TTERMS iNOW JUMP IF FATAL

004122 072 156 040
004125 267
004126 302 335 005

004131
004134
004135
004137
004140
(1) 004140
(1) 004141
2177 004143
2178 004144
2179 004145
2180
2181 004146
2182 004151
(1) 004151
(1) 004152
2183 004153
(1) 004153
(1) 004154
2184 004155

LDA
ORA
JNZ

USRMD
A
INTCH

iSEE IF OVERRRUN OR AFATAL ERROR

iBEFORE ISSUEING MESSAGE,IS USER MODE SET??
iTEST USER MODE FLAG
iIF YES, USER MODE, THEN IGNORE THE ERROR

337
034 037
341
161
311

iNOW MUST CLR OVERRUN ERROR FROM THE UART
HERMS: LXI
H,CSLMODE ;GET CURRENT MODE OF KLINIK
C,M
MOV
iSAVE IT IN C
M,O
iNOW CLEAR CSL MODE
MVI
iAND SAVE 'H,L'
PUSH H
PLINE HM
iOUTPUT THE ERROR MESSAGE
RST
iPRINT LINE OF CHARS
3
;BUFF TO PRINT
.ADDR HM
POP
iAND RESTORE KEMPOINTER
H
iREPLACE CSL MODE AND GET OUT
MOV
thC
iAND RESTART NULL LOOP
RET

061 000 044

CNTC:

041 247 040
116
066 000
345

317
136
317
103
303 255 001

SP,RAMSTt"02000 iGUARANTEE THAT CNTRL-C WINS
LXI
PCHAR UPARR
RST
1
iGO PRINT CHAR IN TRAILING BYTE
.BYTE UPARR iCHAR TO PRINT
PCHAR CCHR
RST
1
iGO PRINT CHAR IN TRAILING BYTE
•BYTE CCHR iCHAR TO PRINT
JMP
REINI iJUMP AWAY

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-65
HCORE.MSO
*iTTY HANDLER FOR SPECIAL CHARACTERS**
2186
2187 004160 041 114 041
2188 004163 042 215 040
2189 004166 042 227 040
2190 004171
2191 004173
2192 004175
2193 004177 311

jLOCAL SUBROUTINE TO RESET TTY INPUT BUFFER
H,BUFBG iBUFFER BEGINNING
BFRSn LXI
jRESET CURRENT BUFFER POINTER
SHLD BUF.
SHLD FIRST iRESET CKD POINTER
CLRB RPEND ;CLEAR REPEAT KILLER
CLRB CKDS •• iSAY LINE IS DONE •• AT BEGINNING OF THINGS
CLRB BFCNT iCLEAR CHAR COUNT
RET
iAND RETURN

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:S0 PAGE 3-66
HCORE.M80
**TTY HANDLER FOR SPECIAL CHARACTERS**
2195
2196
2197
2198 004200 376
2199 004202 310
2200 004203
(1) 004203 315
(1) 004206 351
2201 004210 303
2202
2203
2204

137 004
037
132 034

iTHIS IS THE INITIAL MODE OF THE KLINIK LINE AFTER APOWER UP. ALSO, WHEN
iTHE KLINIK LINE IS DISABLED, OR IN 'PROTECT' MODE, BUT NO PASSWORD HAS
iBEEN SET BY THE OPERATOR
MOIIEO: CPI
BELL iNO ECHO IF RECEIVE BELL
,l.
iBELL, SO OUT
P'"
KLINE NOACCS iPRINT AMESSAGE FOR THE KLINIK LINE ONLY
CALL KLINE iPRINT LINE OF CHARS
.A[I[lR NOACCS iBUFF TO PRINT
JMP
KILL. KLINIK iHANG UP LINE SO REPEAT '?NA'S DONT HANG SYSTEM

137 004
037
271 040
125 040

iTHIS IS KLINIK MODE 1. THIS IS THE MODE OF THE KLINIK LINE WHENEVER
HHE FRONT PANEL SWITCH IS IN THE PROTECT POSITION, AND WE ARE WAITING
jFOR THE PASSWORD TO BE ENTERED.
;BEGIN BY PRINTING IPWI'
MODEl: KLINE GPW
CALL KLINE iPRINT LINE OF CHARS
,ADUR GPW
iBUFF TO PRINT
H,KPWBUF ;INITIALIZE THE BUFFER FOR SAVING TYPED PASSWORD
LXI
SHUI KPWPNT iSAVE IN THE BUFFER POINTER

007

2205

2206
2207
2208 004213
(1) 004213
(1) 004216
2209 004220
2210 004223
2211
2212 004226
2213
2214 004230
2215 004233
2216 004236

315
357
041
042

041 237 010
042 346 040
311

CLRB

KPWCNT iANIt CLEAR THE PASSWORIt CHARACTER COUNTER

LXI
SHLD
RET

H,PW.WAIT iNOW ADDITIONAL KLINIK CHARS MUST I1ISPATCH TO
Monns ; THE PLACE THAT WAITS FOR ACOMPLETE PASSWORD
iENn OF INTERRUPT

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-67
BeORE.Mao
iiTTY HANDLER FOR SPECIAL CHARACTERS**
2218
2219
2220
2221 004237 376 015
2222 004241 312 275 010
2223
2224 004244 315 214 006
2225 004247 107

rTHIS IS THE ENTRY POINT WHEN THE PERSON IS IN THE PROCESS OF TYPING THE
'PASSWORII. WE STORE THE F'ASSWORD AS IT IS TYPED, THEN WHEN DONE, WE WILL
iVERIFY THAT IT IS CORRECT
PW.WAIT: CPI CRCHR iIS IT AN END OF LINE CHARACTER
JZ
PW.TST ,JUMP IF YES,. TIME TO VERIFY THE PASSWORD
CALL
MOV

UP.LO
B,A

;GENERATE ONLY UPPER CASE FOR PROGRAM INTERNALS
,SAVE THE CHAR IN BREG FOR ALITTLE BIT

2226

2227

2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255

004250
004253
004254
004256
004261

072
074
376
312
062

127 040

004264
004267
004270
004271
004274

052 125 040
160
043
L,J
040
042 P"
311

007
333 010
127 040

004275 021 262 040
004300 Q41 271 040
004303 006 000
004305 032
004306 247
004307 312 324 010

HF NOT END OF LINE, JUST ADD IT TO THE BUFFER OF CHARS THAT IS THE PASSWORII
UIA
KPWCNT ,FIRST THINGS FIRST, SEE HOW MANY CHARS IN THE BUFFER
;UPItATE TO ACCOUNT FOR THIS ONE
INR
A
CPI
7
;IS IT TOO MANY
JZ
PW.ERR iJUMP IF YES. ITS APASSWORB ERROR
STA
KPWCNT ,ELSE SAVE THE UPDATED COUNT AND CONTINUE
LHLII
MOV
INX
SHUI
RET

KPWPNT ,GET THE BUFFER POINTER
M,!!
,PUT THE CHARACTER IN THE BUFFER
H
iUPItATE THE BUFFER POINTER
KPWPNT ;PUT THE POINTER BACK
iAND END OF INTERRUPT

iCO[IE FOR VERIFYING THAT THE PASSWOR[I ENTEREB IS THE CORRECT AND VALII!
iPASSWORD
PW. TST: LXI
[I,PASSWORrt HI,E POINTS TO THE EXPECTED PASSWORD
H,KPWBUF iH,L POINTS TO THE TYPED IN BUFFER
LXI
B,OO
i"B" WILL BE THE COUNTER
MVI
PW .. :

LBAX
ANA
JZ

II

iFETCH UP AN EXPECTED CHARACTER
A
iSET THE FLAGS
PW.ENI! iIF "ENB", GO MAKE SURE TYPEIN IS TERMINATED

004312 004
004313 276
004314 302 333 010

INR
CMF'
JNZ

iELSE UPBATE OUR COUNTER
B
iANB COMPARE ACHAR
M
PW.ERR iIF MIS-COMPARE REPORT IT AS ERROR

004317 023
004320 043
2256 004321 303 305 010

INX
INX
JMP

D

H
PW ••

;UPnATE EXPECTED POINTER
iUPDATE TYPED IN POINTER
; CONTINUE

VER 6.2 KS10 CONSOLE PF:OGRAM CROSS - MICRO PROCESSOR ASSEMBLER 60D 3-l'\AY-79 16:50 PAGE 3-68
HCORE.M80
UTTY HANDLER FOR SPECIAL CHARACTERSU
2258
2259
2260 004324 072 127 040
2261 004327 270
2262 004330 312 355 010
2263

iEND., THIS IS ONLY TO VERIFY THAT TYPED TERMINATED AT THE SAME NUMBER OF
,CHARACTERS AS EXPECTED
pW.Etm: LnA
KPWCNT ,GET EXPECTED COUNT
CMF'
;CHECK AGAINST THE CURRENT COUNT
B
JZ
PW.OK ,AND JUMP IF COUNTS MATCH

2264

;FALL THRU TO ERROH IF CHARACTER COUNTS DON'T MATCH
PW.ERR: KLINE CMDNG ,GIVE USER AN ERROR MESSAGE
CALL KLINE iPRINT LINE OF CHARS
.ADDR CMDNG ;BUFF TO PRINT
H,PWRTRY jHAD ERROR. ONLY GET 3 CHANCES FOR ERRORS
LXI
INR
,UPDATE ERROR COUNT
M
MOV
AIM
iPLACE COUNT IN ACCUM FOR ATEST
CPI
3
,SEE IF STRUCK OUT
JZ
KLIRST iGO RESET KLINIK LINE IF USER STRUCK OUT

2265 004333
(1) 004333
(1) 004336
2266 004340
2267 004343
2268 004344
2269 004345
2270 004347
2271
2272 004352
2273
2274
2275 004355
2276 004360
(1) 004360
(1) 004363
2277 004364
(1) 004364
\1} 004367
2278 004370
2279 004372
2280
2281
2282 004373
2283 004376
2284 004401

315
026
041
064
176
376
312

137 004

037
277 040
003
373 010

303 213 010

JMP

MODEl

,ELSE GIVE HIM 'PW:' MESSAGE AGAIN

311

,HERE IF EVERYTHING MATCHED
PW.OK: CALL SETM2 iCHANGE LINE TO MODE 2
KCHAR '0
HIHEN GOOD PW I SENT OUT AN •OK'
CALL KCHR
iGO PRINT THE CHARACTER
•BYTE '0
KCHAR 'K
CALL KCHR ,GO PRINT THE CHARACTER
,BYTE 'K
PW.OUT: CLRB PWRTRY ;CLEAR ERROR COUNTER
iEXIT
RET

315 134 034
315 006 034
303 370 010

iKLINIK LINE RESET CODE. FOR RESETING KLINIK LINE AND HANGING UP THE USER
KLIRSn CALL HANGUP iGO HANG UP THE KLINIK LINE
CALL SETH1 iDROP BACK TO MOIIE 1
JMP
PW.OUT iZAP ERROR FLAG THEN OUT

315 101 034
315 117 004
117
315 117 004
113

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16150 PAGE 3-69
HCORE.M80
**TTY HANDLER FOR SPECIAL CHARACTERS**
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306

004404 376 034
004406 302 034 011
004411 072 251 040
004414 247
004415 302 304 y006

004420 072 300 040
004423 247
004424 310
004425 333 301
004427 346 004
004431 312 040 034

iKLINIK LINE MODE 2. THIS IS STREAM INPUT/OUTPUT. ALL CHARACTERS FROM
;THE KLINIK UART ARE SENT TO THE SPECIAL KLINIK COMMUNICATION WORDS
iAND ALL WORIIS FROM THE KLINIK COMM WORIIS ARE OUTPUT TO THE KLINIK LINE.
MO£lE21 cpr
CNBCK iFIRST SEE IF THE KLIMIK USER WANTS AMO£lE CHANGE
JNZ
KL3435 iIF NOT, GO SEN£I INFO TO THE KLINIK COMM WOR£I
L£lA
ANA
JNZ

MMFLG iBEFORE GOING TO MODE 3, SEE IF MM MODE
A
iSET 8080 FLAGS
END.USR iIF YES, MM MODE, ACT LIKE FROM ACTY

iFALL THRU IF WANTS TO CHANGE MODES. BUT BEFORE CHANGING, CHECK IF HEIS
iALLOWED TO CHANGE MODES.
LDA
KLLINE.ON iCHECK IF KLINIK IS ON, &USER IS ALLOWED TO CHANGE
iSET FLAGS
ANA
A
iIF NOT ENABLED TO CHANGE, JUST IGNORE THIS INTERRUPT
RZ
iWELL, HE IS ALLOWE£I TO CHANGE. SEE IF THE FRONT PANEL SWITCH IS UNLOCKED
IN
BOOTSW ii*ii* I/O RD 301 ii*ii
iNOTE THAT BIT LO IS TRUTH, IF BIT HI IS FALSE(DISABLE£I)
ANI
4
iCHECK THE CONSOLE ENABLE BIT
JZ
SETtl3 ;GO MODE 3 ONLY IF PANEL NOT LOCKED.LET SETM3 DO "RET·

VER 6.2 KS10 CONSOLE F'RGGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-70
HCORE.MBO
nTH HANDLER FOR SPECIAL CHARACTERSU
2308
2309
2310 004434
2311 004434 062 035 040
2312 004437 076 034
2313
2314 004441 323 103
2315 004443 257
2316 004444 323 105
2317 004446 323 107
231B 004450 323 106
2319 004452 323 110
2320 004454 323 112
2321
2322 004456 076 002
2323 004460 323 113
2324
2325
2326 004462 207
2327 004463 323 115
2328
2329 004465 072 035 040
2330 004470 323 102
2331 004472 076 001
2332 004474 323 104
2333
2334
2335 004476 323 114
2336
2337 004500 076 360
2338
2339 004502 323 210
2340
2341
2342 004504 076 001
2343 004506 323 116
2344 004510 323 116
2345
2346 004512 311

iTHIS IS WHERE YOU ACTUALLY WRITE THE DESIRE[I CHARACTER INTO THE KLINIK
iLINE COMMUNICATION WORD
KL3435:
CHRBUF iPUT CHARACTER IN ARAM BUFFER
5TA
A,·'034 iDESIREII ADDRESS FOR I1EPOSTING CHARACTER
l'IVI
OUT
XRA
OUT
OUT
OUT
OUT
OUT

A2835
A
A2027
A1219
W1219
W0411
WOO03

iWRITE ONLY RELEVANT PIECE OF THE ADIIRESS
;THEN ClR ACCUM
,ANII ClR THE REST OF THE HARIIWARE AIIDRESS REGISTER

MVI
OUT

ih02
AOOO3

iBIT TO SAY 'WRITE FUNCTION'
i***** I/O WRT 113 *****

iClEAR PIECES OF BEPosn nATA WHICH MUST BE ZERO

iTHE FOLLOWING 'AIIB A' WORKS BY LUCK •• I.E. 2+2=4
JBIT INTO ACCUM FOR 'COM/ADR CYCLE'
AIID
A
OUT
SUS ARB i***** 1/0 WRT 115/4 *****
lDA
OUT
MVI
OUT

CHRBUF
W2835
At!
W2027

,NOW
iPUT
iAND
iPUT

GET THE CHARACTER WE WANT
IT IN THE HARDWARE REGISTER
GET THE VALID BIT TO GO WITH THE CHARACTER
IT IN THE HARIIWARE REGISTER

iANII BY LUCK, THE ACCUM HAS JUST WHAT WE NEE II FOR THE NEXT STEP
OUT
I1TARB j***** I/O WRT 114/1 *****
MVI

,BITS FOR ·CHECK NXM',"CONSOLE REG','T ENB FOR COM/ADR'
i"T ENB FOR I1ATA CYCLE
BUSCTL ;*****1/0 WRT 210/360 *****
A,~0360

I

OUT
;no THIS TWICE
MVI
OUT
OUT
RET

TO GUARANTEE THAT
iBIT FOR
Ali
INT2KS iSET THE
INT2KS ;5ET THE

THE INTERRUPT HAPPENS
SETTING INTERRUPT TO THE KS10
INTERRUPT
INTERRUPT

,AND EXIT NORMALly ••••

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-71
CMDS.M80
**** CONSOLE COMMANDS AS IMPLIHENTED ****
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
(1)
(1)

2373
2374
2375
(2)
(2)
2376

004513
004515
004517
004522

076
323
315
012

001
210
074 033
040

.SBTTl **** CONSOLE COMMANDS AS IMPlIMENTED ****
.SBTTl *** IEB' CMD ***
JTHIS CODE PERFORMS THE 'EXAMINE BUS' CONSOLE FUNCTION.
A,01
jFIRST CLR 'R ClK ENB'
EBCMD: MVI
OUT
BUSCTl j***** 1/0 WRT 210/001 *****
CAll RDATT j***** 1/0 RD '0,1,2,3,103' (READ BITS 0-35) *****
.ADDR EMBUF jPlACE BITS 0-35 INTO RAM BUFFER AREA 'EMBUF'

004524 041 172 040
004527 021 230 011
004532 006 010

iREAD THE REST
LXI
LXI
"VI

004534
004535
004540
004541
004542
004543
004544

EB.RDIN: lDAX
CAll
MOV
INX
INX
DCR
JP

032
315 267 013
167
023
043
005
362 134 011

OF THE 1/0 REGISTERS AND SAVE IN THE RAM
H,RM100 ;GET BEGINNING ADDRESS OF RAM BUFFER AREA
D,IORGS iD,E WIll POINT TO SOURCE OF REGS TO BE READ
B,8
;THERE ARE 8 REGISTERS TO BE READ
D
ER.UTL
l'lrA
D
H
B
EB.RDIN

004547 257
004550 323 210

XRA
OUT

004552
004552
004553
004555
004560
004563
004563
004564
004565

PUNE EBHED
RST
3
.ADDR EBHED
CALL DECNET
CALL P36 •.
PCRlF
RST
4
.BYTE 2
CAll DECNET

337
041 037
315 205 034
315 347 030
347
002
315 205 034

iFETCH UP FIRST REGISTER TO BE READ
jCALl ER COMMAND
;COPY RESULTS OF READ INTO THE RAM SPACE
;UPDATE SOURCE POINTER
iUPDATE DESTINATION POINTER
;DOWN THE COUNTER
iCONTINUE LOOP

;CLR ACCUM MUST SET 'R ClK ENB'
A
BUSCTL j***** 1/0 WRT 210/0 *****
;EB CMD HEADER MSG
jPRINT lINE OF CHARS
;BUFF TO PRINT
jPRINT THE HEADING
;GO PRINT IT
;AND A(CR)(lF)
;AND MAKE SURE THIS GETS SENT

VER 6.2 KSI0 CONSOLE PROGRAM
CMflS.MBO
*** 'EB' CMD
237B
2379
2380
2381
2382
2383
2384

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16150 PAGE 3-72

***

004570 041 230 011
004573 021 172 040
004576 006 010

004600
004603
004604
(2) 004604
(2) 004605
23B5 004606
2386
2387 004607
2388 004612
2389 004613
2390 004614
(2) 004614
(2) 004615
2391 004616
2392 004617
2393 004622
(2) 004622
(2) 004623
2394 004624
2395 004627
(1) 004627
2396
2397
2398 004630
2399 004631
2400 004632
2401 004633
2402 004634
2403 004635
2404 004636
2405 004637
2406

315 254 030
043
317
057
353
315 254 030
043
353

EBU

LXI
LXI
MVI

H,IORGS ;'H,L' NOW PNTS TO LIST OF 1/0 REGISTER NAMES
D,RMI00 , '[I,E' NOW F'NTS TO CORRESPONDING LIST OF DATA FOR 1/0 REG
B,8
,ACCUM NOW CONTAINS ACOUNT OF 8 (FOR 8 1/0 REGS)

CALL
INX
PSLASH
RST
•BYTE
XCHG

PBBIT
H

311

CALL
INX
XCHG
PSPACE
RST
•BYTE
nCR
JNZ
PCRLF
RST
•BYTE
CALL
ENDCMIi
RET

100
101
102
103
300
301
302
303

iEND THIS COrtE
IORGS: .BYTE
•BYTE
•BYTE
•BYTE
.BYTE
,BYTE
•BYTE
.BYTE

317
040
005
302 200 011
347
002
315 205 034

1
SLASH
PBBIT
H
1
SPACE
B
EB1

iPRINT FIRST REG NAME
,BUMP TO NEXT
iPRINT '1'
,GO PRINT CHAR IN TRAILING BYTE
;CHAR TO PRINT
,SWAP SO 'H,L D POINTS TO [lATA
iPRINT DATA FOR THAT REG
,BUMP TO NEXT
,SWAP BACK-'H,L' POINTS TO NAME AGAIN
,SPACE OVER
,GO PRINT CHAR IN TRAILING BYTE
;CHAR TO PRINT
HIOWN COUNT
,CONTINUE TILL DONE ALL EIGHT REGS

4
2
DECNET ,AND FINALLY MAKE SURE LAST THING GETS SENT
,ENII-OF-COMMAND
,RETURN TO CALLER
WITH A6 BYTE BUFFER OF THE 110 REGS NAMES, IN BINARY
~0100
,FIRST REG NAME IN BINARY
"0101 i2ND
"0102 ,3RD
"0103 ,4TH
"'0300 ,5TH
"0301 ,6TH
"0302 i7TH
"0303 j8TH

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-73
CMDS.MaO
*** 'DB" eMD ***
240B
2409
2410 004640
(1) 004640
(1) 004641
2411 004642
2412 004645
(1) 004645
(1) 004646
2413 004647
2414
2415 004651
2416 004654
2417
2418 004656
2419 004657

347
006
332 251 011
347
010
042 040
315 171 033
042 040

.SBTTL *** IDB" CMD ***
iTHIS CODE PERFORMS THE 'DEPOSIT BUS' CONSOLE FUNCTION
iIS CPU RUNNINGYY
DBCHD: RUN ..
RST
4
•BYTE 6
iSKIP CODE IF AT END OF COMMAND
DBl
JC
iIF NOT, GO ASSEMBLE ARG.
AR636
RST
4
•BYTE a
.ADDR BUSAD iAND PUT INTO BUFFER 'BUS AD'
CALL
.ADDR

ADATT
BUSAD

XRA
OUT

A
iCLR ACCUM SO CAN CLR 1/0 REG 115
BUSARB ;***** 1/0 WRT 115/0 *****

tlVI
OUT

A,~0141

022 036

BUSRESP
CALL
•BYTE
JNZ

ARBRESP
BUSRESP
ARBRESP
NOARB

353 011
370 011

CALL
JNZ

DBRDIN i60 READ RESULTS, AND DO A36-BIT COMPARE
DBERR iIF "Z-BIT" NOT SET REPORT MISCOMPARE &ABORT

257
323 115

DBl:

2420

2421 004661 076
2422 004663 323
2423
2424 004665
(1) 004665 315
(1) 004670 020
2425 004671 302
2426
2427 004674 315
2428 004677 302
2429

141
210
245 032

i***** 1/0 WRT TO RDATA 0-35 DATA RE6{ODDS) *****
iBUFFER ADDRESS OF SOURCE OF DATA

iBITS TO SET 'CONSOLE REQ" &"T ENB FOR COM/ADR"
BUSCTL i***** 1/0 WRT 210/141 *****
i***** 1/0 READ 301 *****
iDO ACALL TO EXECUTE THIS CODE
;BITS TO BE CHECKED
iIF NO ARB RESPONSE WITH "BUS REO', ABORT

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-74
CMDS.MSO
U* "DS' CKIt u*
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445

004702 315 171 033
004705 364 016

;SECONII HALF OF COKMANI!
CALL ADATT iClR OUT OLD CRUI!
.AIIDR KAUOOO ,WITH ALL ZEROES

004707 315 136 033
004712 042 040

CAll
.ADDR

WDATT
BUSAD

i***** 1/0 WRT DATA 0-35 ADDR REG{EVENS) *****
,BUFFER ADItRESS OF SOURCE OF ItATA

004714 076 001
004716 323 114

MVI
OUT

A,01
"'0114

,BITS TO SET 'ItATA CYCLE'
i***** 1/0 WRT 114/1 *****

004720 076 363

MVI

210

OUT

A,"'0363 ,BITS FOR 'CONSOLE REO', 'TENB FOR COMIAD R'
,'T ENB FOR ItATA CYCLE','LATCH ItATA SENT'
BUBCTl i***** 110 WRT 210/363 *****

004722

~?'7

,,~'"

020

BUSRESP ARBRESP i***** 110 RD 301 *****
CALL BUSRESP iItO ACALL TO EXECUTE THIS COItE
•BYTE ARBRESP ,BITS TO BE CHECKED

302 022 036

JNZ

NOARB

,IF NO ARB RESP, ABORT WITH 2ND HALF MESSAGE

315 245 032
001
312 010 036

BUSRESP
CALL
•BYTE
JZ

DATACK
BUSRESP
DATACK
NOACK

; HOW ABOUT IIA TA ACKNOWLEIIGE??
iDO ACALL TO EXECUTE THIS COItE
;BITS TO BE CHECKED
,JUMP IF NONE

315 353 011
310

CALL
RZ

ItBRIIIN iGO REAIt IN RESULTS ANIt COMPARE RESULT
iIF Z-BIT, THEN OK TO EXIT

004724

(U 004724 315 245 032
(1) 004727
2446
2447 004730
2448
2449 004733
(1) 004733
0) 004736
2450 004737
2451
2452 004742
2453 004745
2454

303 372 011

,ELSE FALL INTO
PCHAR
RST
•BYTE
JMP

315 074 033
100 040

,COMMON SUBROUTINE TO READ IN THE CONTENTS OF THE KSI0 BUS &COMPARE AGAINST
;THE DATA WHICH WAS PUT ONTO THE BUS
IIBRItIN: CALL RItATT ;***** 1/0 RIt 0,1,2,3,103 *****
.AIIIIR TMPB2 ;PLACE TO PUT RDATA 0-35

2455

2456 004746
(1) 004746
(1) 004747
2457 004750
2458
2459
2460
2461 004753
2462 004756
2463
2464 004760
2465 004763
2466 004765
2467 004767

317
104

315 022 033
042 040
100 040
311

CALL
.AItIlR
.AIIItH
RET

THIS COIlE IF AMISCOMPARE
;PRINT '[I'
ItCHR
;GO PRINT CHAR IN TRAILING BYTE
1
[ICHR
,CHAR TO PRINT
DBCOM iANIt NOW THE ERR FINISHES UP LIKE THE 1ST HALF

CMP36
BUSAD
TMF'B2

;CHECK ItATA JUST READ VS. DATA SENT
;SENT !lATA
,RECEIVED DATA
i[lONE

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16;50 PAGE 3-75
CMDS.MaO
'DB" CMD
2469
i'DB' COMMAND CODE FOR THE CASES WHERE DATA DEPOSITED ON THE
iBUS IS NOT THE SAME AS THE DATA READ BACK FROM THE BUS ••
2470
; ••• BY THE WAY •• RIGHT NOW THIS IS PRETTY SLOPPY CODE ••••
2471
DBERRt PCHAR CCHR iPRINT A 'C'
2472 004770
(1) 004770 317
RST
1
iGO PRINT CHAR IN TRAILING BYTE
(1) 004771 103
•BYTE CCHR iCHAR TO PRINT
DBCOH; PUNE MSGI0 ; 'YC CYC'
2473 004772
(1) 004772 337
iPRINT LINE OF CHARS
RST
3
(l) 004773 062 037
.ADDR MSGI0 iBUFF TO PRINT
2474
LXI
H,BUSAD iADDR OF 36-BIT DATA
2475 004775 041 042 040
jNOW PRINT THAT DATA
2476 005000 315 352 030
CALL P36
2477
PUNE DRCVD ;'RECEIVED DATA'
2478 005003
(1) 005003 337
iPRINT LINE OF CHARS
RST
3
(1) 005004 075 037
.ADDR DRCVD iBUFF TO PRINT
2479
H,TMPB2 iTHIS IS ADDR OF RECEIVED DATA
24aO 005006 041 100 040
LXI
iPRINT THAT 36-BIT DATA
2481 005011 315 352 030
CALL P36
iAND CR-LF
2482 005014
PCRLF
(2) 005014 347
RST
4
(2) 005015 002
•BYTE 2
H,4
jPASS ERROR CODE BEFORE EXIT
LXI
2483 005016 041 004 000
ERRRTN iGO FINISH WITH THE ERROR CODE
JMP
2484 005021 303 016 036

***

***

VER 6.2 KSI0 CONSOLE PROGRAM
CMDS.MeO
ii* 'EM' CMD
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515

***

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-76

***

.SBTTL *ii 'EM' CMD
iTHIS IS THE ACTUAL 'EM' COMMAND CODE
005024 332 032 012
005027 315 120 013

EMCMD: JC
CALL

EMl
LACMII

iSKIP CODE IF AT Etm OF COMMAiW
iGO FETCH UP AN AIIIIRESS TO EXAMINE

005032 .:.JI
005033 062 031 040

EMU

XRA
STA

A
ENEXT

iCLEAR ACCUM
iANII SET SO 'EN

005036 021 017 040

EM2:

LXI

I1,MEMAD iAIIIIRESS FOR MEMORY LOC.

005041 076 004

EM HIT: MVI

A,04

iS1T TO SAY 'READ FUNCTION'

005043
005044
005045
005050
005051

EN2NII; MOV
XCH6
SHlD
XCHG
CALL

B,A

ADATP

;SAVE FUNCTION DATA
;[lATA POINTER TO "H,L '
iSTORE FOR LATER USE BY COMMON CODE
iRESTORE "D,E'
i*ii** 1/0 WRT 103,105,107,111,113 ***i*

005054 170
005055 323 113

MOV
EM.CRM: OUT

A,B
AOO03

i6ET FUNCTION
iii**i 110 WRT 113/4 **i**

005057 076 004
005061 323 115

iNOW SET 'COM/ADR' CYCLE
A,n004 iBIT TO SET COM/ADR CYC
MVI
OUT
BUSARB i***ii 1/0 WRT 115/4 *i***

005063 072 163 040
005066 247
005067 302 074 012

iCHECK IF [lOING
LIlA
ANA
JNZ

,)£:''7

107
353
042 205 040
353
315 176 033

AM.AI

I

CMII WILL KNOW WHAT TO DO

EI OR EM
EIFLAG ;GET THE El FLAG
;SET CODES, IF .NE. 0, THEN IT IS AN EI CODE
A
EMCONT iAND IF WAS EI, GO DO IT

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEHBLER 6(31) 3-HAY-79 16:50 PAGE 3-77
CHDS.HSO
**i 'EHI CHD i**
2517
2518
2519
2520
2521
2522
2523
2524
2525

005074 323 210
005076 257
005077 062 163 040

005102
005102 315 245
(1) 005105 020
2526 005106 302 022
2527
2528 005111
(1) 005111 315 245
(1) 005114 100
2529 005115 302 036
2530
2531
2532 005120
(1) 005120 315 245
(1) 005123 001
2533 005124 312 010
(1)

jOTHERWISE JUST FALL THRU AND USE THE DH CODES
A,~0343 JBITS FOR ICHECK NXHI,ICONSOLE REOI,IT ENB FOR COH/ADR I
HVI
j'LATCH DATA SENT',' RCLK DISABLEEHCOtm OUT
BUSCTL j***** 1/0 WRT 210/343 *****

005072 076 343

032
036
032
036

032
036

XRA
STA

jCLEAR THE ACCUH
A
£IRAG jCLEAR FLAG ON THE WAY OUT

BUSRESP
CALL
•BYTE
JNZ

ARBRESP
BUSRESP
ARBRESP
NOARB

j***** 1/0 RD 301 *iii*
jDO ACALL TO EXECUTE THIS CODE
JBITS TO BE CHECKED
jIF GET NO 'BUS REO', ARB FAILED SO ABORT

BUSRESP
CALL
•BYTE
JNZ

NONXHEH
BUSRESP
NONXHEH
NIXOH

ji**** 1/0 RD 301 *****
jDO ACALL TO EXECUTE THIS CODE
jBlTS TO BE CHECKED
jJUHP IF NON-EXISTANT MEM FLAG IS SET

jNOW HUST WAIT FOR 'DATA ACKNOWLEDGE" FROH MEHORY
BUSRESP DATACK j***** 1/0 RD 301 ii***
CALL BUSRESP jDO ACALL TO EXECUTE THIS CODE
•BYTE DATACK JBITS TO BE CHECKED
NOACK jJHP IF NO IDATA ACKI(BUS HAS 15 HIC. SEC TO RESP)
JZ

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-78
CMDS.H80
*** "EH' CHD ***
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
(2)
(2)

2550
2551
(2)
(2)
2552
(1)

2553

005127 021 012 040
005132 315 101 033

;HERE IF 'DATA ACKNOWLEDGE' RECEIVED •• GET RESULTS &PRINT
LXI
D,EMBUF iPLACE TO PUT RECEIVED DATA
CALL RDATP i***** 1/0 RD 0,1,2,3,103 *****

005135 257
005136 323 210

XRA
OUT

A
;SET ACCUM .E9. 0 FOR 'R ClK ENABLE'
BUSCTl i***** 1/0 WRT 210/0 *****

005140 072 120 040
005143 247
005144 300

lDA
ANA
RNZ

NOPNT
A

;GET T~E PRINT FLAG
;SET CONDITION CODES
;AND DONT WASTE TIME IF NOT PRINTING

005145 052 205 040
005150 315 352 030

LHlD
CALL

AM.AI
P36

;GET POINTER TO HEM ADDR JUST EXAMINED
;PRINT IT

005153
005153
005154
005155
005160
005160
005161
005162
005162

PSlASH
RST
•BYTE
CALL
PCRLF
RST
•BYTE
ENDCHD
RET

317
057
315 347 030
347
002
311

1

SLASH
P36.

;PRINT 'I'
;GO PRINT CHAR IN TRAILING BYTE
jCHAR TO PRINT
;AND PRINT IT
iCR-LF

4
2
jALL DONE
;RETURN TO CALLER

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-79
CMDS.Mao
"EN" CMD ***

***

2555
2556
2557
2558 005163 315
2559 005166 017
2560 005170 303
2561
2562
2563
2564
2565 005173 052
2566 005176 021
2567 005201 031
256a 005202 136
2569 005203 043
2570 005204 126
2571 005205 353
2572 005206 351
2573
2574 005207 163
2575 005211 001
2576 005213 106
2577 005215 057

.SBTTL *** "EN" CMD ***
jACTUAL CODE FOR IENI CMD
055 033
040
032 012

ENEM:

CALL
.ADDR
JMP

INC36
MEMAD
EMl

jADD 1 TO 36-BIT BUFFER
jTHIS IS THE BUFFER TO INCREMENT
JAND NO GO PROCESS JUST LIKE IEM" CMD

***

031 040
207 012

.SBTTL *** 'EN' CND
jEXAMINE NEXT WILL DO THE NEXT, SAME AS THE LAST
ENCMD: LHLD ENEXT JGET INDEX FOR WHICH EXAMINE IS NEXT
DrENLST JGET PNTR TO DISPATCH LIST
LXI
JAND NOW ADD WHICH EXAMINE
DAD
D
E,M
;6ET lO ORDER PIECE
MOV
;UPDATE MEM PNTR
INX
H
DrM
JGET HI ORDER PIECE
MOV
jPUT THIS NEW ADDR INTO "H,L'
XCHG
JAND TAKE THE DISPATCH
PCHL
I

012
013
013
016

ENLSI: .ADDR
.ADDR
.ADDR
.ADDR

ENEM
ENE I
ENEK
ENEC

jDISPATCH
jDISPATCH
jDISPATCH
jDISPATCH

FOR
FOR
FOR
FOR

I

EXAM MEM CMD
EXAM 1/0
EXAM KONSOl
EXAMINCRAM

VER 6.2 K510 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-BO
CMDS.MSO
iii "IiM' CHD ii*
2579
25BO
25B1
2582 005217 315
2583 005222 017
2584 005224
(1) 005224 347
(1) 005225 010
25B5 005226 047
2586
2587 005230 257
2588 005231 062
25B9
2590 005234 021
2591
2592 005237 076
2593
2594 005241 107
2595 005242 315
2596
2597 005245 170
2598 005246 323
2599
2600 005250 076
2601 005252 323
2602
2603 005254 315
2604 005257 047
2605
2606 005261 076
2607 005263 323
260B
2609
2610 005265 072
2611 005270 247
2612 005271 302

055 033
040

040

.SBTTL iii "DM' CMD iii
jDEPOSIT MEMORY ACTUAL COMMAND CODE
.SBTTL iii 'DN" CMD iii
DNDM: CALL INC36 jINCREMENT MEMORY ADDRESS
.ADDR MEMAD ;HERE IS CURRENT MEMORY ADDRESS
DMClm: ARG36
jOTHERWISE, ASSEMBLE THE ARG
RST
4
.BYTE 8
.ADDR DHDAT iPLACE TO PUT ASSEMBLED DATA
;0 IS THE INDEX FOR HEM NEXT CMDS
jSAVE SO ·NEXT· COMMAND WILL KNOW WHAT TO DO

DM!:

XRA
STA

A
DNEXT

017 040

DM2:

LXI

D,MEMAD ;PNTR TO SMI0 MEMORY ADDRESS

002

DMINT: MVI

A,02

;BIT TO SAY 'WRITE FUNCTION'

176 033

IiN2NIi: MOV
CALL

B,A
ADATP

;SAVE FUNCTION STATUS
iiiiii 1/0 WRT 103,105,107,111,113 iiiii
;GET FUNCTION IiATA
i*iiii 1/0 WRT 113 iiiii

033 040

113

MOV
OUT

A,B
AOO03

004
115

MVI
OUT

A,04
;BIT INTO ACCUM FOR 'COM/ADR CYCLE'
BUSARB ;*i*i* 1/0 WRT 115/4 iiii*

136 033
040

CALL
.ADDR

WDATT
DMDAT

;iiiii 110 WRT 102,104,106,110,112 iiiii

001

MVI
OUT

A,01
DTARB

;BIT INTO ACCUM FOR IDATA CYCLE·
;i*i** 1/0 WRT 114/1 ii*ii

114

164 040
276 012

;PLACE TO GET DATA FOR DEPOSIT

;CHECK TO SEE IF DOING DI OR DM
DIFLAG ;GET THE FLAG
LDA
ANA
;SET THE CONDITION CODES
A
JNZ
DMCONT ;IF tNE. 0, THEN YOU GOT THE CODE FOR ADI

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-81
CMDS.M80
Ui 'DN" CMII Ui
2614
2615
2616
2617
261B
2619
2620
2621
2622

005276 323 210
005300 257
005301 062 164 040

005304
005304 315 245
(1) 005307 020
2623 005310 302 022
2624
2625
2626 005313
(1) 005313 315 245
(1) 005316 100
2627 005317 302 036
2628
2629
2630 005322
(1) 005322 311
(1)

;OTHERWISE, FALL THRU TO I10 AIII;
1IMGO: MVI
A,n0362 JBITS FOR 'CHECK NXM','CONSOLE REO','T ENB FOR COM/AIIR"
;'T ENB FOR DATA CYCLE'(LATCH I1ATA SENT PREVENTS FALSE PAR ERR)
DMCONn OUT
BUSCTL ;*****1/0 WRT 210/362 *****

005274 076 362

032
036

032
036

XRA
STA

A
iCLEAR THE ACCUM
DIFLAG JAND CLEAR THE FLAG

BUSRESP
CALL
•BYTE
JNZ

ARBRESP
BUSRESP
ARBRESP
NOARB

i*UU 1/0 RIi 301 UU*

iIiO ACALL TO EXECUTE THIS CODE
iBITS TO BE CHECKErI
iIF NO 'BUS REG', ARB FAILED, SO ABORT

,IF THAT WAS OK, CHECK FOR NON-EXISTANT MEMORY
BUSRESP NONXMEM i***** 1/0 RD 301 *****
CALL BUSRESP ino ACALL TO EXECUTE THIS COIlE
•BYTE NONXMEM iBITS TO BE CHECKEn
JNZ
NIXOM iIF FLAG SAYS NXlh THEN WE JUMP
iElSE ALL OK ••••
ENIICMO
RET

iRETURN TO CALLER

VER 6.2 KS10 CONSOLE PROGRAM
ctIItS.MBO
*** IDN' CHD
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-82
•SBTTL *U [IN CtlIt ***
,ROUTINE WILL DEPOSIT NEXT, JUST AS THE LAST
DNCMD: LHLD DNEXT iGET CODE FOR WHICH DEPOSIT IS NEXT
D,DNLST ,PNTR TO DISPATCH LIST
LXI
DAD
D
JADD GIVES PNTR TO WHICH IS NEXT
I

005323 052 033 040
005326 021 337 012
005331 031
005332
005333
005334
005335
005336

005337
005341
2646 005343
2647 005345
2645

***

136
043
126
353
351
217 012
007 013
137 013
071 016

MOl)
INX
MOV
XCHG
PCHL
I1NLSr: .AIInR
•AnDR
.ADDR
.ADDR

I

ElM
H
D,M

mUlM
DNDI
DtWK
DNDC

,LO ORDER PIECE TO REG
;UPDATE MEM PNTR
,HI ORDER PIECE TO REG
;NOW THE DISPATCH GOES TO IH,L
;AloIII ItISPATCH
iDISPATCH FOR I1EP
,FOR DEPOSIT NEXT
;FOR I1EPOSIT NEXT
;FOR DEPOSIT NEXT

NEXT TO MEM
TO 1/0
TO KONSOLE
CRAM

I

VER 6.2 KS10 CONSOLE PROGRAM
CMDS.K80
*** IEl" CKD
2649
2650 005347
(1) 005347
(1) 005350
2651 005351
2652 005354
2653
2654 005357
2655 005361
2656
2657 005364
2658
2659 005367
2660 005371
2661
2662 005374
2663 005376
2664
2665
2666
2667 005401
2668 005404

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-83

***

*** ilLLEGAL COHKAND IF CPU RUNNING

347
006
332 357 012
315 125 013

.SBTTL *** "EI' CKD
EICHD: RUN ..
RST
4
•BYTE 6
JC
Ell
CALL LICHD

jSKIP CODE IF AT END OF COHKAND
iFETCH UP THE DESIRED 1/0 ADDRESS

MVI
STA

A,2
ENEXT

021 024 040

LXI

D,IOAD iIH,L" GETS PNTR TO ADDR BUFFER

076 143
062 163 040

KVI
STA

A, 0143 iSPECIAL CODE FOR WHEN DOING DI
EIFLAG iPASS IT TO ROUTINE

076 014
303 043 012

HVI
JKP

A, 014 iBITS FOR "1/0 FUNC" &"READ FUNC"
EN2ND iJUMP TO COHMON CODE

076 002
062 031 040

315 040 013
303 357 012

Ell:

jDISP CODE FOR EXAKINE NEXT ••
iTELL EXAHINE NEXT TO COKE HERE

ft

ft

iEXAHINE 1/0 ENTRY PNT FOR EXAKINE NEXT SITUATION
ENEI: CALL IO.INC iGO INCREMENT 1/0 ADDRESS TWICE
JMP
Ell
iTHEN ON TO COMHON CODE

VER 6.2 I(S10 CONSOLE PROGRAH
CMDS.M80
III CMII

*** ·

2670
2671
2672 005407
2673 005412
(l) 005412
(1) 005413
2674 005414
2675
2676 005416
2677 005420
2678
2679 005423
2680
2681 005426
2682 005430
2683
2684 005433
2685 005435
2686
2687 005440
2688 005443
2689 005445
2690 005450
2691 005452

I

***

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-HAY-79 16:50 PAGE 3-84
.SBTTL *** "DI' CMD ***
.SBTTL *** DN CtlI! U*
[IN[I!: CALL
1O. INC iGO INCREMENT THE 1/0 A[I[lRESS TWICE
Ii ICHIi I ARG36
jOTHERWISE GO ASSEMBLE THE ARG
RST
4
•BYTE 8
.AD[lR [lHDAT iAN[I STORE IT HERE
I

315 040 013
347
010
047 040

I

MVI
STA

A,02
DNEXT

021 024 040

LXI

D,IOAD iPNTR TO AIIDRESS I1ATA TO USE

076 160
062 164 040

MVI
STA

A,"0160 iSET COIlE FOR USE BY III COMMAN£!
£!IFLAG iANII PASS IT TO ROUTINE

076 012
303 241 012

MVI
Jl1P

A,~0012

076 002
062 033 040

315
024
315
024
311

055 033
040
055 033
040

DIll

IO.INC: CALL
.AIIUR
CALL
.ADDR
RET

£!N2N£!
INC36
lOAD
INC36
lOA[I

iSET WORD THAT SAYS IiEP NEXT WILL BE III
iAN[I SAVE FOR "DN" CMD

,BITS TO SAY '1/0 FUNC' &'WRITE FUNC'
iANII JUMP TO COMMON CODE
iNOW
i ITS
,NOW
iITS
iANII

INCREMENT 110 ADURESS
RIGHT HERE
INCREMENT 1/0 AII£!RESS
RIGHT HERE
BACK

VER 6.2 KS10 CONSOLE PROGRAM
CMDS,M80
*** 'EK' CHD

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-85

***

332 062 013

,SBTTl *** IEK' CMD ***
,ROUTINE EXAMINES 8080 LOCATIONS
,IF NOT, NO ARG TO BE ASSEMBLED
EKCIiD: JC
EK1

347
004
002 040

;OTHERWISE, MUST ASSEMBLE ARG
;GO GET 16 BIT ADDR TO EXAMINE
ARG16
RST
4
,BYTE 4
.AIIIIR C80An iAND PUT INTO CURRENT AIIDR BUFFER

2693

2694
2695 005453
2696
2697
2698 005456
(1) 005456
(1) 005457
2699 005460
2700
2701 005462
2702 005464
2703
2704 005467
2705 005472
2706
2707 005475
(2) 005475
(2) 005476
2708
2709 005477
271() 005502
2711 005503
2712
2713
2714
2715
2716 005506
2717 005511
2718 005512
2719 005515

HVI
STA

A,04
EN EXT

041 002 040
315 317 030

LXI
CALL

H,C80Art iGET CURRENT ADDR
P16
iAND PRINT IT AS IS

317
057

PSlASH
RST
1
•BYTE SLASH

052 002 040
176
303 031 017

LHLD
MOV
JMf'

076 004
062 031 040

052 002 040
043
042 002 040
303 062 013

EK1:

HNIIEX SAYS EK IS NEXT
,SAVE IN THE RAM

iNOW A'/'
iGO PRINT CHAR IN TRAILING BYTE
iCHAR TO PRINT

C80AD iGET ADDR JUST PRINTEIl
AIM
;PASS ARG TO PRINT IN THE ACCUM
PBCRLF , AND PRINT DATA PLUS CRLF, FOR FREE

,SBTTL *** 'EN' CHD ***
ENEK: LHLD C80AD ;GET CURRENT 8080 ADDRESS
;oPMTE
INX
H
SHLD C80A[l ;PUT IT BACK
JMP
,COMMON COnE
EK1

VER 6.2 KSI0 CONSOLE PROGRAH
CliDS.Hao
*** "LA" CHD
2721
2722 005520
2723 005520
(1) 005520
(1) 005521
2724 005522
2725
2726 005524
(1) 005524
2727
2728
2729
2730 005525
(1) 005525
(1)

***
.SBTTL
LACHDI

*** 'LA" CHD ***

347
010
017 040

"jOTHERWISE, GET ARG &PUT IN 36-BIT BUFFER
ARG36
RST
4
•BYTE 8
.ADDR HEHAD jPLACE TO PUT DATA

311

ENDCHD
RET

347
005526 010

2731 005527
2732
2733 005531
(1) 005531
2734
2735
2736
2737
2738 005532
(1) 005532
(1) 005533
2739 005534
2740
2741 005536
(1) 005536

CROSS - HICRO PROCESSOR ASSEHBLER 6(31) 3-HAY-79 16:50 PAGE 3-86

024 040

311

347
004
002 040
311

.SBTTL *** "Ll" CHD
LICHDl ARG36
RST
4
•BYTE 8
.ADDR IOAD
ENDCHD
RET

jAND DONE
jRETURN TO CALLER

***

jGET ARG AND PUT INTO ATEMP BUFFER
;THI5 TEHP BUFFER
;AND DONE
jRETURN TO CALLER

.SBTTL *** "LK' CHD ***
jROUTINE SETS CURRENT 8080 ADDRESS INTO RAH ••
iIF USER TRIES TO DEPOSIT PROH, TOO BAD. HE SHOULD,KNOW BETTER
LKCHDI ARG16
jIF OK,"GO ASSEHBLE 16 BIT ARG
RST
4
.BYTE 4
.ADDR C80AD ;THIS IS AGOOD PLACE TO KEEP IT
ENDCHD
RET

;AND END
jRETURN TO CALLER

,

VER 6.2 KS10 CONSOLE PROGRAM
CMDS.MBO
*** 'DN" CMD
2743
2744
2745
2746
2747
274B
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
(1)

2761
2762
2763
2764
2765
2766
2767
276B
2769
2770
2771
2772
2773
2774
2775
2776
2777
277B
2779
2780
27B1
(1)

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16i50 PAGE 3-87

***

005537 052 002 040
005542 043
005543 042 002 040

005546 315 244 030
005551
005552
005555
005556
005560

.SBTTL U* •DN· CMD *U
DNDK: LHLD CBOAD ,GET 8080 ADDRESS
;INCREMENT BY 1
INX
H
SHLD C80A[I ,PUT IT BACK
,FALL INTO THE 'IlK' COI1MANn
•SBTTL U*' DK' CMD Ui
,CODE TO [tEPOSIT INTO B080 RAM •• IF IJ TRY TO DEPOSIT PROM
,ITS YOUR OWN FAULT
[tKCM[t; CALL ARG16. ,OK, NOW GO ASSEMBLE 16 BITS OF [tATA

175
052 002 040
167
076 004
062 033 040

MOV
LHLD
MOV
MVI
STA

005563
005563 311

CALL

ARG16. ,ELSE GET ARG

,NOW GIVE NUMBER OF CLKS REQUESTED
A,L
,LO ORDER PIECE INTO ACCUM
CPMLT: MOV
;ADD THE HI ORDER PIECE
ORA
H
,ALL DONE IF DOWN TO ZERO
RZ

005572 175
005573 264
005574 310
005575 315 204 013
005600 053
005601 303 172 013

311

I

.SBTTL i** 'CP' CM[t ***
,COMMAN[t TO SINGLE PULSE THE SM10 CPU CLK
CPCMII; JC
,IF NO ARG, ONLY GIVE SINGLE CPU CLK
CP1

005567 315 244 030

076
323
076
323

;GET £tA TA FROM LOC
;AN[t CURRENT A[t[tRESS TO 'H,L
,WRITE THE B-BIT [tATA
,GET CODE THAT SAYS EXAMINE NEXT SHOULD BE "KONSOLE'
;AND SAVE IN RAM
,ALL DONE
,RETURN TO CALLER

ENDCMD
RET

005564 332 204 013

005604
005606
005610
005612
005614
005614

AIL
CBOA[t
I'hA
A,04
DNEXT

010
204
002
206

CPU

,OTHERWISE, GIVE CLOCK
;[tECREMENT
;AND CONTINUE TILL DONE ALL

CALL
DCX
JMf'

CPl
H
CPMLT

MVI
OUT
MVI
OUT
ENIICMD
RET

At'OOlO iSET BIT FOR ·SS MOIIP
CRMCTL ;*****1/0 WRT 204/010 *****
A,2
,SET BIT FOR 'SINGLE eLK'
CLKCTL ,***** 1/0 WRT 206/2 *****
iDONE ..
,RETURN TO CALLER

VER 6.2 KS10 CONSOLE PROGRAM
CMDS.M80
U* •ER· CM[I
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
(2)

(2)

2798
2799
2800
2801
2802
2803
2804

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-88

***

***

005615 332 227 013
005620 315 244 030
005623 175
005624 062 123 040
005627 072 123 040
005632
005633
005636
005636
005637

365
315 304 030
317
057

005640 361
005641 315 267 013
005644 315 031 017
005647 311

***

.SBTTL
'ER' CMD
iCOMMAND TO EXAMINE ONE OF THE 8080 INTERNAL REGISTER, AND DISPLAY
iTHE CONTENTS OF THAT REGISTER.
iIF NO ARG, GO USE THE ONE ALREADY IN THE RAM
ERCMD: JC
ERl
CALL

ARG16. iELSE, PICK UP THE ARG THAT WAS TYPED

iFALL TO HERE IF ARG OK ••
A,L
;GET ACTUAL ARG INTO THE ACCUM
MOV
ERA[lDR iWELL, BEST SAVE THIS THING IN THE RAM
STA
ERU LnA
ERADDR iCOMMON TYPE CODE .. ANO-OF' IF ARG WAS TYPED
PUSH
CALL
PSLASH
RST
.BYTE

; NOW SAVE ACCUM F'LEASE
PSW
P8BITA iPRINT NAME OF THE 8080 REG THAT IS BEING EXAMINED
jAND SEPARATE FROM ITS CONTENTS WITH ASLASH
;GO PRINT CHAR IN TRAILING BYTE
1
SLASH iCHAR TO PRINT

POP
CALL

iRESTORE ACCUM PLEASE
PSW
ER.UTL iEXECUTE THE INSTR PAIR FROM THE RAM SPACE

iBACK HERE ANB THE DATA IS IN THE ACCUM
CALL P8CRLF iPRINT THE RESULTS
iAMB [lONE
RET

VER 6.2 KSI0 CONSOLE PROGRAM
CMDS.tl80
**i 'ER' CMD
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826

0056S0
005653
005654
005656
005661
005662
005665
005666

042
365
076
062
361
315
057
311

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-89

i**

070 040
311
072 040
070 040

005667 345
005670 147
005671 056 333
005673 315 250 013
005676 341
005677 311

iROUTINE TO EXECUTE AN •UP OR 'OUT" FROM THE 8080 RAM SPACE
RAMXCn SHLD ER.LOC iTHE 'IN/OUT' AND THE REG NUMBER INTO RAM SPACE
iSAVE ACCUM, IN CASE ROUTINE IS AN 'OUT'
PUSH PSW
A, .RET iA 'RETURN ' INTO ACCUM
HVI
ER.lOCt2 ; AND THEN THE RETURN GETS PUT INTO RAM SPACE
BTA
POP
PSW
iREBTORE ACCUM, ANYWAY
CALL ER.LOC iGO EXECUTE THE RAM LOC
CMA
iFIX HARDWARE INVERSION
iBACK TO CALLER
RET
iROUTINE ER.UTL.. DOES AN EXAMINE REGISTER, INTERNAL TYPE FORMAT.
iNO PRINTING, JUST THE EXAMINE
iPASS IIESIRED I/O REG ADDRESS IN ACCUH.
iACCUM GETS THE RESULTS OF THE REAII.
ER.UTU PUSH H
iSAVE H,L PAIR
H,A
MOV
iNOW, THE NUMBER THAT WAS TYPED IS PUT INTO HI HALF
L,.IN iAND AN 'IN' INSTR GOES lO HALF
HVI
CALL
POP
RET

RAHXCT iNOW ACTUALLY EXECUTE THE COIlE TO DO THE READ
iFIX H,L
H
iOUT

VER 6.2 KS10 CONSOLE PROGRAM
CMDS.M80
*** "LR" CMD
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840

***

005700 315 244 030
005703 175
005704 062 123 040
005707 311

005710
005710 347
005711 004
2841 005712 000 040
2842
2843 005714 056 323
2844 005716 072 123 040
2845 005721 147
2846 005722 072 000 040
2847
2848 005725 315 250 013
2849 005730 311
(1)
(1)

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-90
.SBTTl *** "LR" CMD ***
iCOMMAND TO SET INTO THE 8080 RAM, THE 1/0 REGISTER TO BE EITHER
;DEPOSITED OR EXAMINED
LRCHD: CALL ARG16. iFETCH IN THE NUMBER TYPED
MOV
STA
RET

A,L
iDESIRED REG TO ACCUM
ERADDR ;PUT IN 8080 RAM
iAND OUT

.SBTTL *** IDR" CMD ***
;COMMAND TO DEPOSIT ANUMBER INTO THE LAST SPECIFIED 8080 1/0 REG.
DRClm: ARG16
RST
4
•BYTE 4
.ADDR T80DT
iTAKE ARG AND PUT INTO RAM SPACE
MVI
LDA
MOV
LDA

Lr .OUT i"L" GETS THE OPERATION TYPE WE WILL PERFORM
ERADDR iFETCH UP THE CURRENTLY SELECTED 1/0 REG

CALL
RET

RAHXCT iPERFORM THE OPERATION
;THATS ALL

H,A
T80DT

iAND PUT IT INTO THE "H"
;NOW THE DATA TO BE WRITTEN GOES TO THE ACCUM

VER 6.2 KSI0 CONSOLE PROGRAM
CMDS.Mao
*** ILC I CMD
2a51
2852
2853 005731
(1) 005731
(1) 005732
2854 005733
2855 005735
(1) 005735
2856
2857
2858
2859
2860
2861 005736
2862
2863 005741
2864
2865 005744
2866 005745
2867 005746
2868 005747
2869 005750
2870 005752
2871 005753
2872 005756
2873
2874
2875
2876 005760
2877 005761
2878 005764
2879 005766
(1) 005766
2880
2881
2882 005767
2883 005772
2884 005774
2885 005777
(1) 005777
(1) 006000
2886 006002
2887 006003
(1) 006003
(1) 006004
2888 006005
(1) 006005
(1) 006006
2889 006007
(2) 006007
(2) 006010
2890 006011
2891

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-91

***

347
004
004 040
311

.SBTTL *** ILC I CMD ***
iCOMHAND TO LOAD THE 8080 RAM CURRENT CRAM ADDRESS
iOK, ASSEMBLE THE 16 BITS
LCCMDI ARG16
RST
4
•BYTE 4
.ADDR CRMAD iTEMP PLACE TO KEEP BITS
ENDCHD
iDONE ••
;RETURN TO CALLER
RET

.

.SBTTL *** ICE I CMD ***
iCOMMAND TO SET CACHE ENABLE ON THE CSL BOARD
; OR PERHAPS CLR CACHE ENABLE IF DESIRED
332 367 013

CECHD: JC

CEDIS

iIF NO ARG, DISPLAY 'CACHE ENABLE'

315 244 030

CALL

ARG16. iHUST ASSEMBLE ARG IF FALL THRU

175
027
027
027
346 010
107
072 354 040
346 367

MOIJ
RAL
RAL
RAL
ANI
KOIJ
LDA
ANI

A,L

260
062 354 040
323 100
311
072 354 040
346 010
302 003 014
337
154 037
311
317
117
317
116
347

oot
311

"'010
B,A
PARDT
"'0367

;ARG TO ACCUM
;BIT 0 TO 1
iBIT TO 2
;81T TO 3
iOFF ALL BITS BUT THE CACHE BIT
iSAVE RESULT IN IB' FOR ALITTLE WHILE
iGET CURRENT PARITY BIT STATUS
iOFF THE CACHE BIT

iHERE IS SOKE COMMON CODE, USEFUL BY ROUTINES WHICH MUST ADJUST
;THE DATA IN THE PARBT LOCATION
iADD NEW DATA TO DEFAULTED 'PARBT'
ENACOM: ORA
B
KS.PARI STA
PARBT iNOW SAVE THE NEW DEFAULT
OUT
RESET i***** 1/0 WRT 100/STUFF *****
iAND ALL DONE
ENDCMD
iRETURN TO CALLER
RET
iCODE ENTERED WHEN WE WANT TO DISPLAY THE CACHE ENABLE STATUS
PARBT iGET CURRENT STATUS
CEDIS: LDA
"'010 iIS THE CACHE BIT SET??
ANI
PNT.ON iHERE IF YES
CHOOSE: JNZ
PLINE OFFMSG iOFF HESSAGE DEPENDING THINGS
;PRINT LINE OF CHARS
RST
3
.ADDR OFFKSG ;BUFF TO PRINT
RET
;PRINTING 'ON' ACHAR AT ATIKE SAVES 1 BYTE
PNT.ON: PCHAR 10
iGO PRINT CHAR IN TRAILING BYTE
RST
1
10
iCHAR
TO PRINT
•BYTE
IN
iOVER
PRINTING IT AS ASTRING •• SPACE IS ALITTLE TIGHT
PCHAR
;GO PRINT CHAR IN TRAILING BYTE
RST
1
iCHAR TO PRINT
•BYTE IN
PCRLF
RST
4
•BYTE 2
RET

VER 6.2 KS10 CONSOLE PROGRAM
CMDS.M80
*** "TE" CMD

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-92

***

2893
2894
2895
2896 006012 332 036 014
2897
2898 006015 315 244 030
2899
2900 006020 175
2901 006021 027
2902 006022 027

2903 0.0.6023 346 004
2904 006025 107
2905 006026 072 354 040
2906 006031 346 373
2907
2908 006033 303 360 013
2909

2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929

.SBTTL *** "TE" CMD ***
iCONSOLE COMMAND TO ENABLE OR DISABLE THE 1 MSEC CLOCK
TECMD: JC

TEDIS

iIF NO ARG, DISPLAY CURRENT STATE

CALL

ARG16. iOTHERWISE , GO FETCH THE ARG

MOV
RAL
RAL
ANI
MOV
LDA
ANI

A,L
"04
B,A
PARBT
"0373

JMP

ENACOH iGO DO COMMON CODE

iGET INFO JUST TYPED
iBH 0 TO 1
iBIT TO 2
iOFF ALL BUT THE TIHE BIT
jSAVE STUFF IN B
iGET CURRENT DEFAULT
JOFF THE 1 MSEC CLOCK SIGNAL

006036 072 354 040
006041 346 004
006043 303 374 013

iTHIS CODE ENTERED WHEN
TEDIS: LDA
PARBT
"04
ANI
JHP
CHOOSE

006046 332 074 014

.SBTTL *** ·SC· CMD ***
iCODE TO TURN OFF OR ON, THE ABILITY TO RECOVER FROM SOFT CRAM ERRORS
iFLAG AT 0, MEANS TRY AND RECOVER, THEREFORE ITS THE DEFAULT ON
iHACHINE POWER ON •••
SCCMD: JC
SCDIS ilF NO ARG TYPED, GO DISPLY STATE OF THE THING

006051
0.06054
006055
006056

315 244 030
175
247
312 066 014

006061
006062
006065
(1) 006065
2930 006066
2931 006070
2932 0060.73
(1) 006073
2933
2934 006074
2935 006077
2936 006100
2937 006101

257
062 326 042

CALL
MOV
ANA
JZ

ARG16.
A,L
A
SC.TOFF

WE ONLY WANT TO DISPLAY CURRENT STATE OF 1 MSEC CLOCK
iWE NEED TO REPORT STATE •• GET DEFAULT
iIS THE BIT SET11
iGO TO ACOMMON PLACE THAT CHOOSES "YES· OR "NO'

;ELSE GO GATHER UUP AN ARGUMENT
iARG GOES INTO ACCUM
iSET 8080 FLAGS
iIF ZERO, TURN OFF SC SOFT CRAM RECOVERY

311

iFALL THRU IF TURNING ON SCE
XRA
A
iZERO ACCUM
STA
SC.OFF iSO THAT WE CAN SET THE APPROPRIATE FLAG
ENDCHD
HHAT'S IT
RET
iRETURN TO CALLER
SC.TOFF: MVI A,-1 ;WANT TO TURN OFF SCE, NEED -1 TO DO IT
STA
SC.OFF iZAP
ENDCItD
HIND OUT
RET
;RETURN TO CALLER

072 326 042
057
247
303 374 013

SCDIS: LDA
CItA
ANA
JMP

311
076 377
062 326 042

SC.OFF ;GRAB THE FLAG
iSINCE 0 .EQ. ON, WE HUST INVERT FLAVOR OF FLAG
A
;SET 8080 PROCESSOR FLAGS
CHOOSE iAND GO PRINT THE RIGHT THING

VER 6.2 I(S10 CONSOLE PROGRAH
CHDS.M80
"TP CMD"

***

2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
294S'
2950
2951
2952
2953
2954
2955
2956

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16150 PAGE 3-93

***

***.

006104 332 124 014

***

•SBTTL
TP CMIt
,CONSOLE COMHANIt TO ENABLE OR DISABLE THE TEN STYLE TRAPS
TPDIS ,GO ItISPLAY CURRENT STATE IF NOTHING TYPED
TPCMIt: JC
I

006107 315 244 030

CALL

ARG16. ,OTHERWISE, GO ASSEMBLE ANUMBER TYPEIt HI

006112
006113
006114
006115
006116
006117
006121

MOV
RAL
RAL
RAL
RAL
ANI
JHP

A,L

175
027
027
027
027
346 020
303 365 021

006124 072 355 040
006127 346 020
006131 303 374 013

,GET INFO THAT WAS TYPEIt
iBIT 0 TO 1
i1 TO 2
,2 TO 3
;3 TO 4
n020
JOFF ALL BUT TRAP BIT
TP.SET ;JUMP TO PLACE THAT SETS TRAPS, ANIl SAVES ItATA

;CODE TO DISPLAY CURRENT STATE OF SIGNAL
TF'DIS: LDA
TRAPEN ,GET CURRENT STATE OF TRAPS BIT
n020 ;SET CONItITION CODES
ANI
JMP
CHOOSE ;ANn GO DO IT

VER 6.2 KS10 CONSOLE PROGRAH CROSS - HICRO PROCESSOR ASSEHBLER 6(31) 3-HAY-79 16:50 PAGE 3-94
CHDS.H80
i*i "TP CHD" ii*
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990

iXXX.SBTTL
iii 'LT' CHD *ii
iCONSOLE COHHAND TO TURN ON THE LIGHTS ON THE CONSOLE FRONT PANEL
iX%%LTCHDI
CLRB KLNKSW iFORCE AFIXING OF THE LIGHTS
iXXX HVI
A,7
iLOAD ACCUM WITH ABIT FOR EACH OF THE 3 LIGHTS
iXXX OUT
LIGHTS ii**i* 1/0 WRT 101/7 **i*i
iXZZ CALL LTDLY ;LEAVE LIGHTS ON FOR ABOUT ASECOND
;XXX XRA
A
;CLEAR ACCUH
;XXX OUT
LIGHTS i***ii 1/0 WRT 101/0 i*iii
;FALL INTO CODE THAT WAITS AWHILE WITH THE LIGHTS OFF
006134 315 265 033
006137 377
006140
006141
006142
006143
006146

006147
006152
006154
006157
006162
006165
006170

053
175
264
302 134 014
311

315
076
062
062
062
315
303

050
041
361
Oll
251
376
336

034
040
042
040
035
034

i%%XLTDLYI
LTLOOPl CALL
.BYTE
DCX
HOV
ORA
JNZ
RET

H,300 iDELAY ABOUT ASECOND AND AHALF
LXI
DELAY. ;GO DO ALITTLE DELAY
-1
;MAX COUNT
H
A,L

iDOWN THE COUNT
;GET PIECE OF THE COUNT
H
iTHROW IN THE REST OF THE COUNT
LTLOOP iCONTINUE WAITING
i UNTIL ALL DONE

.SBTTL iii "1'11'1' CMD i**
iCOMMAND TO PUT THE 8080 INTO MANUFACTURING MODE.
iSETS THE STATE FOR THE KLINIK LINE THEN SENDS ACOMHUNICATIONS CLEAR
;TO WHATEVER IS AT THE OTHER END OF THE KLINIK LINE
MMCHDI CALL SETM4 iSET KLINIK LINE TO HODE 4
MVI
A,M041 ;WE MUST ALWAYS RESET THE MESSAGE NUMBERS
STA
LSTMSG iTHIS IS THE RECEIVE , MESSAGE NUMBER
STA
ENVHNO ;AND THIS IS THE "SEND" HESSAGE NUMBER
STA
MMFLG ;SAY MANUFACTURING MODE HAS BEEN ENTERED
CALL Z.TDUF ;CLEAR SOME COMMUNICATION DEClO BUFFERS
JMP
DECEX2 iCLEAR THE MAILING ENVELOPES
;i*USING JHP USES OTHER GUY'S RETURN TO RETURN
I

VEl< 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-95
CMDS.M80
*** '51' CHD ***
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
301)1,
3010
(1)

3011
3012
3013
3014
3015
3016
3017
301S
3019

006173 333 300
006175 346 004
006177 312 027 027
006202
006204
006206
006211

006214
006217
006220
006222
006224
006226
006226

006227
006232
006234
006236
006237
006241
006241

076
323
315
303

315
257
323
076
323

001
212
061 017
336 016

255 032
204
003
206

311

315
076
323
257
323

271 032
010
204
206

(1)
311
3020
3021
3022
3023
3024
3025 006242 315 244 030
3026
3027 006245 042 010 040
3028 006250
(1) 006250 311

.SBTTL *** 'SI' CMD ***
iCOMHANII TO CAUSE 51'110 TO EXECUTE ASINGLE INSTR.
RUNFP iBEFORE CONTINUING,HUST REAII MACHINE STATE
SICHD: IN
JIS THE RUN FLOP SET(IS IT ALREADY RUNNING??)(TRUE lO)
ANI
4
JZ
YSRUN ;IF YES, GO PRINT AMESSAGE TO THAT EFFECT &ABORT CHD
MVI
OUT
CALL
JHP

A,Ol
CPUCTl
DNF
PCCOI1

;SET BIT FOR 'CONTINUE'
i***** 1/0 WRT 212/1 *****
iCHECK THAT INSTR FINISHED
iANIt GO TO TYPE OUT THE PC

.SBTTL *** 'CS' CMIt ***
;COI1I1ANII TO START THE SHI0 CPU ClK RUNNING
CSctmt CAll SETRN ;SET ClK 'RUNNING' FLAG
XRA
iClR ACCUI1 TO ClR '55 HODE'
A
OUT
CRI1CTl i***** 110 WRT 204/0 *****
(1103
HVI
;SET BITS FOR 'ClK RUN' &'SINGLE ClK"
OUT
ClKCTl j***** 1/0 WRT 206/3 *****
;nONE ••
ENDCHI!
RET
iRETURN TO CAllER
.SBTTl i** 'CH' CMD ***
iCOI1MANII TO HALT THE 51'110 CPU ClK
CHCHII: CAll ClRRN iClEAR CLK 'RUNNING' FLAG
A,n0010 ;SET BIT FOR 'SS MODE'
HVI
OUT
CRHCTl ;***** 1/0 WRT 204/010 *****
XRA
A
;ClR BITS FOR 'SINGLE ClK' &'ClK RUN'
OUT
ClKCTl i***** 1/0 WRT 206/0 *****
ENDCMII
JDON£. •
RET
jRETURN TO CAllER
.SBTTl *** "LF' CMD ***
jCOHI1AWII TO 'lOAII FUNCTION' •• SPECIFIES WHICH IIIAG FUNCTION WRITE
JTO DO ON THE NEXT 'IIF' COHHANDS
lFCHD: CALL ARG16. iGO ASSEHBlE 16 BIT ARG(WE ONLY NEEII 4 BITS)
SHLII CRHFN
ENDCHII
F:ET

jPERMANENT HOME FOR DATA
jDONE ..
jRETURN TO CALLER

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) HIAY-79 16150 PAGE 3-96
CMDS.M80
*** 'DF' CMD ***
3030
3031
3032
3033 006251
(1) 006251
(1) 006252
3034
3035 006253
3036
3037
3038
3039
3040 006256
3041 006257
3042 006262
3043
3044 006263
3045 006264
3046 006266
3047 006267
3048
3049 006271
3050 006272
3051
3052 006274
3053 006276
3054
3055 006300
3056 006303
3057
3058
3059
3060
3061
3062 006305
3063 006307
3064 006311
3065 006312
3066 006314
(1) 006314
3067
3068
3069 006315

347
006
315 244 030

.SBTTl *** 'DF' CMD ***
iROUTINE WRITES THE DATA TYPED USING THE DIAG FUNCTION
iPREVIOUSlY SPECIFIED BY IF COMMAND
iIS CPU RUNNING??
DFCMDI RUN ..
RST
4
•BYTE 6
CALL

ARGI6. ,GO ASSEMBLE ARG

345
315 315 014
341

,NEXT ROUTINE DOES lOTS OF I/O WRTS TO SM10 CPU
iAll WHILE TRYING TO WRITE DIAGNOSTIC ADDRESS REG FOR CRAM
iLOAIIING OR READING ••
PUSH H
iSAVE DATA TO BE DEPOSITEn
CALL CRM.AD ,WRITE THE CRAM ADDRESS
iGET DATA TO BE DEPOSITED
POP
H

175
323 103
174
323 105

WFUNC: MOV
OUT
MOV
OUT

A,L
A2835
A,H
A2027

257
323 115

WFNCU XRA
OUT

,ClR ACCUM
A
BUSARB i***** I/O WRT 115/0 *****

076 144
323 210

MVI
OUT

072 010 040
323 205

076 040
323 204
257
323 204
311
052 004 040

iGET DATA FOR BITS
ii**** I/O WRT 103
iGET DATA FOR BITS
i***** I/O WRT 105

28-35 INTO ACCUM
*****
20-27
*****

A,"0144 HIITS FOR 'CONS REG','T ENB FOR COM/ADR','CRA RClK'
BUSCTl i***** I/O WRT 210/144 *****

lrtA
CRMFN iGET DIAG FUNCTION
OUT
DIAG i***** I/O WRT 205/FNC *****
,NOTE THAT 'TRAP EN' WAS JUST ZAPPED, BUT IT IS ONLY USEFUL IF THE
iMICRO-CODE IS RUNNING AND ANYTHING UDO TO GET THE MICRO-CODE RUNNING
,WILL RESTORE THE TRAP ENABLE .. THIS KLUDGE SPEEDS UP MICRO-CODE lOAD
MVI
OUT
XRA
OUT
ENIICMD
RET

A,"040
CRMCTl
A
CRMCTL

iBIT FOR 'CRAM WRT'
i***** 1/0 WRT 204/40
,BIT TO ClR 'CRAM WRT '
i***** 1/0 WRT 204/0 *****
inONE. •
;RETURN TO CALLER

ySIMPLE LITTLE ROUTINE TO SAVE SOME SPACE •• USEII IN SEVERAL PLACES
CRM.ADI lHlD CRMAD iLOAD DIAG ADnR TO BE WRITTEN

VER 6.2 KSIO CONSOLE PROGRAM
CHDS.Hao
[If'" CHD

*** ·

076 001
323 204
257
323 204

iROUTINE COUNTS
CA£tWRl MVI
OUT
XRA
OUT

006327
006330
006332
006333

175
323 103
174
323 105

,i**i* 1/0 WRT
HOV
OUT
MOV
OUT

006335
006336
006340
006342

257
323 107
323 111
323 113

XRA
OUT
OUT
OUT

A
A1219
A0411
AOO03

006344 323 115

OUT

BUS ARB i**i** 1/0 WRT 115/0

006346
006350
006352
006354
006356
006357
006361

MVI
OUT
MVI
OUT
XRA
OUT
RET

A,n0144
BUSCTl
A,n021
CRMCTl
A
CRMCTL

076
323
076
323
257
323
311

144
210
021
204
204

3099

3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
311B
3119
3120

***

006320
006322
006324
006325

3071

3072
3073
3074
3075
3076
3077
30713
3079
30BO
3081
30B2
30B3
30B4
30B5
3086
3087
30B8
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098

CROSS - MICRO PROCESSOR ASSEMBLER 6{31) 3-MAY-79 16150 PAGE 3-97

006362
006363
006366
006367
006371
006373

127
072
262
323
076
323

355 040
205
115
210

ON DATA
A,Ol
CRMCTl
A
CRMCTL

IN %l' +.£tESTROYS 'Hll' •••
,BIT FOR CRAM RESET
iiiii* 1/0 WRT 204/1 *iiii
iClR BIT TO CLR CRAM RESET
,iiiii 1/0 WRT 204/0 *i*ii

103,105,107,111,113 *iiii
A,L
iLO ORDER B BITS TO ACCUM
A2B35 ,SET IN HARDWARE REG
A,H
,HI ORDER 4 BITS TO ACCUM
A2027 ,SET INTO HARDWARE REG
iClR ACCUM
iCLR OTHER HARDWARE REGS

*****

,BITS FOR ·CONS REG', 'T ENB FOR COM/ADR',·CRA R ClK'
iiii** 1/0 WRT 210/144 i*ii*
iBIT FOR 'CRM AIIDR lOAn'
iiiiii 1/0 WRT 204/21
,BIT TO ClR CRAH ADDR lOAII
iiiiii 1/0 WRT 204/0 *iiii
iANII RETURN

;ROUTINE TO READ ASINGLE DIAG FUNC WORTH OF STUFF FROM
,THE CRAlCRti PROCESSOR BOARIIS
II,A
READC: MOV
iSAVE IIIAG FUNC FOR ASEC ••
TRAPEN iGET CURRENT VALUE FOR TRAP ENABLES
lDA
,MIX TOGETHER
ORA
D
OUT
DIAG
ii*ii* 1/0 WRT 205/FNC *iiii
A,n0115 iBITS 'CONS REG','CRA T ClK','R ClK ENB','CRA R ClK'
MVI
OUT
BUSCTL iiiiii 1/0 WRT 210/115 iiii*

006375 333 000
006377 057
006400 062 100 040

IN
CMA
STA

333 001
057
346 017
062 101 040

IN
CMA
ANI
STA

ii***i 1/0 RD 1 *****
iFIX INVERSION
no 17
,KEEP ONLY 12-8
TMPB2tl ,SAVE IN STANDARII BUFFER

006413 257
006414 323 210

XRA
OUT

A
iCLR ACCUM
BUSCTL i***** 1/0 WRT 210/0

006416 311

RET

006403
006405
006406
006410

D2B35
THPB2

i*i**i 1/0 RII 0 *i***
,FIX INVERSION
;SAVE IN STANIIARD BUFFER

II2027

iRETURN

*****

VER 6.2 KSI0 CONSOLE PROGRAM
CMDS.H80
i** IRC· i**
3122
3123 006417
(1) 006417
(1) 006420
3124
3125 006421
3126 006422
3127 006425
3128 006426
3129
3130 006431
3131 006434
3132 006435
3133
3134 006440
3135 006441
3136 006444
(2) 006444
(2) 006445
3137 006446
3138 006451
(2) 006451
(2) 006452
3139
3140 006453
3141 006454
3142 006455
3143 006460
3144 006461
3145
3146
3147
3148 006462
3149 006465
3150 006466
3151 006467
3152 006470
3153 006471
3154 006472
3155
3156 006473
3157 006474
3158 006475
3159 006477
3160
3161
3162 006502
(1) 006502

347
006

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-98
.SBTTL ii* IRC I i*i
RCCMD: RUN ..
RST
4
.BYTE 6

JIS CPU RUNNING??

257
RCIHl: XRA
001 341 040
LXI
137
RCLP: MOV
315 362 014
CALL
iNOW PRINT WHAT
072 120 040
LDA
247
ANA
302 062 015
JNZ

iCLEAR ACCUM FOR USE AS ACOUNTER
A
B,CRMBFfft D31 iPNTR TO ABUFFER AREA TO SAVE THE "RC'SI AS READ
E,A
;SAVE IN lE" REG
READC iREAD ADIAG FUMC FROM CRA/CRM BRD
WAS READ
NOPNT ;WE WILL HAKE IT QUICKER IF NOT PRINTING RESULTS
;SET FLAGS
A
RCHOP iIF NO PRINT, AVOID TYPING CODE

173
315 304 030

A,E
;PUT IN MEM FOR PRINT ROUTINE
P8BITA iPRINT NAME OF THIS DIAG FUNe
iAND III
1
iGO PRINT CHAR IN TRAILING BYTE
SLASH iCHAR TO PRINT
P16.
iAND PRINT IT

347
002

MOV
CALL
PSLASH
RST
.BYTE
CALL
PCRLF
F.-ST
•BYTE

305
325
315 205 034
321
301

PUSH
PUSH
CALL
POP
POP

B
iSAVE COUPLE REGS WHILE GO DECNET
D
DECNET iYES •• SEND THIS GROUP OF DATA DOWN THE KLINIK LINE
iRETRIEVE THOSE REGISTERS
D

317
057
315 314 030

052 100 040
174
002
013
175
002
013
034
173
376 020
302 025 015

311

4
2

II

iCODE FOR SAVING THE RESULTS OF THESE FUNCTION READS IN THE 8080 RAM SPACE
iFOR HOW WE WILL SAVE THE RESULTS IN THE PLACE WHERE CRAH DATA IS KEPT
RCMOP: LHLD TMPII2 iFETCH UP THE DATA THAT WAS ACTUALLY READ
A,H
;GET LO ORDER PIECE TO ACCUM
MOV
STAX B
iSTORE TO PLACE POINTED TO BY "D,E I
DCX
;UPDATE THE STORAGE POINTER
B
A,L
MOV
;GET HI ORDER PIECE OF CRAM DATA
STAX B
iSAVE IN STORAGE AREA
DCX
B
iAGAIN DOWNDATE POINTER TO BEGINING OF ACTUAL
IHR
MOV
CPI
JNZ
iOTHERWISE
EHDCHD
RET

E
A,E
ft020
RClP

i INCREMENT IT
iCOPY CURRENT COUNT TO ACCUH FOR THE COMPARE
iREACHED MAX YET??
iBACK IF NOT YET ••
iDONE •••
iRETURN TO CALLER

VER 6.2 KSI0 CONSOLE PROGRAM
CMDS.M80
*** 'EJ' CHD
3164
3165
3166
3167
3168 006503
(U 006503
(1) 006504
3169 006505
3170 006510
3171
3172 006513
3173 006514
3174
3175 006516
3176
3177 006521
3178
3179 006524
3180 006525
3181 006530
(1) 006530
(1) 006531
3182 006532
(1) 006532
(1) 006533
3183 006534
3184
3185 006535
3186 006536
3187 006537
3188 006540
3189
3190 006541
3191 006542
3192
3193 006545
(2) 006545
(2) 006546
3194
3195 006547
(1) 006547
3196
3197 006550
3198 006555
3199 006562
3200 006565

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-99

***

347
006
041 150 015
001 207 004

.SBTTl *** 'EJ' CMD ***
iCONSOlE COMMAND TO DISPLAY THE FLOW OF THE CONTROL STORE BY PRINTING
iOUT THE CURRENT 'J-FIElD', 'NEXT LOC', 'SUBROUTINE RET REG', , 'CURRENT
; LOCATION'
iIS CPU RUNNING~~
EJCMDI RUN ••
RST
4
•BYTE 6
LXI
H,EJLST iFIRST GET APNTR TO ASCII TEXT
B,~BI0010000111 ;SET B=4 , C='10,OO,01,11'
LXI

171
346 003

EJLPI

MOV
ANI

A,C
3

iCOPY DIAG FUNC STRING TO ACCUM
iSTRIP ALL BUT LO ORDER 2 BITS

315 362 014

EJU

CALL

REAItC

;GO READ ItIAG FUNC AS GIVEN BY ACCUM

315 160 004

CALL

PUll

iPRINT ASCII IItENTIFIER FOR THIS FUNC

345
315 314 030

H
P16.
SPACE

iSAVE 'HIL'
iAND GO PRINT IT AS 16 BIT OCTAL

1

i60 PRINT CHAR IN TRAILING BYTE
iCHAR TO PRINT

317
040
341

PUSH
CALL
PCHAR
RST
•BYTE
PCHAR
RST
•BYTE
POP

171
017
017
117

MOV
RRC
RRC
MOV

A,C
C,A

;GET FUNCTION PICKER
iSHIFT FUNCTION LIST
; 2 PLACES
iPUT BACK FUNCTION

005
302 113 015

ItCR
JNZ

B
EJlP

iNOW IIOWN THE COUNTER
iAND JUMP TO THE EXECUTING COIlE

317
040

iGO PRINT CHAR IN TRAILING BYTE
iCHAR TO PRINT
iGET 'H,L" BACK

PCRLF
iANIt ACR-LF
RST
4
•BYTE 2
iELSE •• ENIt OF COMMANIt
ENItCMIt
iRETURN TO CALLER
RET
iRETURN TO CALLER

347
002
311
103
116
112
123

SPACE
SPACE
1
SPACE
H

125
130
057
125

122
124
000
102

EJLSn .ASCIZ
.ASCIZ
.ASCIZ
.ASCIZ

XCURn
XNXT/X
%JIX
XSUBIX

iFUNC
iFUNC
iFUNC
iFUNC

03
01
00
02

IS
IS
IS
IS

CURRENT CRAM LOCATION
NEXT LOC
J-FIELII
SUBROUTINE RETURN REG

VER 6.2 KS10 CONSOLE PROGRAM
CMDS.M80
*** 'TR' CMD
3202
3203
3204
3205
3206
3207 006572
3208 006575
(1) 006575
(1) 006576
3209 006577
3210
3211 006601
3212 006603
3213
3214 006606
(1) 006606
(1) 006607
3215 006610
3216 006612
3217 006615
3218 006616
3219 006621
3220 006624
3221 006627
3222
3223 006630
3224 006633
(2) 006633
(2) 006634
3225
3226 006635
3227 006640
3228 006641
3229
3230 006644
3231 006646
(1) 006646
3232

332 206 015
347
004
152 040

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-100

t**
.SBTTL *tt 'TR' CMD t**
JTHIS CONSOLE COMMAND TRACES THE.FLOW OF THE MICRO-CODE BY TYPEING
JTHE 4 KNOWN ADDRESSES FROM THE CONTROL RAM ADDRESS BRD, THEN ISSUEING
jA SINGLE CPU PULSE AND CONTINUING THIS UNTIL THE USER TYPES A
jCARRIAGE RETURN.
jIF NO ARG, GO LIKE NORMAL
TRCMDt JC
TR1
jIF WAS ARG, GO GET IT
ARG16
RST
4
•BYTE 4
.ADDR BRKDT jPLACE TO PUT IT

076 077
062 151 040
TRU
347
006
072
247
312
021
315
310

151 040
230 015
152 040
171 030

315 251 015
347
002
072 157 040
247
312 212 015

311

TR:

TRLP;

MVI
STA

A,'077 jNOW ANY ARBITRARY,NON-ZERO VALUE
BRKON JTO SAY THAT BREAKING IS ON ••

RUN ••
RST
•BYTE
CLRB
LDA
ANA
JZ
LXI
CALL
RZ

4
6
RPEND
BRKON
A
TRLP
D,BRKDT
BREAK

CALL
PCRLF
RST
•BYTE

LDA
ANA
JZ
jOTHERWISE, END
CLRB
ENDCMD
RET

JIS CPU RUNNING??

PULSE

j50 CAN CLR CMD CNTR
jCHECK IF BREAK IS ON
jCHECK FLAG
jIF ZERO,DONT LOOK AT BREAK STUFF
jPASS PNTR TO THE DESIRED STOPPING ADDRESS
jIF FLAG SET, CALL TO CHECK ADDRESS
;IF RETURN WITH Z-SET, WE ARE AT BREAK PLACE
jGIVE PULSE
jCARRIAGE RETURN LINE FEED

4
2
RPEND jGET CMD CNTR
A
JIS IT SETn
jWELL, CONT LOOP IF NOT YET
TR
THE COMMAND
BRKON JAND CLR THE FLAG
JDONE ..
jRETURN TO CALLER

('

VER 6.2 KSI0 CONSOLE PROGRAM
CMDS.MBO
IPMI CMD

***

3234
3235
3236
3237
323B
3239 006647
(1) 006647
(1) 006650
3240
3241 006651
3242 006654
3243 006657
(1) 006657

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16;50 PAGE 3-101

***

***.

347
006
315 204 013
315 103 015
311

***

•SBTTL
PM' ctm
iCONSOLE COMMAND TO 'PULSE' 'MICRO-COnE', .. IE GIVE
iA SINGLE PULSE AND THEN AN 'EJ' COMMAND ••
iCOMMAND IS EGUIVILANT TO THE 'TR" TRACE COMMAND,
iONLY EXECUTING THE TRACE ONCE ••
PMCtm: RUN ••
iIS CLK RUNNING??
RST
4
•BYTE 6
PULSE; CALL CPI
CALL EJCMD
ENIICHD
RET

iGO DO ASINGLE CLOCK
HYPE CONTROL STORE ADDRESSES &EXIT FROM THERE
iANII OUT
iRETURN TO CALLER

VER 6.2 KS10 CONSOLE PROGRAM
CMDS.M80
*** "EC" CHD
3245
3246
3247 006660
(1) 006660
(1) 006661
3248 006662
3249 006665

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-102

***

347
006
332 302 015
315 331 013

.SBTTL *** "EC" CMD ***
jROUTINE TO READ THE C-RAM AND TYPE IT OUT
ECCMD: RUN ••
iIS CPU RUNNING??
RST
4
•BYTE 6
;IF NO ARG, DONT GO ASSEMBLE ONE
JC
EC2
CALL LCCMD ;FETCH UP DESIRED CRAM ADDRESS

3250

3251 006670
(1) 006670
(1) 006671
(1) 006672
3252
3253 006674
3254 006677
3255
3256 006702
3257 006704
3258
3259
3260 006707
3261
3262 006712
3263 006713
3264 006714
3265 006715
3266
3267
3268 006720
3269 006723
3270
3271 006726
3272 006731
3273 006734
3274 006735
3275
3276 006736
3277 006741

105 040

CLRRM
RST
•BYTE
.ADDR

TMPB2 ;ZAP ATEMPORARY BUFFER
4
10 •
TMPB2f5

315 315 014
315 204 013

CALL
CALL

CRM.AD iNOW WRITE DESIRED CRAM ADDRESS
CPl
;AND GIVE ASINGLE CLK PULSE TO LOAD CNTRL REG

076 006
EC2:
062 031 040

MVI
STA

A,06
ENEXT

ECl:
347
012

041 041 016

iNOY READY TO READ THE CONTROL REG
LXI
H,RDLST ;GET PNTR TO DIAG FUNCTIONS TO BE READ

176
ECLP:
043
247
372 344 015
315 362 014
042 170 040
041 100 040

;SET UP "EXAMINE NEXT" TYPE COMMANDS
;SAVE EXAMINE STUFF IN RAM

MOV
INX
ANA
JM

ArM
H
A
ECBEE

;GET DIAG FUNCTION TO ACCUM
;UPDATE PNTR
;WAS FNC END-OF-LIST(YES IF WAS MINUS)
iJHP IF WAS END OF LIST

iOTHERWISE, WE MUST DO ADIAG FUNCTION
CALL READC iGO READ THIS DIAG FUNC,DATA RETURNED IN "TMPB2"
SHLD ECSAV iNOW SAVE "H,L" FOR AMINUTE

315 032 031
002
004

LXI
CALL
.BYTE
.BYTE

H,TMPB2
OCTAL
2
4

iPOINTER TO DATA JUST READ
iNOY TURN DATA INTO ASCII OCTAL CHARS
;TWO BYTES RELEVANT DATA
iWANT 4 OCTAL CHARS

052 170 040
303 312 015

LHLD
JHP

ECSAV
ECLP

iRESTORE THE "H,L"
iAND CONTINUE TILL READ ALL DIAG FUNCS

VER 6.2 KS10 CONSOLE PROGRAM
CMDS.MSO
"EC" CMD

***

3279
3280
32S1
3282
3283
3284
3285
3286

006744 176
006745 043
006746 247
006747 372 012 016

006752 315 362 014
006755
(1) 006755 347
(1) 006756 000
3287 006757 100 040
3288 006761 073 040
3289
3290 006763 176
3291 006764 043
3292 006765 315 362 014
3293
3294 006770 345
3295 006771 315 022 033
3296 006774 100 040
3297 006776 073 040
3298 007000 341
3299 007001 312 344 015

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-103

***

HERE, YOU/VE READ ALL FUNCS, NOW READ &CMP A&B COPIES
A,M
iGET DIAG FUNC FOR AN "A" COpy
H
iUPDATE KEK PNTR
iDID DIAG FUNC HAVE MINUS SIGN??
A
PCRAM iDONE LIST, JMP IF WAS KINUS
AND READ THE "A" COPY AGAIN
READC iDATA RETURNED IN "TMPB2'
iMOVE THAT DATA TO 2ND TMP BUFF
4
•BYTE 0
.ADDR TMPB2 iSRC OF DATA
.ADDR TMPBF2 i PLACE TO PUT IT

iWHEN UGET TO
ECBEE: MOV
INX
ANA
JK
iOTHERWISE, GO
CALL
MOV5B
RST

MOV
INX
CALL

A,M
H
READC

iGET DIAG FUNC FOR A'B' COpy
;UPDATE PNTR
iNOW READ A"B' COPY

PUSH
CALL
.ADDR
.ADOO
POP
JZ

H
CKP36
TMPB2
TMPBF2
H
ECBEE

iSAVE "HIL"
iNOW COMPARE THE "A" AND "B" COPIES
PB" COpy
i IA" COPY
iRESTORE "H,L"
iIF CHECKED OK, BACK TO READ NEXT "AIB" COPIES

3300

3301
·3302 007004

007004 337
007005 104 037
3303 007007 303 021 015
3304
(1)
(1)

iFALL THRU TO VERIFY ERROR IF ·Z" NOT SET
PUNE ECVER P1VERIFY ERR"
iPRINT LINE OF CHARS
RST
3
.ADDR ECVER ;r~UFF TO PRINT
JMP
RCINT ;GO PRINT ALL CRAM REGS

VER 6.2 KSI0 CONSOLE PROGRAM
CMDS.M80
*** 'EC' CMD
3306
3307
3308
3309
3310
(2)
(2)
3311
3312
3313
3314
3315
3316
3317
3318
3319
(2)
(2)
3320
3321

007012
007014
007017
007022
007022
007023

***

076 003
315 362 014
315 314 030
317
057

007024 006 040
007026 361
007027 315 010 004
007032 005
007033 302 026 016
007036
007036 347

007037 002
007040

(1)

007040 311

3322
3323
3324
3325
3326
3327
3328
3329

007041 017
007042 016
007043 015
007044 014
007045 012

007046 005
007047 004

007050 000

3330 007051 377
3331 007052 012
3332 007053 013

3333
3334
3335
3336
3337
3338
3339

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-104

007054 005
007055 006

007056 377

007057 052 004 040
007062 043
3340 007063 042 004 040
3341 007066 303 270 015

jIF IA/BI COPIES VERIFIED, TIME TO PRINT C-RAM CONTENTS
A,03
PCRAM: MVI
JDIAG FUNC TO READ "CURRENT CRAM LOCATION"
CALL READC iGO READ CURRENT CRAM LOC ••
;PRINT IT
CALL P16.
; AND 1/'
PSLASH
iGO PRINT CHAR IN TRAILING BYTE
RST
1
•BYTE SLASH iCHAR TO PRINT
iNOW PRINT THE
MVI
PCRLP: POP
CALL
DCR
JHZ
PCRLF
RST
•BYTE
EHDCMD
RET
RDLST: •BYTE
•BYTE
•BYTE
•BYTE
•BYTE
•BYTE
•BYTE
.BYTE
•BYTE
•BYTE
.BYTE
•BYTE
•BYTE
•BYTE

32 OCTAL
B,32.
PSW
PCHR
B
PCRLP

CHARS •••••••
iNUM CHARS TO PRINT
iGH ACHAR
iPRINT IT
iDOWN COUNT OF CHARS PRINTED
iLOOP TILL DOHE
iNEED CR-LF

4
2

"'017
"016
"'015
"'014
"'012
"'05
"04
0
"'0377
"'012
"'013
"'05
"'06
"'0377

;THEN OUT
iRETURN TO CALLER
iREAD 84-95
iREAD 72-83
;READ 60-71
iREAD 48-59
iREAD 36-47A
iREAD 24-35A
iREAD 12-23
iREAD 0-11
iEND BYTE
iREAD 36-47A
iREAD 36-47B
iREAD 24-35A
;READ 24-35B
iEND BYTE

.SBTTL *** IEH" CMD ***
ENEC: LHLD CRMAD iGET CURRENT ADDRESS
iUPDATE IT
INX
H
SHLD CRMAD iPUT IT BACK
JMP
ECI
iGO TO COMMON CODE

VER 6.2 KSI0 CONSOLE PROGRAM
CMDS.M80
*** "DC" CMD
3343
3344
3345
3346
3347
3348
3349
3350

007071 052 004 040
007074 043
007075 042 004 040

007100
007100
007101
3351 007102
3352 007105
3353
3354 007107
3355 007112
3356 007115
3357
3358
3359 007117
3360 007122
3361 007124
3362 007127
3363 007130
3364
3365 007133
3366 007134
3367 007135
3368
3369 007136
3370 007137
3371
3372 007142
3373 007145
3374
3375 007150
3376 007152
3377 007155
3378 007156
3379 007161
3380
3381 007162
3382 007163
3383 007164
3384 007165
3385
3386 007166
3387 007167
3388 007172
3389
3390 007173
3391 007174
3392 007175
3393 007200
(1) 007200
(1)
(1)

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16150 PAGE 3-105

***

347
006
315 227 031
322 040

.SBTTL *** "DC" CMD ***
.SBTTL *** "DN TO DC" CMD ***
iCODE USED IN DEPOSIT NEXT FOR THE CRAM
DNDC; LHLD CRMAD ;GET CURRENT ADDRESS
INX
H
i INCREMENT IT
SHLD CRMAD iPUT IT BACK
DCCMD; RUN ..
RST
•BYTE
CALL
.ADDR

021 302 040
041 322 040
016 004
315
076
315
014
315

062 032
003
156 031
062 032

LXI
LXI
I1VI

iIS CPU RUNNING!!
4
6
ARG96
CRMTM

iASSEMBLE DATA TO DEPOSIT
iPLACE TO PUT IT

D,CRMBF iPLACE TO PUT THE RESULTS OF THE CRAM SHUFFLE
H,CRMTM iTHE OLD 12-BYTE FORMAT WILL ALWAYS BE HERE
C,4
iLOAD "C" WITH A4

iBEGIN THE UNPACKING
GENLP; CALL PLACE
A,3
MVI
CALL SHR24
•BYTE 12.
CALL PLACE

iLOCAL ROUTINE THAT TAKES 12 BITS OF 24.
iA SHIFT 24 REQUIRES 3 BYTES OF DATA TO SHIFT
iSHIFT 12 BITS JUST PACKED INTO OUTER SPACE
iTELL ROUTINE 12 PLACES
iNOW ROUTINE WILL GET 12 MORE BITS •• 12+12=24

043
043
043

INX
INX
INX

H
H
H

iUPDATE PNTR 3-BYTES(IE 24 BITS)

015
302 117 016

DCR
JNZ

C
GENLP

iDOYN THE COUNTER(THERE ARE 4 GROUPS OF 24=96}
;CONTINUE TILL DONW THE 4 GROUPS

315 315 014
041 302 040

CALL
LXI

CRM.AD iWRITE THE CRAM ADDRESS
H,CRMBF iGET PLACE WHERE INFO WAS JUST PLACED

076 006
062 033 040
074
001 010 040
002

MVI
STA
INR
LXI
STAX

A,06
DNEXT
A
B,CRMFN
B

iNUMBER FOR DEPOSIT NEXT TO USE
iSTANDARD PLACE TO KEEP IT
;SET FUNCTiON .EQ. 7(INR WORKS BY LUCK)
iSET AN ADDRESS INTO "B,C" REGISTER,TO USE AS APOINTER
iSAVE IT IN THE RAM AT LOC "CRMFN"

136
043
126
043

MOV
INX
HOV
INX

E,M
H
D,H
H

;GET 8 BITS OF DATA
iUPDATE PNTR
;GET 4 MORE BITS OF DATA
iAND UPDATE PNTR AGAIN

353
315 263 014
353

XCHG
CALL
XCHG

WFUNC

iNOW "H,L" CONTAINS THE DATA i "D,E THE PNTR
iAND DIAG FUNCTION WRT
iPOINTER BACK TO "H,L"

012
075
362 161 016

LDAX B
DCR
A
JP
DCLP
ENDCHD
RET

311

DCLP;

I

iGET PARTICULAR DIAG FUNC FROM RAH LOC
iDOWN TO NEXT
iAS LONG AS 0-7, KEEP GOING
iNOW ALL DONE
iRETURN TO CALLER

VER 6.2 KS10 CONSOLE PROGRAM
CI'IDS.HBO
*** "Si'l" CHD
3395
3396
3397
339B
3399
3400
3401
3402
3403
3404
3405
3406
3407
340B
3409
3410
3411

***

007201 332 212 016

.SBTTL *** ·SH" CHD ***
iconE TO START THE MICRo-conE AT THE A£tnRESS SPECIFIEIi ••
;nEFAULTS TO STARTING AT C-RAH LOC 0 IF NO AnDRESS IS
,GIVEN
SMCHn: JC
SM1
,IF NO ARG, SUPPLY AnnRESS OF 0000

007204 315 244 030

;OTHERWISE HUST ASSEMBLE THE GIVEN AnnRESS
CALL ARG16. ;ASSEMBLE 16-BITS OF ARGUMENT

007207 303 215 016

JMP

SM1.5

,OTHERWISE, CONTINUE NORMALLY

007212 041 000 000
007215 042 000 040

SMU
LXI
SM1.5: SHLn

H,OO
TBODT

HF HERE, DESIRE ADDRESS OF 0000
,SET A[I[lR

007220 315 225 005

CALL

HRCMD

,RESET THE MACHINE

347
000
256 022
047 040

HOV5B
RST
•BYTE
.AnnR
.ADDR

4
0
ONES
DHDAT

021 364 016
315 237 012

LXI
CALL

£t,HA£tOoO ,GET ADDRESS OF MEM LOC 0
[lMINT ,"DEPOSIT MEMORY· INTERNAL FORMAT

072 354 040
346 140
323 100

LIlA
PARDT
"'0140
ANI
OUT RESET

,GET PARITY STUFF
;ONLY KEEP ALITTLE BIT
iAND TURN OF ALL PARITY STUFF WHILE WE no THIS

052 000 040
315 320 014

LHLD
CALL

TBODT
CADWR

,GET START ADDRESS OF MICRO-CODE TO "HI L'
;WRITE THE DIAG ADDRESS REG

315 214 014

CALL

CSCMIt

,START THE CPU CLK FREE RUN

007223
007223
(1) 007224
3412 007225
3413 007227
3414
3415 007231
3416 007234
3417
3418 007237
3419 007242
3420 007244
3421
3422 007246
3423 007251
3424
3425 007254
(1)

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-106

iSET UP INITIAL nATA
,DATA TO BE IS ALL ONES
iPLACE WHERE IT GOES

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-107
CMDS.MSO
U* •SM' CMII U*
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436

007257
007262
007263
007266
007270
007271
007273

007276
(1) 007276
(1) 007277
3437 007301
3438 007302

315
377
315
333
057
346
302

265 033
346 006
300
010
305 016

337
146 037
067
303 356 016

HLTCM: CALL
•BYTE
CALL
IN
CMA
ANI
JNZ

I1ELAY. iNOW WAIT FOR MICRO-COIlE TO REACH HALT LOOP
-1

CLRUSE iEXIT FROM USER MOIlE
RUNFP iii*i* 1/0 RII 300 ii***
iANII FIX INVERSION
"'010 iIS CPU IN THE HALT LOOP'??'?
SMVER iJUMP IF YES .. APPEARED TO START OK

iFALL TO HERE IF SM10 [lIII NOT SET HALT LOOP FLAG
PLINE SMERR iPRINT ERR MESSAGE
iPRINT LINE OF CHARS
RST
3
.ADIIR SMERR iBUFF TO PRINT
STC
iSET C-BIT TO INIIICATE AN ERROR EXIT
JMP
SMFINI iANII EXIT VIA RESTORE PARITY PATH

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16150 PAGE 3-108
CMDS.MBO
*** 'SH' CHD ***
3440 007305
(1) 007305
3441 007306
(1) 007306
(1) 007311
3442 007313
(1) 007313
3443
3444
3445
3446 007314
3447
344B
3449 007317
(1) 007317
(1) 007320
3450 007322
3451 007325
3452 007330
3453
3454 007332
(2) 007332
(2) 007333
3455 007334
(2) 007334
(2) 007335
3456 007336
(1) 007336
3457 007337
(1) 007337
(1) 007342
3458 007344
(1) 007344
3459 007345
(1) 007345
(1) 007346
3460 007350
3461 007353
(2) 007353
(2) 007354
3462 007355
3463
3464
3465 007356
3466 007361
3467 007363
3468 007364
3469 007364
3470

;SET INTERAL STATUS FOR THE EXAMINE
SMVER: INTON
RST
iGO SET INTERNAL MODE
2
iEXAMINE MEM LOC O ; IRETRYABLP ERROR?'?
MVI
iCOMPARE
CMP
Ii
iOUT IF CAN'T EVEN RETRY •• DIE
RNZ

4098 011174 061 000 044
4099 011177 041 344 003
4100 011202 345

JAND HERE IF IT WAS RETRYABLE
LXI
SP,RAMST+ 02000 iFIRST CLEAR THE STACK
H,NORML jPUT ARETURN ADDRESS ONTO THE STACK
LXI
PUSH H

4096
4097

ft

ft

4101

4102 011203 052 221 040
4103 011206 351

LHLD
PCHL

CMD ••

iNOW GET IWHICH COMMAND TO RETRY
iGIVE IT AGO
1

VER 6.2 KSI0 CONSOLE PROGRAM
CMDS.M80
*** "MB" CMD
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
411B
4119

011207
011212
011215
011220
011223

221
224
035
347

040
022
022
021

011224 315 015 023
011227 072 356 040
011232 062 254 040

011235
011235
(1) 011236
4120 011237
4121 011241
4122 011243
4123
(1)

042
315
315
315
311

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-133

***

347
000
367 040
242 040
311

.SBTTL *** 'MB' CMD ***
;COMMAND TO LOAD ONLY THE BOOTSTRAP OFF OF THE CURRENTLY SELECTED MAGTAPE
MBCMD: SHLD CMD .. ;SAVE WHICH COMMAND THIS IS
CALL MTSETUP ;GO TO SOME COMMON CODE TO SET UP FOR MAGTAPE XFER
CALL MBINT JAND GO
CALL BT.GO ;START UP THE MICRO-CODE &INTERNAL OFF
RET
;BACK TO NULL JOB LOOP
JSOME COMMON CODE THAT
;BYTES OF 8080 SPACE
MTSETUP: CALL BTlNT
LDA
MTAUBA
STA
UBANUM
MOV5B
RST
•BYTE
.ADDR
.ADDR
RET

SETS UP PARAMETERS FOR MAGTAPE XFER'S •• SAVES AFEW
iFIRST SET UP FOR THE BOOTING PROCESS
;GET SELECTED UBA FOR MAGTAPE
jPASS TO COMMON SPOT FOR CHANNEL COMMAND LIST TO FIND
JAND MOVE THE SELECTED MT BASE FOR RH BASE TO FIND

4

0
MTBASE iSELECTED MAGTAPE RH BASE ADDRESS
RHBASE ;COMMON RH BASE REGISTER LOCATION
;BACK TO MAILINE

VER 6.2 KS10 CONSOLE PROGRAM
CMDS.M80
i*i IMBI CMD
4125 011244

4126 011251
4127 011256

4128
4129
4130

4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159

CROSS - MICRO PROCESSOR ASSEMBLER. 6(31) 3-MAY-79 16:50 PAGE 3-134

***

tlAlOOO:
HOMEWD:
ONES:
.SBTTL
;--PAGE

0,0,,17000
D505,755,,000,000 ;IHO"I MEANS HOME BLOCK
D777,777,,777,777 ;ALL ONES •••
FILE SYSTEM
OF POINTERS FORMAT-+0
POINTER TO FREE
+1
LENGTH OF FREE
[I

+2
+3

POINTER TO MICRO-CODE
LENGTH OF MICRO-CODE

+4
+5

POINTER TO MONITOR PRE-BOOT
LENGTH OF PRE-BOOT

+6
+7

POINTER TO DIAG PRE-BOOT
LENGTH OF SAME

+10
+11

POINTER TO BCl MICRO-CODE
LENGTH OF SAME'

+12
+13

POINTER TO BC2 PRE-BOOT
LENGTH

+14
+15

POINTER TO MONITOR BOOT PROGRAM
LENGTH OF SAME

+16
+17

POINTER TO DIAGNOSTIC BOOT
LENGTH OF SAME

+20

+21

POINTER TO BC2 ITSELF
LENGTH OF SAME

+22
+23

POINTER TO FI-ABLE 0
LENGTH OF SAME

+776
+777

POINTER TO FI-ABLE 366(8)
LENGTH OF SAME

4160

4161
4162
4163
4164

VER 6.2 KSI0 CONSOLE PROGRAM
CMIIS.MBO
FILE SYSTEM
4166
4167
4168
4169
4170
4171
4172
4173
4174
41.75
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
41B7
4188

CROSS - MICRO PROCESSOR ASSEMBLER 6{31} 3-MAY-79 16:50 PAGE 3-135
iROUTINE TO 'FINII THE B080 FILE SYSTEM', WHICH IS REALLY JUST APAGE
iOF PHYSICAL POINTERS, TO PHYSICAL I1ISK LOCATIONS
MICROP: LXI
I1,nOl002 iFOR MICROCODE, ALWAYS GO TO 2NII POINTER
iSAVE POINTER INTO THE FILE PAGE
FILEINIT: PUSH D
CALL BTINT iANIt SET UP TO ItO AREAIIIN
POP
iRESTORE 'It,E' •• KLUDGY WAY TO MAKE SUBROUTINE HAVE
It
FILESH: PUSH It
MULTIF'lE ENTRY POINTS
CALL DSKIIFT iFETCH CURRENT I1ISK I1EFAULTS

011263
011266
011267
011272
011273
011274

021 002 002
325
315 015 023
321
325
315 026 023

011277
011302
011305
011306

041 000 000
042 112 040
043
042 105 040

LXI
SHLII
INX
SHLD

H,OO
BLKAIIR
H
BLKNUM

011311 315 372 022
011314 312 332 022

CALL
JZ

CHKHOM iGO SEE IF THIS PAGE HAS THE SHOW BLK I.It.
GOODPK iIF YES, JUMP TO CONTINUE REAli-IN

011317 076 010
011321 062 105 040

011324
011327
4189 011332
(1) 011332
(1) 011335

315 372 022
302 201 032
315 216 030
103 002

iCLR %L'
iAN!1 SET THE [IESIREli CYLINIIER TO 00
iBUMP H,L TO MAKE IT ,EQ, 01
iNOW SET THIS INTO THE BLOCK NUMBER(HOME BLOCK)

iFALL THRU IF FIRST HOME BLOCK NO GOOIl
A,"'010 iTRY ALTERNATE HOME BLOCK
MVI
STA
BLKNUM ;SET BLOCK NUMBER TO ALTERNATE
CALL
JNZ
GOODPKI EXAM
CALL
•AIIIIR

CHKHOM
A.BTERR
1103
EXAMSH
1103

;TRY ALTERNATE
iIF THIS ONES BAIl, THEN GIVE UP
iEXAMINE WORD WITH HOME BLOCK IN IT
iAND lIO EXAM ASSUMING SHORT AD[IRESS
iA[I£lR TO BE ZAPPED PASSED AS TRAILING ARG

VER 6.2 KS10 CONSOLE PROGRAM
CMItS.MBO
FILE SYSTEM
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
420B
4209
4210
4211
4212
4213
4214
4215
4216
(1)
(1)

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-136

011337 315 352 022
011342 332 177 032

,NOW THAT YOUVE REAli HOME BLOCK, FIND POINTER FILE
;AND TRANSFER THE ENTIRE MICRO-CODE INTO MOS MEMORY
,SHORT ROUTINE TO MOVE DATA FROM THE EMBUF INTO THE CHANNEL COMMAND LIST
CALL BLKRDR ,READ IN THE PAGE OF POINTERS FROM THE DISK
JC
B.BTERR ,ERROR IN BOOT PROCESS DURING POINTER PAGE READ-IN

011345 341
011346 067
011347 315 225 030

iNOW EXAM THE REAL DESIRED DATA
H
;FETCH UP THE FILE POINTER ADDRESS
POP
,SET SIGN WHICH INDICATES ANIt EXAMINE
STC
CALL EXMHL ;AND READ IT IN TO MEM

011352
011355
011360
011363

052
042
052
042

015
112
012
105

040
040
040
040

011366 315 367 024
011371 311

011372 315 367 024
011375 332 201 032
011400
011400
011403
011405
011410
011412
011414

4217
421B
4219
4220
4221
4222 011415
(1) 011415
4223 011416
4224 011420
4225 011422
4226 011425
4227
422B
4229 011426
4230 011431
4231
4232 011434
(1) 011434
(1) 011435
4233 011436
4234 011440
4235 011442

315
000
315
251
012
311

216 030
002
022 033
022
040

iSHORT ROUTINE
BLKRDR: LHLrI
SHUI
LHUI
SHLO

TO MOVE DATA FROM THE EMBUF INTO THE CHANNEL COMMANIt LIST
EMBUFt3 ,GET CYLINDER FROM SPECIAL HOME BLK PNTR
BLKADR ;SET CYLINItER IN CHANNEL COMMAND LIST
EMBUF ,GET TRACK SECTOR BYTE
BLKNUM ,SET INFO INTO THE TReK/SECTOR WORD

CALL
RET
,LITTLE ROUTINE
, VIA THE 'HOM'
CHKHOMl CALL
JC
EXAM
CALL
.AIIIIR
CALL
.ADDR
.AnDR
RET

DSXFR

,FINALLY READ THE FIRST PAGE OF THE DESIRED

TO READ
ID, AND
DSXFR
A.BTERR

IN THE HOME BLOCK, CHECK THAT IT IS AHOME BLOCK
RETURN Z-BIT SET IF IT IS
,EXECUTE DISK TRANSFER
iBOOT ERROR 'A', IF OOPS

1000
EXAMSH
1000
CMP36
HOMEWD
EMBUF

,NOW EXAMINE THE HOME BLOCK ID
,AND DO EXAM ASSUMING SHORT AnnRESS
iADDR TO BE ZAPPEll PASSErI AS TRAILING ARG
;AND TRY OUT ACOMPARE
,EXPECTEn !It
,AGAINST WHAT WAS JUST REA II IN
,AND OUT

2
PARBT
TRAPEN
MRC!iD

,SET INTERNAL MODE ON
,GO SET INTERNAL MOIlE
,NO PARITYS
iAND NO TRAPS WHILE BOOTING
jAND DONT FORGET MR. RESET

315 225 005
311

BTINT: INTON
RST
CLRB
CLRB
CALL
RET

072 357 040
062 254 040

,LITTLE ROUTINE TO SET UP nISK DEFAULTS
tlSKDFT: LIlA
IISKUBA ,GET CURRENTLY SELECTED DISK UBA NUMBER
UBANUM ;SET INTO COMMANIt LIST PLACE
STA

327

347
000
374 040
242 040
311

MOV5B
RST
•BYTE
.ADIIR
.AIIDR
RET

iANII SENII CURRENTLY SELECTEII RHBASE
4
0
DSBASE iCURRENT tlISK RH BASE
RHBASE itO PLACE FOR COMMANII LIST TO FIND IT
JOUT

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16150 PAGE 3-137
CMDS.M80
CRAM LOADER CODE
4237
4238
4239
4240
4241
4242
4243
4244
4245

011443
011445
011450
011453
011454
011457
011461
011464
(1) 011464
(1) 011465
4246 011466
4247 011470
4248
4249
4250 011472
4251 011475
4252 011476
4253 011500
4254 011501
4255 011503
4256 011505
4257
4258 011510
4259 011513
4260 011514
4261 011516
4262
4263 011517
4264 011522
4265 011525
4266
4267 011526
4268
4269 011531
4270 011533
4271 011534
4272 011535
4273 011536
4274
4275 011537
4276 011540
4277 011541
4278 011542
4279 011543
4280
4281 011546
4282 011551
4283 011554
4284 011555

.SBTTL CRAM LOADER CODE
DMEI12CR: I1VI A,BT.BIT JDO COUPLE ROUTINES AFAVOR, LOAD BIT
BT.TYPE jACCUM HAD THE BOOTING TYPE •• SAVE IT
MEI12CR: STA
H,OO
jZEROES TO "HrL'
LXI
PUSH H
iSAVE CURRENT CRAI1 ADDRESS
320 014
CALL CADWR JAND THEN WRITE IT TO THE CRAM
A,7
MVI
iSTART WITH FUNCTION 7
007
010 040
STA
CRI1FN
jINITIALIZE I1EI1 ADDRESS
NEWPAG: MOV5B
347
RST
4
,BYTE 0
000
244 022
.ADDR MAI000 iWITH 1000 OCTAL
017 040
.ADDR MEMAD ;STANDARD I1EM ADDRESS
076
062
041
345
315
076
062

001
121 040
000 000

052
175
323
174
323
076
315

017 040
103
105
004
055

iCODE TO DECIDE
LHLD
RD.EXM: MOV
OUT
MOV
OUT
MVI
012
CAll

IF WE NEED TO READ AN ADDITIONAL DISK SECTOR
MEMAD iGET CURRENT MOS MEM ADDRESS
A,L
iGET 8 BITS OF ADDRESS TO BE EXAMINED
A2835 iSET PIECE OF ADDRESS INTO ADDRESS REGISTER
A,H
;GET COUPLE MORE BITS
A2027 ;SET INTO CSL BOARD ADDRESS REGISTER
A,4
iSPECIAL KEY TO MAKE 'EXAMINE' WORK CORRECTLY
EM.CRM j60 DO AMEMORY EXAMINE, OF THE SHORT FLAVOR
;GET 16 BITS OF THE MEMORY DATA
iCOPY TO ACCUM, SO THAT WE CAN MAKE IT 12 BITS
iCLR THE BITS
jPUT BACK INTO THE HI ORDER REG

052 012 040
174
346 017
147

LHLD
MOV
ANI
MOV

EMBUF
A,H
"017
HfA

315 263 014
041 010 040
065

CALL
LXI
DCR

WFUNC iWRITE THE PIECE
HfCRMFN JGET CURRENT DIAG FUNCTION
JDOWN COUNT
M

052 013 040

LHLD

EMBUFt1 ;GET 16 BITS OF THE MEMORY READ
/

MVI
XRA
QQLOOPI MOV
RAR
MOV

C,4
A
A,H

175
037
157
015
302 134 023

MOV
RAR
110V
DCR
JNZ

A,L

;TRY BOTTOM PIECE
jROTATE C-BIT INTO THE TOP
jPUT IT BACK
LrA
C
JDOWN THE LITTLE COUNTER
QQLOOP ;CONTINUE

315 263 014
041 010 040
065
362 203 023

CAll
LXI
DCR
JP

WFUNC jWRITE THIS PIECE
H,CRMFN JDOWN THE FUNCTION COUNTE~
jDECREI1ENT
Ii
BBlOOP jJUMP AROUND THIS STUFF IF NOT AT FUNCTION 0

016 004
257
174
037
147

HfA

iNOW AQUICK LITTLE LOOP
jCLR ACCUM TEI1P
;COPY TO ACCUM
jROTATE INTO THE C-BIT
;PUT IT BACK

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-138
CMDS.M80
CRAM LOADER CODE
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302

011560 076 007
011562 062 010 040
011565
011566
011567
011570
011573
011574

011576
011601
011602

341
043
345
315 320 014
174
346 010
312 221 023
341
311

011603 052 015
011606 174
4303 011607 346 017
4304 011611 147
4305 011612 315 263
4306 011615 041 010
4307 011620 065
4308
4309 011621 052 017
4310 011624 043
4311 011625 042 017
4312 011630 174
4313 011631 346 004
4314 011633 312 075
4315 011636 315 244
4316 011641 303 064
4317
4318
4319 011644 072 121
4320 011647 376 001
4321 011651 302 266
4322
4323
4324 011654 041 146
4325 011657 315 023
4326 011662 332 175
4327 011665 311
4328
4329
4330 011666 076 071
4331 011670 315 007
4332 011673 320
4333 011674 315 154
4334 011677 302 175
4335 011702 311

040

014
040
040

iIF DONE FUNCTIONS 0-7, TRY ALITTLE RESET
A,7
tlVI
iRESTART AT FUNCTION 7
STA
CRMFN iSAVE IT
iHERE IF FINSHED ACRAM
POP
H
INX
H
PUSH H
CALL CADWR
A,H
MOV
ANI
"'010
JZ
SEEPAGE
POP
H
RET

WORD &NEED TO DO RESET.
iGET CRAM ADDRESS
iUPDATE

BBLOOP: LHLD
MOV
ANI
MOV
CALL
LXI
DCR

EtiBUFf3
A,H
"'017
H,A
WFUNC
H,CRMFN
M

iGRAB 16 BITS OF THE MEMORY DATA
iPASS 8 BITS TO THE ACCUM, SO WE CAN MAKE IT 4 BITS
iOFF UNNEEDED BITS
iPUT IT BACK
iWRITE THIS DATUM
iGET FUNCTION
iDOWN TO NEXT FUNCTION

MEMAD
H
MEMAD
A,H
"'04
RD.EXM
NEXTCR
NEWPAG

iGET THE CURRENT MEMORY ADDRESS
iGO TO NEXT ADDRESS
iSAVE THIS NEXT ADDRESS
iTEST HFOR AT '2000iIF -2000- WEIGHT BIT IS SET, TIME FOR NEW PAGE OF DATA
iIF MEM ADDRESS .EO. 2000, THEN FALL THRU TO NEXT READIN
iROUTINE TO FETCH NEXT PAGE OF CRAM DATA
iAND BACK TO BEGINNING

SEEPAGE: LHLD
INX
SHUI
040
HtIv
ANI
023
JZ
023
CALL
023
JMP
040
023
036

025
032

025
022

032

iNOW WRITE THIS, THE NEXT CRAM ADDRESS
iNOW GET HI ORDER PIECE OF CRAM ADDR
iIS IT .EO. 4000 OCTAL YET??
iIF NOT 4000 OCTAL YET, CHECK FOR ANXT WORD
iAND RESTORE STACK BEFORE LEAVING
iOTHERWISE ALL DONE

iELSE, MUST READ IN ANOTHER PAGE'S WORTH FROM CURRENT BOOT DEVICE
NEXTCRI LDA
BT.TYPE iFIND OUT WHAT KIND OF DEVICE WE ARE BOOTING FROM
CPl
BT.BIT iSEE IF DOING BOOT FROM THE DISK
JNZ
TAPDEV iIF FLAG .NE. BT.BIT, THEN BOOTING FROM MAGTAPE
iFALL THRU TO DO BOOT FROM DISK
H,OXFR iSET UP FOR THE QUICK XFR COMMAND LIST
LXI
CALL CHNXCT iREAD IN, SHORT FORMAT(TRK/SEC/CYL IS PRESET)
JC
C.BTERR iERROR IN READING CRAM
RET
iBACK TO CALLER
iJUMP TO HERE TO DO BOOT FROM TAPE
TAPDEVI MVI
A,READ.TYPE iPASS TO CHANNEL CMD LIST EXECUTOR THE XFR TYPE
CALL GMXFR iREAD IN ASINGLE PAGE FROM MAGTAPE
iIF NOTHING BAD, RETURN
RNC
CALL NONFATAL iIF BADNESS, SEE IF FATAL KIND OR NOT
JNZ
C.BTERR iERROR IN READING THE CRAM
RET
iBACK TO CALLER

VER 6.2 KSI0 CONSOLE PROGRAM
CMDS.M80
*** "FI" CMD
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-139

***

011703 315 244 030

.S9TTL *** "FI" CMD ***
jCOMMAHD.TO READ IN APARTICULAR PAGE OF THE FILESYSTEM AND TO EXECUTE ITS
jCONTENTS AS IF THEY WERE TYPED IN 8080 COMMANDS
FICtlD: CALL ARG16. jCOLLECT IT WHEN ITS THERE

011706
011711
011712
011715

021 022 002
031
315 266 022
332 231 032

jBEWARE •• IF YOU TYPE FI WITH ABOGUS ARGUMENT, THEN YOU LOSE ••
jHE WHO USES THE FI CMD BEST KNOW WHAT HE'S DOING
D,"01022 jSTART WITH OFFSET '0" INTO THE "FI" FILES
LXI
jADD THIS TO THE NUMBER TYPED TO GET THE DESIRED
DAD
D
CALL FIlEINIT jREAD IN THE DESIRED PAGE
JC l.9TERR ;IF ERR

347
000
244 022
017 040

jNOW DO SOMETHING WITH
tlOV5B
RST
4
.BYTE 0
.ADDR tlA1000
.ADDR tlEtlAD

011720
(1) 011720
(l) 011721
4351 011722
4352 011724
4353
4354 011726
4355 011731
(1) 011731
4356 011732
4357 011735
(1) 011735
4358 011736
4359 011740
4360 011743
4361 011744
4362 011745
4363 011747
4364
4365 011752
4366 011755
4367
4368
4369 011760
4370 011761
4371 011762
4372 011763
4373 011766

021 253 041

THE STUFF TYPED •••
jFIRST MUST GET INFO FROM MOS tlEM TO 8080 RAtI
jINFO STARTS AT tlOS tlEtlE lOC 1000
JAND WE WIll TELL INTERNAL READER TO START THERE

LXI
FI.GET: INTON
327
RST
315 232 024
CAll
INTOFF
RST
367
056 004
MVI
001 012 040
lXI
012
FI.HOV; LDAX
022
STAX
376 377
CPI
302 360 023
JNZ

D,E.BEGf2 jA PLACE TO STORE ASCII BYTES FROM MEMORY
jNO PRINTING
;GO SET INTERNAL MODE
2
GATHER JGO READ IN AWORD FROt! MOS tlEM
;OK TO PRINT NOW
JGO EXIT FROM INTERNAL MODE
6
;NOW ONLY 4 BYTES PER WORD ARE USEFUL
Lr4
B,EtlBUF JAND THIS IS WHERE IN 8080 RAM THE BYTES ARE
jFETCH UP ABYTE
B
;PUT IT IN PLACE
D
"0377 JIS IT END OF STRING??
FI.NXT jIF NO, GO HOVE SOME tlORE

315 351 034
303 222 002

MV.ALL ;GOT HERE, MOVE TO EXECUTE BUFFER
DCODE jAND GO DO IT

003
023
055
302 343 023
303 331 023

CALL
JMP

jNOPE •• MOVE SOME MORE
FI.NXn INX
B
INX
D
DCR
L
FI.HOV
JNZ
JMF'
FI.GET

jUPDATE THE POINTERS
jCHECK COUNT TO SEE IF WE'VE DONE 4 YET
jIF NOT, GO MOVE THE NEXT BYTE FROM THE CURRENT WORD
jYES, READ NEXT MEM WORD AND TRY IT

VER 6.2 KSI0 CONSOLE PROGRAK
CKDS.K80
i** "FI" CMD
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390 011771 076 012
4391 011773 062 172 040
4392 011776 303 247 021

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-140

**i

i;**********PROPOSED INSTRUCTION ********************
;;.SBTTL
*** "B1" CKD ***
;;COKKAND TO READ IN ASECOND TYPE OF MICRO-CODE AND EXECUTE IT ••
;;I.E. BOOTCHECK 1 MICRO-CODE
;iBICMDI
LXI
D,~1010 iGET THE CORRECT OFFSET
i;
CALL FILEINIT ;READ IN THE FIRST PAGE
;;
JC
C.BTERR ;IF ERR
;;

;;
MVI
A,BT.BIT ;SAY THAT THIS IS ALOAD FROM DISK
;;
CALL KEM2CRAM iREAD IT IN AS MICRO-CODE
;;
CALL BT.GO iSTART IT UP
;;
RET
;THAT IT
.SBTTL *** "B2" CMD **t
iBOOTCHECK 2•• THIS LOADS IN ASEPARATE "PRE-BOOT", WHICH
;LOADS IN THE BOOT CHECK 2
B2CKDl KVI
A,~012 ;6ET THE OFFSET
STA
RM100 iSAVE IT SO THAT WE CAN USE SOKE SUPER COMMON CODE
JKP
BT.SRC ;THAT/S IT!!!!

VER 6.2 KS10 CONSOLE PROGRAM
CMDS.Mao
*** 'VD' CHD
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412

012001 315 263 022
012004 332 175 032
012007 076 001
012011 303 031 024

012014
012017
012021
012024

315
076
315
332

224 022
071
376 024
201 032

012027 076 002

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-141

***
.SBTTL **i 'VDI CMD i**
iCOMMAND TO VERIFY THE CONTENTS OF THE C-RAM AGAINST THE MICRO-CODE
iAS IT SITS ON DISK
VDCMII: CALL
KICROP iNOW READ IN HOME BLOCKS, THEN 1ST PAGE OF U-COIlE
C.BTERR iIF ERROR, GO TELL WORLD ABOUT IT
JC
MVI
JMP

A, BT .BIT iWENT OK .. SPECIFY ADISK TYPE OPERATION
VERCRAM iANII GO IN TO VERIFY THE CRAM

.SBTTL *** 'VT' CMII ***
iCOMMAND TO VERIFY THE CONTENTS OF THE C-RAK AGAINST THE MICR-CODE
iAS IT SITS ON MAG TAPE
VTCMD: CALL MTSETUP iGO TO SOME COMMON COIlE TO LOOK AT MAGTAPES
A,READ.TAPE HEll CHANNEL LISTER TO IIO AREAn IN
MVI
CALL MTXFR iREAD IN FIRST PAGE OF U-CODE OFF THE TAPE
A.BTERR ;IF ERROR, GO REPORT IT
JC
MVI
A,IiT.BIT iWENT OK •• SPECIFY ATAPE OPERATION
iFALL STRAIGHT INTO THE conE TO VERIFY THE CRAM

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-142
VERIFY CRAM CODE
CMIIS.M80
4414
4415
4416
4417
441B 012031
4419 012031 062
4420
4421 012034
(1) 012034 347
(1) 012035 000
4422 012036 244
4423 012040 017
4424 012042 041
4425 012045 042
4426 012050 303
4427
4428 012053 052
4429 012056 043
4430 012057 174
4431 012060 346
4432 012062 300
4433
4434
4435 012063 315
4436 012066 042
4437 012071 315
4438 012074 315
4439
4440
4441 012077 001
4442 012102 021
4443
4444 012105 315
4445 012110 076
4446 012112 062

121 040

022
040
000 000
004 040
063 024
004 040
010

320
004
204
021

014
040
013
015

.SBTTL VERIFY CRAM CODE
iROUTINES THAT DO READ INS FROM THE CURRENTLY SELECTED DEVICE
iAND COMPARES THAT HARD MICRO-CODE DATA AGAINST THE CURRENT
iCONTENTS OF THE CONTROL-STORE
VERCRAMl
BT. TYPE iBEGIN BY SAVING THE {IEVICE AGAINST WHICH WE WILL VERIFY
STA
MOV5B
RST
•BYTE
.ADDR
.AIIDR
LXI
SHUI
JMP

,START BY SETTING MEMORY ADDRESS AT 1000
4
0
MA1000
MEMAn
H,OO
CRMAD
V.SO

iA "1000"
iPLACE WHERE MEM ADDRESS IS KEPT
iBEGIN WITH CRAM ADDRESS 00
,SET CRAM ADDRESS TO ZEROES
iENTER LOOP AT THE PROPER PLACE

V. [IONWm LHLD
INX
MOV
ANI
RNZ

CRMAD
H
A,H
"010

,HERE IF REALLY
V.GOl CALL
SHLD
CALL
CALL

READY TO DO ACRAM LOC
CADWR iWRITE IT TO CRAM, BE IT GOOD OR BAD
CRMAD iNOW SAVE A£!£!RESS WHILE WE DO SOME STUFF
iSINGLE CLOCK GETS CRAM CONTENTS TO CONTROL REG
CP1
RCINT ,READ IN CONTENTS OF C-RAM AN£! SAVE IN B080 RAM

;GET CURRENT CRAM ADI!RESS
,AND UPDATE FOR NEXT TIME AROUND
iPUT HI ORDER PIECE OF IT INTO ACCUM
iSEE IF AT END OF CRAM YET
iIF IT IS, ALL DONE, GO OUT

205 024
302 040

,HERE WHEN CRAM DATA IS SAFELY TUCKED AWAY IN THE B080 RAM
B,VERLST iB,C PAIR POINTS TO LIST OF DATA OFFSETS
LXI
D,CRMBF iD,E PAIR POINTS TO ACTUAL nATA LISHH,L PNTS EXPECTED}
LXI

232 024
003
253 040

V.NXMEMt CALL
MVI
STA

GATHER iHERE TO CALL ROUTINE THAT READS IN THE NEXT MEM WORD
A,3
,AND TAKE TIME OUT TO RESET THE 3 COUNTER
VERCNT iSET UP ACLEAN COUNT

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-143
CMDS.MaO
VERIFY CRAM CODE
444a
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483

012115
012116
012120
012123
012124
012125
012126
012127
012131

012
346 077
052 012 040
003
203
137
172
316 000
127

012132
012133
012134
012135

032
023
275
302 146 024

012140 174
012141 346 017
012143
012144
012145
012146
012151

012152
012153
012154
012155

JAND HERE BELOW
V.BLP: LDAX
ANI
V.BLPll LHLD
INX
ADD
MOV
MOV
ACI
MOV

BEGINS THE ACTUAL DATA COMPARES
jGET THE FIRST INDEX BYTE FROM THE LIST OF BYTES
B
~077
JOFF THE SIGNALS, AND CONTINUE
EMBUF jGET EXPECTED DATA INTO H,L REGISTER
jUPDATE B,C TO POINT AT FUNCTION READ
B
JADD AS AN OFFSET TO THE D,E PAIR
E
E,A
jPUT THE GOOD ADDR BACK INTO lEI
A,D
JAND GRAB THE HI ORDER FOR ASEC
0
jADD IN THE CARRY IF REGUIRED
D,A
jPUT THE HI ORDER BACK AGAIN

LDAX
INX
CMP
JNZ

D
D
L
V.ERR

jNOW LOAD IN THE FIRST IACTUAL I DATUM
jUPDATE POINTER TO ACTUAL
jCOHPARE AGAINST EXPECTED
jREPORT IF BADNESS

MOV
ANI

A,H
"'017

JGET UPPER 12 BITS OF THE EXPECTED
jIF DATA WAS EGUAL, ONLY DISCREPENCY CAN BE IN B7-B4

H,A
D
H
VERRPT
D

;GET THE 4 BITS OF DATA LEFT AFTER THE 'ANDI
jGET THE ACTUAL DATA TO ACCUM
JSEE IF SAKE
j AND B3-BO SHOULD BE .EG. 0•• IF NOT REPORT AS ERROR
jFIX DTO LOOK AT THE BEGINNG OF THE "ACTUAL" 2 BYTES

147
032
274
304 274 024
033

MOV
LDAX
CHP
V.ERR: CNZ
DCX

003
012
027
332 053 024

jNOW NEED TO CHOOSE IF NEED CHECK TWICE(FOR DOUBLE COPIES), OR IF END
JOF LIST FOR THIS CRAM WORD
INX
II
jUPDATE POINTER INTO THE INDEXER LIST
LDAX B
;6ET THE NEXT INDEX BYTE
;COPY SIGN INTO C-BIT
RAL
V.DONWD jIF SET, END OF LIST •• GO DO NEXT CRAM WORD
JC

012160 027
012161 332 115 024

RAL
JC

V.BLP

jWASN/T END OF LIST.> SEE IF ADOUBLE CHECKER
jJUMP BACK TO MAIN LOOP WITHOUT UPDATING IF YES

;IF NOT ADOUBLE, MUST FALL THROUGH TO UPDATE EXPECTED

IJER 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-144
CMDS.M80
VERIFY CRAM CODE
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508

012164 041 253 040
012167 065
012170 312 105 024
012173
012176
012201
012202

012205
012207
012211
012213
012215
012217
012221
012223
012225
012227
012231

041 012 040
315 154 031
014
303 115 024

000
002
002
002
002
102
010
102
002
010
200

017
016
015
014
013
012
006
005
004
000

iHERE WHEN MUST
V.Nxn LXI
DCR
JZ
LXI
CALL
•BYTE
JMP

UPDATE EXPECTED •• NOT ADOUBLE COPY
H,VERCNHLOAD CURRENT COUNT FOR HOW MANY COMPARE PER MEM WORD
M
iIlECREHENT THAT COUNT
V.NXHEH iIF DOWN TO ZERO, GO READ IN THE NEXT MEMORY WORD
H,EMBUF
SHR36
12.
V.BLP

iLIST OF INDEXER BYTES
.RADIX S
VERLSn •BYTE 0,17
.BYTE 2116
•BYTE 2,15
•BYTE 2,14
•BYTE 2t13
•BYTE 102,12
•BYTE 10,6
•BYTE 102,5
•BYTE 2,4
•BYTE 10,0
•BYTE 200
.RADIX 10

,TELL SHR36 WHERE IT SHOULD SHIFT
,IF NOT DOWN, SHIFT WHAT WE HAIJE TO THE NEXT 12 BIT GRP
,SPECIFY THE NEXT 12 BIT GROUP IS WHAT WE WANT
,AND CONTINUE IN THE BIG LOOP

iREAD FCN 17
;READ FCN 16
iREAII FCN 15
;READ FCN 14
iREAD FCN 13
,READ FCN 12
,READ FCN 6
iREAD FCN 5
iREAD FCN 4
,READ FCN 0
,END OF LIST

(BITS 84-95)
(BITS 72-83l
(BITS 60-71)
(BITS 48-59)
(BITS 36-47)
(BITS 36-47) SECOND COPY
(BITS 24-35)
(SITS 24-35) SECOND COPY
(BITS 12-23)
(BITS 00-IU
HARKER

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-145
Ct1[lS.M80
VERIFY CRAM CODE
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537

iSUBROUTINE TO READ IN THE NEXT WORD FROM MEMORY.
iALSO CHECKS TO SEE IF AT THE END OF THE MEMORY PAGE{ADDR 1777), AND IF SO
iTO GO ANII READ IN THE NEXT PAGE OF MICRO-CODE FROM THE BEVICE AGAINST
iWHICH WE ARE VERIFYING THE MICRO-CODE.
GATHER: PUSH II
PUSH B

012232 325
012233 305
012234 052 017 040
012237 345

lHLII
PUSH

MEMAII
H

iGET CURRENT MEMORY AIIIIRESS
iSAVE CURRENT MEM ADDRESS

012240 174
012241 346 004
012243 312 261 024

MOV
ANI
JZ

AIH
·"04
G.SKP

;GET THE HI ORIIER PIECE OF THE MEM ADDRESS
iSEE IF AIIIIRESS AT '2000' YET
iIF NOT, SIMPLY GO REAII IN THE NEXT WORI!

012246 315 244 023

iELSE MUST REAIt IN THE NEXT PAGE OF MICRO-COIlE
CALL NEXTCR iDO THE REAII IN

012251
012252
012255
012256
012261
012264
012265
012266
012271
012272
012273

POP
LXI
PUSH
SHLD
G.SKP: CAll
POP
INX
SHlD
POP
POP
RET

341
041
345
042
315
341
043
042
301
321
311

000 002
017 040
036 012
017 040

H
iGET Olii CRUMMY H,L OFF THE STACK
H,"01000 iWANT TO RESET MEM AIIDRESS TO BEGINNING OF PAGE
iPUT BACK ON STACK
H
MEMAD iANB PASS NEW ABBRESS IN RAM
EM2
iEXAMINE THE NEXT MEMORY WORIt
iGRAB THE AItBRESS WE WANT TO READ NEXT TIME
H
H
iUPnATE TO NEXT
MEMAD iPUT IT BACK
B
iRESTORE THE REGS NOW
D
iANIt OUT

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-146
CMDS.MSO
VERIFY CRAM CODE
4539
4540
4541 012274 345
4542 012275 325
4543 012276
(1) 012276 367
4544
4545 012277 041
4546 012302 315
4547
4548 012305
(2) 012305 317
(2) 012306 057
4549
4550 012307 012
4551 012310 315
4552
4553 012313
(1) 012313 317
(1) 012314 072
4554 012315
(2) 012315 317
(2) 012316 040
4555 012317
(1) 012317 317
(1) 012320 101
4556 012321
(2) 012321 317
(2) 012322 040
4557
4558 012323 353
4559 012324 053
4560 012325 315
4561 012330 353

iVERIFY ERROR REPORTER SUBROUTINE. REPORTS VERIFY ERRORS AS THEY HAPPEN
jAND THEN PERMITS THE VERIFIER TO CONTINUE VERIFYING THE REST OF THE CRAM
VERRPT: PUSH H
iSAVE CONTENTS OF H,L PAIR
jMUST ALSO SAVE D,E
PUSH D
INTOFF
jPRINT ALL THIS GOOD STUFF
RST
6
iGO EXIT FROM INTERNAL MODE
004 040
317 030

LXI
CALL

HJCRtlAD jTHEN PRINT THE CRAM ADDRESS OF THE FAILING CRAM WORD
P16
jAND PRINT OUT THE ADDRESS

PSLASH
RST
1
•BYTE SLASH
304 030

317 030

;THROW OUT A"I"
;GO PRINT CHAR IN TRAILING BYTE
;CHAR TO PRINT

LDAX
CALL

;FETCH UP THE DIAG FUMC OF THE READ FAILURE
B
P8BITA jAND PRINT IT

PCHAR
RST
•BYTE
PSPACE
RST
.BYTE
PCHAR
RST
.BYTE
PSPACE
RST
•BYTE

It

1
SPACE
'A
1
'A

;60 PRINT CHAR IN TRAILING BYTE
jCHAR TO PRINT

1
SPACE

j60 PRINT CHAR IN TRAILING BYTE
jCHAR TO PRINT

XCHG
DCX
CALL
XCHG

H
P16

j AND NOW H,L POINTS AT THE ACTUAL
jNOW D,E POINTS TO THE ACTUAL
jPRINT THE ACTUAL DATA
jFIX SO H,L POINTS AT TEMP LOC ONCE AGAIN

•
1
It

•

jSIMPLE CHARACTERS ARE ": A•
JGO PRINT CHAR IN TRAILING BYTE
;CHAR TO PRINT

JGO PRINT CHAR IN TRAILING BYTE
jCHAR TO PRINT

VER 6.2 I\S10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31} 3-MAY-79 16/50 PAGE 3-147
CMDS.M80
VERIFY CRAM COIlE
4563 012331
(2) 012331
(2) 012332
4564 012333
(1) 012333
(1) 012334
4565 012335
(2i 012335
(2) 012336
4566
4567 012337
4568 012342
4569 012343
4570 012345
4571 012346
4572 012351
4573 012354
(2) 012354
(2) 012355
4574
4575 012356
4576 012357
4577 012362
4578 012363
(1) 012363
4579 012364
4580 012365
4581 012366

PSPACE
RST
•BYTE
PCHAR
RST
•BYTE
PSPACE
RST
•BYTE

317
040
317
105
317
040
052
174
346
147
042
315

012 040
017
100 040
314 030

347
002
305
315 205 034
301
327
321
341
311

LHLD
KOV
ANI
KOV
SHLII
CALL
PCRLF
RST
•BYTE
PUSH
CALL
POP
INTON
RST
POP
POP
RET

'E

,ANOTHER SPACE
;GO PRINT CHAR IN TRAILING BYTE
,CHAR TO PRINT
,A 'W' STANDS FOR ·WAS'
j60 PRINT CHAR IN TRAILING BYTE
iCHAR TO PRINT

1
SPACE

iGO PRINT CHAR IN TRAILING BYTE
,CHAR TO PRINT

EMBUF
A,H

;GET THE EXPECTEII nATA INTO H,L PAIR
,WANT TO STRIP ANY BITS ABOVE 12 BITS
jKEEP ONLY RELEVANT BITS
iPUT IT BACK
iPUT IT IN THE TEMP PLACE
;PRINT THE EXPECTED

1
SPACE
'E
1

n017

H,A
TMPB2
P16.
4
2

;SAVE B REG TOO
B
I1ECNET ;IF THERE IS AHOST, TELL HIM TOO
B
;ANII BACK TO INTERNAL KonE
iGO SET INTERNAL KODE
2
n
H

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-148
CKDS.K80
VERIFY CRAK CODE
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596

012367 041 052 036
012372 315 023 025
012375 311

jEXECUTE CHANNEL COKKANDS ••••
H,DSKSEO jPNTR TO COMKAND LIST
DSXFR: LXI
XCTNOIH CALL CHNXCT jEXECUTE CHANNEL LIST
RET

012376 041 215 036
012401 062 144 040
012404 303 372 024

MTXFR: LXI
XCTKTA: STA
JKP

H,KTASEO ;PNTR TO COKKAND LIST
SKP.GO jACCUK HAD XFR TYPE •• SAVE IT
XCTNOW ;GO EXECUTE THE CHANNEL COKMAND LIST

012407 041 275 036 QKXFR: LXI
JKP
012412 303 001 025

H,QTXFR jPNTR TO COKKAND LIST
XCTMTA ;GO EXECUTE THE CHANNEL COMMAND LIST

012415 041 363 036
012420 303 372 024

H,KTARST ;CHANNEL COMMAND LIST TO CLEAR ERROR FROM MAGTAPE
XCTNOW ;GO EXECUTE THE CHANNEL COMMAND LIST

tITRESET: LXI
JKP

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-149
CMDS.M80
CHANNEL COMMAND LIST EXECUTOR
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614 012423
(1) 012423
4615 012424
4616 012425
4617 012426
4618
4619 012427
4620 012432
4621
4622 012433
4623 012434
4624 012435
4625 012436
4626
4627 012437
4628 012440
4629 012441
4630 012443
4631 012444
4632 012447
4633
4634 012450
4635 012451
4636 012452
4637 012453
4638 012454
4639 012457
4640
4641 012460
4642

.SBTTL CHANNEL COMMAND LIST EXECUTOR
,ROUTINE TO ACHANNEL COMMAND LIST TYPE OPERATION, FOR DATA
HRANSFERS FROM OUR SELECTEII BOOT {lEVICE ..
iCOMMANII LIST IS CODED AS FOLLOWS
; THE LIST IS ASERIES OF 36-BITCOMMANItS.
,WE HAVE FREE USE OF BITS 0-17 AS COMMAND TYPES
; BITS 15,16,17 .EG. 0 MEAN "DI" COMMANII
, BITS 15,16,17 .EG. 1 MEAN "LI" COMMAND
; BITS 15,16,17 .EG. 2 MEAN "EI" COMMANIt
i BITS 15,16,17 .EG. 3 MEAN 'WAIT" COMMAND
; BITS 15,16,17 .EG. 4 MEAN "ERRTST" COMMAND
i BITS 15,16,17 .EG. 5 MEAN 'END' OF COMMAND LIST
; BITS 15,16,17 .EG. 6 MEAN 'TWAIT' COMMANIt
, BITS 15,16,17 .EG. 7 MEAN "UBA' COMMANIt

327
305
325
345

iPOINTER TO THE
CHNXCr: INTON
RST
PUSH
PUSH
PUSH

CURRENT COMMA NIl LIST IS ALWAYS STORED IN HIL
,SET UP FOR INTERNAL MOIlE
,GO SET INTERNAL MOIlE
2
B
It
H

021 002 000
031

DSCON: LXI
nAIt

It I.:.'i
D

i "n,p GETS THE CONSTANT '2'
,NOW "HIL" POINTS TO 'nATAt2" (BITS 12-19)
,COPY "H,L' INTO 'B,C'

104
115
345
176

MOV
MOV
PUSH
MOV

B,H
C,L
H
A,M

037
037
346 017
137
041 066 025
031

RAR
RAR
ANI
MOV
LXI
nAD

,NOW JUSTIFY ACCUM AT BITS 16,17
HAKES 2 SHIFTS
~017
JOFF ALL BUT BITS 14,15,16,17
E,A
;NOW PUT INTO LO-ORItER HALF OF ItOUSLE REG
H,BSLST ,GET APNTR TO THE ItISPATCHING LIST
,CREAT PNTR TO THE COMMAND
D

136
043
126
353
021 061 025
325

MOV
INX
MOV
XCHG
LXI
PUSH

E,M
H
n,M

,GET HI ORItER PIECE OF CMIt IiISPATCH
iASSEMBLEIt AItItRESS TO 'H,L'
D,XFRRT iNOW GET APSEUIIO RETURN PC TO PUT ON STACK
[I
,AN[I PUT IT THERE

351

PCHL

iIiISPATCH TO THAT ASSEMBLEIi AIIIiRESS

;SAVE 'HI L
iGET BITS 12-19 INTO ACCUM
I

H1ET LO ORItER F'IECE OF CMIt ItISPATCH

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-150
CMDS.M80
CHANNEL COMMAND LIST EXECUTOR
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658

012461 341
012462 043
012463 303 027 025

jUPON COMPLETION OF THE COMMAND LIST COMMANDS, YOU GENERALLY
jRETURN HERE IN THE CODE
;GET THE POINTER TO CURRENT LOCATION IN COMMAND LIST
XFRRT: POP
H
INX
iMAKE IT POINT TO NEXT WORD IN THE LIST
H
JMP
DSCON iAND CONTINUE IN COMMAND LIST EXECUTOR

012466
012470
012472
012474
012476
012500
012502
012504

iCOMHAND LIST
DSLST: .ADDR
.ADDR
.A[tDR
.ADDR
.ADDR
.ADDR
.ADDR
.ADDR

164
112
106
213
262
302
244
146

025
025
025
025
025
025
025
025

DISPATCH SELECTION
CMDDI iDI CMD .EG. 0
CMDLI ill CMD .EG. 2
CMDEI iEI CHD .EG. 4
CHDWAIT jWAIT CHD .EG. 6
CMDERCHK jERRTST CMD .EG. 10
CMDEN iEND CMD .EG. 12
CMDTWAIT iWAIT CMD WITH NO TIMEOUT. CHECKS FOR BIT TRUE .EG, 14
CHDUBA iLl TYPE CMD. NO OFFSETS, GOOD FOR UBA STUFF .EG. 16

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-HAY-79 16:50 PAGE 3-151
CMDS.M80
CHANNEL COMHANIt LIST EXECUTOR
4660
4661
4662
4663
4664
4665
4666
4667

012506 247
012507 303 113 025

012512
012513
012514
(1) 012514
(1) 012515
4668 012516
4669 012520
4670
4671 012522
4672 012525
4673 012530
4674 012531
4675
46'76 012532
4677 012533
4678 012534
4679 012535
4680 012536
4681 012537
4682 012540
4683 012541
4684
4685
4686 012542
4687 012545

067
365
347
000
242 040
024 040

iCODE FOR 'EI' COMMANII
CMltEIt ANA
A
iCLR THE 'C-BIT'
JMP
CMDLIl i60 TO COMMON CODE FOR LI AND El COMMAND
iCODE FOR 'LI'
CMIILI: STC
CMIILI 1: PUSH
MOV5B
RST
•BYTE
.AIII!R
.AIIIIR

COMMAND
PSW
4

iSET THE 'C-BIT'
iAND SAVE IT
iPASS THE COMMANII LIST EXECUTOR THE RHBASE ADIIRESS

0

RHBASE iKEPT IN HERE
IOAD
iUSED IN HERE

041 026 040
072 254 040
266
167

LXI
LBA
ORA
MOV

H, IOAII+2 PH,L' PNTS TO DESH2
UBANUM iCURRENT UBA NUMBER INTO ACCUM
M
iTHROW IN THE CURRENT BITS
M,A
iPUT IT ALL BACK

053
053
013
012
206
167
361
330

IICX
DCX
I!CX
LI!AX
AnI!
MOV
POP
RC

H

315 357 012
311

iNOW MAKE 'HtL' POIHT TO AI!tlR to

H

B
B
M
MfA
PSW

iMAKE 'B,C' PAIR POINT TO SELECTEII OFFSET FROM BASE
i6ET SELECTEI! OFFSET
iAI!I! OFFSET TO THE BASE
iANII PUT THE WHOLE MESS BACK
HiOW GET STATE OF PROCESSOR FLAGS
iIF 'C' SET,IT WAS AN LI AND WE ARE IIONE

iCALL THRU IF 'C' CLR •• IT WAS EI ANI! WE MUST FINISH IT
CALL Ell
iEXECUTE 'EI' CMD
RET
iALL DONE

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-152
CMItS.MBO
CHANNEL COMMAND LIST EXECUTOR
46B9
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
470B
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718

012546
012551
012552
012555
012556
012561
012562
012563

021 026 040
325
315 323 025
341
072 254 040
266
167
311

;CODE FOR LI TYPE COMMAND ONLY USING NO OFFSETS, TAKING THE ADDRESSES
iEXACTLY AS PRESENTED •• GOOD FOR UBA OPERATIONS, WHICH REQUIRE NO OFFSETS
CMDUBA: LXI
II, IOAD+2 PII,E' PNTS TO DESTt2
PUSH D
,SAVE THE ADDRESS OF UBA/RH ADDRESS
CALL MOVISB iMOVE SOME nATA
iADDR OF UBA/RH INTO H,L
POP
H
LIlA
UBANUM iCURRENT UBA NUMBER INTO ACCUM
ORA
M
iTHROW IN THE CURRENT BITS
MOV
ritA
,PUT IT ALL BACK
;WE ARE DONE
RET

012564 012
012565 247
012566 362 201 025

iCODE FOR ItI COMMANII
CMIIDI: LDAX B
,GET DISP COItE TO SEE IF INDIRECT
ANA
A
iCHECK THE SIGN BIT
JP
DILOCL iAND JUMP IF NO INDIRECTION

012571
012572
012573
012574
012575
012576
012577
012600
012601
012604
012607
012612

,FALL TO HERE IF WAS INItIRECT
L,C
iPASS ADDR IN 'B,C' TO 'H,L"
MOV
MO\}
H,B
DCX
H
iNOW BACK UP PNTR TO HI ORDER PCE OF INDIRECT WRD
B,M
MOV
iAND INTO B
DCX
H
;NOW TO LO ORDER PIECE OF INDIRECT WORD
C,M
MOV
,LO ORDER PIECE TO C AND DONE
iIB,C" MUST POINT TO SRC t 2
INX
B
INX
B
D,DMIIATt2 ; "D,E' POINTS TO ItESTt2
ItILOCU LXI
CALL MOV1BB ,MOVE SOME STUFF AROUNII
CALL £111
,EXECUTE THE ItEF'OSIT
RET
;AND BACK TO COMMAND LIST

151
140
053
106
053
116
003
003
021 051 040
315 323 025
315 016 013
311

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16150 PAGE 3-153
CHANNEL COHMAND LIST EXECUTOR
CHDS.H80
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766

012613
012613 257
012614 127
012615 137

jCODE FOR WAIT
CMDWAITI
XRA
KOV
KOV

COHMAND(FOR WAITING FOR ATAPE TO FINISH, FOR EXAKPLE)

012616
012617
012622
012623

305
315 344 025
301
300

WAITLPI PUSH
CALL
POP
RNZ

012624
012625
012626
012631
012632
012633
012634
012635
012636

305
325
315 357 012
321
301
023
173
262
302 216 025

iFALL THRU IF READY NOT
PUSH B
PUSH D
CALL Ell
POP
D
POP
B
INX
D
A,E
MOV
ORA
D
WAITLP
JNZ

A
D,A
E,A

jCLEAR ACCUK
iNOW CLR "D", THE REGISTER WE WILL USE FOR TIKEOUT COUNT
iCLR Ip TOO

jSAVE B,C
B
CHKBIT jCHECK BITS VERSUS DEVICE STATUS TO SEE IF SET(I.E READY)
jRESTORE B,C
B
jIF READY BIT SET, ITS OK, GO AWAY
SET
iSAVE B,C FROK DESTRUCTION
iSAVE TIKE-OUT COUNT
JDO ANOTHER EXAMINE OF DEVICE STATUS TO SEE IF READY NOW
JGET THE TIME-OUT COUNT
jRESTORE B,C
jINCREKENT
JSEE IF COUNT DOWN TO ZERO YET
jUSE TOP HALF TOO
JGO TRY AGAIN

012641 303 270 025

jFALL THRU IF DEVICE TIME'S OUT BEFORE GETTING AREADY
DEVERR JGO REPORT "YBT" AND THE FAILED PC
JMP

012644
012645
012650
012651
012652
012655
012656
012657

305
315 357 012
301
305
315 344 025
301
300
303 270 025

jCODE FOR TWAIT
CKDTWAITI PUSH
CALL
POP
PUSH
CALL
POP
RNZ
JMP

COMKAND
jFIRST SAVE THE BC POINTERS
B
jREAD THE CURRENT STATE AS IT IS NOW
Ell
;RESET BTO AGOOD VALUE
B
JAND SAVE IT FROM DESTRUCTION AGAIN
B
CHKBIT jNOW SEE IF APPROPRIATE BIT IS SET
jRESTORE
B
jRETURN IF BIT WAS SET AS DESIRED
DEVERR jELSE •• GO SAY ERR, BIT WAS NOT SET AS DESIRED

012662
012663
012666
012667

305
315 344 025
301
310

jCODE FOR ERROR
CMDERCHKt PUSH
CALL
POP
RZ

TEST COKKAND
jSAVE B,C
B
CHKBIT jFIRST GO CHECK TO SEE IF ANY OF DESIRED BITS SET
JAND RESTORE
B
jIF NONE SET, RETURN CAUSE ALL IS OK

012670 140
012671 151

012672
012675
(1) 012675
4767 012676
4768 012677

042 154 040
367
257
303 312 025

jFALL TO HERE IF SOKE BITS SET •• HAD DEVICE ERROR &THEREFORE IBOOTI FAILED
H,B
jNOW COPY "B,C" TO "H,L" REGISTER
DEUERRI MOU
MOU
LtC
SHLD
INTOFF
RST
XRA
JMP

JIH,L" NOW HAS FAILING PC
jLET ALL KESSAGES PRINT NOW
JGO EXIT FROK INTERNAL KODE
6
jCLR C-BIT, SO THAT IT WILL SET LATER, TO INDICATE ERR
A
DEVEXIT iGO EXIT WITH KESSING WITH PRINT FLAGS
ERRCD

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16150 PAGE 3-154
CMDS.MBO
CHANNEL COMMAND LIST EXECUTOR
4770
4771 012702 021
4772 012705 315
4773 012710
(1) 012710 367
4774 012711 067
4775 012712 077
4776 012713 341
4777 012714 341
4778 012715 341
4779 012716 321
4780 012717 301
4781 012720 076
4782 012722 311
4783
4784
4785 012723 046
4786 012725 012
4787 012726 346
478B 012730 022
4789 012731 013
4790 012732 033
4791 012733 012
4792 012734 022
4793 012735 013
4794 012736 033
4795 012737 045
4796 012740 302
4797 012743 311
4798
4799
4BOO
4801 012744 052
4802 012747 013
4803 012750 013
4804 012751 012
4805 012752 245
4806 012753 300
4807
4808 012754 003
4809 012755 012
4810 012756 244
4811 012757 311

iCODE FOR THE END COMMAND
016 CMDEN: LXI
[I,MA[IOOO iGUARANTEE CSL BUS ADDR REG .EG. 0 AFTER XFR
176 033
CALL ADATP iWRITE THE CSL BUS ADDRESS REG WITH O'S
INTOFF
iCLR INTERNAL MODE
,GO EXIT FROM INTERNAL MODE
RST
6
,SET THE C-BIT, SO THAT IT WILL BE CLEARED LATER
STC
;COMPLEMENT C-BIT, SO IT WILL SAY ERR, OR NO ERR
DEVEXIH CHC
;THROW OUT PSEUDO RETURN FROM STACK TOP
POP
H
POP
,THROW OUT THE SAVED 'H,L'
H
POP
;AND RESTORE ALL THE REGISTERS
H
;THAT WE SAVED
POP
D
POf'
B
A,O
000
MVI
iACCUM WILL ALWAYS BE 0 ON EXIT FROM CMD LIST EXECUTOR
RET
;ROUTINE FOR MOVING 3 BYTES OF DATA
,'B,C' HAS SRC+2 ••• 'D,E' HAS DST+2
H,2
002
MOV18B: MVI
iCOUNT OF 3 IS HOW MANY TO MOVE
iGET PIECE OF SOURCE
LDAX B
iONLY INTERESTED IN BITS 18,19
003
ANI
3
STAX D
iPUT AT DESTINATION
DCX
,POINT
TO NEXT RELEVANT BYTE
II
iFOR
SRC
AND DST
DCX
D
MOV18X: LDAX B
,GET APIECE OF THE SRC TO ACCUM
STAX [I
,AND PUT AT DESTINATION PLACE
,DOWN THE POINTER
DCX
B
,DOWN THE OTHER POINTER
DCX
D
,AND DOWN THE COUNTER ••
nCR
H
333 025
JNZ
MOV1BX ,CONTINUE TILL MOVED 3 BYTES
HHEN OUT
RET
364

012 040

,COMMON ROUTINE FOR CHECKING DEVICE STATUS, FOR EITHER DEVICE ERRORS OR
iREADY BIT TRUE •• MUST BE CALLED IMMEDIATLY AFTER AN 'EI.' COMMAND
CHKBITI LHLD EHBUF ;GET CURRENT DEVICE STATUS INTO 'H,L"
,MAKE BPHT TO t1
DCX
B
DCX
B
; AND HAKE IT PHT TO to
L[lAX B
,BYTE OF DESIRED INTO ACCUM
ANA
L
;COMPARE AGAINST CUF:RENT IIEVICE
,IF NON-ZERO, NO NEED TO LOOK FURTHER
RNZ
INX
LDAX
ANA
RET

II
B
H

HF 1ST BYTE WAS ZERO, BUl'IP PNTR TO LOOK AT NEXT BYTE
iNEXT BYTE INTO THE ACCUM
iCOMPARE VERSUS DESIRED
iPLAIN RETURN •• Z BIT WILL BE SET APPROPRIATELY

VER 6.2 KSI0 CONSOLE PROGRAM
CMDS.M80
*** "BC" CMD
4813
4814
4815 012760 315
4816 012763
(1) 012763 327
4817 012764
4818 012766
001
4819
4820
4821 012770
(1) 012770 347
(1) 012771 012
(1) 012772 047
4822 012774 076
4823 012776 062
4824
4825 013001 001
4826 013004 305
4827 013005 315
4828
4829
4830 013010 072
4831 013013 247
4832 013014 302
4833
4834
4835 013017 041
4836 013022 315
4837 013025 001
4838
4839
4840 013026 301
4841 013027 014
4842 013030 171
4843 013031 376
4844 013033 332
4845
4846
4847 013036 005
4848 013037 372
4849

225 005

040
010
046 040
000 001
240 011
154 040
371 026
042 040
154 031

.S8TTL *** "BC' CMD ***
iCODE WHICH PERFORMS THE VERY FAMOUS BOOT CHECK I
BCCHD: CALL tlRCMD iMAKE SURE MACHINE IS STOPPED
iSET UP INTERNAL MODE
INTON
;GO SET INTERNAL MODE
RST
2
CLRB ERRCD iBEGIN BY CLEARING THE ERROR CODES
CLRB ERRCD+l iMUST CLEAR BOTH HALVES
NDF,NEEDRM
.IF
CLRRM
RST
•BYTE
.ADDR
MVI
STA
LXI
BC.ALP: PUSH
CALL

BUSAD iWILL GENERATE ASTARTING BUFFER OF (400000,,0)
4
10 •
BUSAD+5
A,nOl0 iTHIS TURNS OUT TO BE BITO IN 36-BIT LAND
BUSAD+4 i SET IT
B,~0400

B
DBCMD

;SET B=1, C=O
iSAVE COUNTERS
iEXECUTE THE DEPOSIT BUS

iCHECK FOR FAILURE
LDA
ERRCD iFETCH AN ERROR CODE
ANA
A
iSET 8080 CONDITION CODES
BCA.ERR iGO STANDARD ERROR REPORT IF ERR FOUND
JNZ
iNO ERROR, GENERATE THE
H,BUSAD
LXI
CALL SHR36
•BYTE 1

NEXT DATUM
iPOINT TO ABUFFER TO BE SHIFTED
iSHIFT 36 BITS(I.E. FLOAT A1 OR 0)
iSHIFT ONLY ONE PLACE AT ATIME

044
004 026

iNOW CHECK FOR
POP
INR
MOV
CPI
JC

062 026

iHERE WHEN DONE AGROUP OF 36, SEE IF THIS WAS FIRST OR SECOND TIME THROUGH
jDECREMENT 'TIMES THROUGH THE LOOp· COUNTER
DCR
B
BC.2ND ilF MINUS, TIME TO GET OUT •• GO NEXT PHASE OF TEST
JM

4850

4851
4852 013042
(1) 013042
(1) 013043
4853 013044
4854 013046
4855
4856 013050
4857 013052
4858 013055

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-155

***

347
000
055 026
042 040
016 000
303 004 026

END OF TEST
iGRAB UP THE CURRENT LOOP COUNTERS
B
iUP COUNT FOR THIS DATAUM
C
A,C
iCOPY TO ACCUM
jNOW SEE IF FLOATED DOWN THE ENTIRE 36 BIT WORD
36.
BC.ALP iJUHP IF NOT DONE AGROUP OF 36 YET ••

;HERE WHEN DONE
JOF ONES
MOVSB
RST
.BYTE
.ADDR
.ADDR

FIRST WORD, TIME TO SET UP TO FLOAT A0 THROUGH AFIELD
iHOVE 2ND DATA PATTERN
4
0
BC.DB2 ;INIT 2ND PATTERN TO BE (377777,,777777)
BUSAD JAND THIS IS THE PLACE THAT THE DB COMMAND USES

HVI
JMP
BC.DB2: D

C,OO jRESET THE COUNTER
BC.ALP iAND GO ROUND FOR THE SECOND TIME ••••••
377,777,,777,777

VER 6.2 KSI0 CONSOLE PROGRAM
CMDS.MBO
'SC' CMD

***

4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
48SB
4889

013062
013065
013070
013071
013072
013074

041
315
043
174
346
312

013077
013101
013104
013105
013110
013113
013116
013121
013124
013125
013126
013127
013131

046
315
345
315
315
041
315
315
341
043
174
346
312

000 000
235 026
010
065 026
000
320 014
204
021
000
263
226

013
015
000
026
026

010
101 026

013134 315 064 020

013137
013137
(1) 013140
4890 013141
4891 013143
4892
4893 013145
(1) 013145
(1) 013146
4894 013147
4895 013151
4896
4897 013153
4898 013156
4899 013161
4900 013163
4901 013165
4902
4903
4904 013170
4905
4906 013173
4907 013176
490B 013201
4909 013203
(1)

***

347
000
256 022
047 040
347
000
244 022
017 040
315
315
012
364
302

036 012
022 033
040
016
342 026

315 234 012
315
315
012
256

036 012
022 033
040
022

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79

16~50

PAGE 3-156

iBOOTCHECK CODE FOR EXECUTING ATEST OF THE CRAM AND ITS ASIllTlY TO HOLD
;ALL ONES AND ZEROES, AND TO SEE IF ITS AD[lRESSING LOGIC WORKS AS
HT SHOULII ....
;START AT CRAM ADDRESS 00
fhOO
BC.2ND: LXI
BC.BlP: CALL W.CRMZ ,WRITE THE LOCATION WITH ALL ZEROES
,UPDATE TO NEXT CRAM ADDRESS
INX
H
A,H
; NOW CHECK TO SEE IF DONE ALI.
MOV
"'010
iIll ADDRESS AT 14000' YETn
ANI
JZ
BC.BLP ,BACK AN[I ZERO MORE IF NOT YET
,NOW REAIIY FOR
MVI
BC. BLl: CALL
PUSH
CALL
CALL
LXI
CALL
CALL
POP
INX
MOV
ANI
JZ

COMBINE[!
H,OO
CAIIWR
H
CP1
RCINT
H,OO
V.VER
A.eRMO
H

ADDRESS ANII DATA TEST
,L IS ALREADY .EG. 0, NOW MAKE H,L PAIR .Ea, 0
alRITE CURRENT CRAM AIl DRESS
;AN[I SAVE IT FOR AWHILE
jCLOCK TO GET THE CONTENTS OF THAT LOC TO C.R.
;NOW REAII-IN THE CONTENTS OF THE C,R.
iDATA TO VERIFY AGAINST IS 00
,VERIFY CONTENTS OF C.R. TO BE ALL 0
;NOW WRITE THAT LOCATION WITH ALL ONES
;RETRIEVE CURRENT CRAM AnDRESS
jUP TO THE NEXT ADDRESS
H
A,H
;COPY HI HALF TO ACCUM, SO CAN CHECK FOR 4000
"'010 iAIInRESS AT '4000'11
BC.BLl ;BACK INTO LOOP IF NOT YET ••

iWHEN nONE HEf&"0377) iCHECK IF DONE
MVI
;SEE IF AT LAST LOCATION IN LIST
CMP
L
JNZ
V.BCLP iJUMP BACK IF NOT YET
RET
iELSE OK TO RETURN

C,A
A,H
~,A

iNOW COpy EXPECTED DATA INTO "B,C' PAIR
iFIRST COMPLIMENT
iTHEN MOVE
; NEED BOTH HALVES PLEASE
iCOMPLIMENT
;THEN MOVE

H,CRMBF
E,M
H
D,M

iNOW POINT TO BEGINNING OF BUFFER WHERE EXPECTED DATA
iIS KEPT •• PROCEED TO COPY BUFFER DATA INTO
i(UPDATE POINTER)
iTHE D,E REGISTER PAIR
H
iAND UPDATE MEMORY POINTER AFTER EACH MOVE
iSWAP, SO NOW "H,L" HAS BUFFER, 'D,E" HAS POINTER
iADIt COMPLIMENT TO EXPECTED ••• SHOULD GET O.
II
; TWO'S COMPLIMENT, THAT IS ••
H
A,L
;PIECE TO ACCUM
i'OR' IN THE OTHER PIECE
H
BC.BERR iAND GO HANDLE ERROR IF RESULTS .NE. 0

VER 6.2 KS10 CONSOLE PROGRAM
CMDS.H80
'BC' CMD

***

4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988

013342
013345
013347
013352
013353
013355
013356
013361
013362
013363
013366

052
006
303
341
006
341
042
174
260
062
303

017 040
100
356 026
200
154 040
155 040
376 026

***

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-160

iERROR REPORTING
BC.CERR! LHLD MEMAD
MVI
B,"0100
JMP
BCC.ERR
BC,BERRt
POP
B,"0200
MVI
POP
H
BCC.ERRi SHLD ERRC[!
A,H
MOV
ORA
B
ElTA
ERRCBH
JMP
BCB.ERR

,GRAB UP FAILED MEM AD[IRESS
iGET ABIT TO SET IN ERROR PRINTOUT
i60 PROCESS STANDARD ERROR TYPEOUTS
H
,CLEAR ARETURN ADDRESS
am TO SET FOR CRAM FAILURES
HIOW GATHER UP THE Cll@ENT CRAM AnDRESS
iSAVE 1 BYTE BY DEPOSITING TWICE
iHI HALF TO THE ACCUM
;THROW IN AWEIGHT SO NUMBER WILL [lIFFER
iPUT NUMBER INTO ERROR conE LOC
iAND GO PRINT OUT THE CORRECT ERROR STUFF

VER 6.2 KS10 CONSOLE PROGRAM
CMDS.Hao
'BC' CHD

***

4990
4991
4992
4993
4994
(1)
(1)

4995
4996
4997
4998

013371 301
013372 171
013373 062
013376
013400
013400 337
013401 201
013403 041
013406 315
013411 303
000

***

CROSS - MICRO PROCESSOR ASSEMBLEr, 6(31) 3-MAY-79 16:50 PAGE 3-161

BCA.ERRl
154 040

037
154 040
317 030
153 032

MOV
STA
BCB.ERR! CLRB
PLINE
Rs"r
.ABDR
LXI
CALL
JMP

.El-me

iGET COUNTER OFFfHE STACK
iSUBTEST TO ACCUM
iPLACE FROM WHICH TO REPORT ERRORS
iGUARANTEE PRINTING ON
i'?BC'
;PRINT LINE OF CHARS
3
ERRMSG iBUFF TO PRINT
H,ERRCIt iPOINT AT THE ERROR I.Ii.
;PRINT
P16
MHERR iOUT
POP
A,e
ERRcn
NOPNT
ERRMSG

B

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3··MAY-79 16:50 PAGE 3-162
SUBRTN.M80
****KS10 CONSOLE SUBROUTINE FILE
5000
5001
5002
5003
5004
5005
5006
5007

013414
013415
013416
013421
013422

341
365
072 165 040
247
302 027 027

.SBTTL ****KS10 CONSOLE SUBROUTINE FILE
iSUBROUTINE TO CHECK IF THE CPU IS RUNNING, ANI! IF IT IS,
iTO ABORT THE COMMAN[I THAT CAl.LED IT
.RUN .. : POP
HlllST FIX THE STACK
H
jSAVE FLAGS(STATE or THE 'e-BIT'
PUSH PSW
LDA
RNFLG iCHEcr; SOFTWARE RUN FLA.G TO SEE If CPU elK ON
iIS IT ZERO? , OR NOT ZERO
ANA
A
JNZ
YSRUN iIF NOT ZERO 1 JMP OFF TO PIUNT MESSAGE

5008

5009 013425 361
5010 013426 311
5011
S012 013427
(1) 013427 337
(1) 013430 206 037
5Q13 013432 303 153 032
5014

POP
RET
YSRUNi PLINE
RST

PSW

;OTHERWISE, RESTORE FLAGS
iAND OUT

RN.

jMESSAGE TO SAY RUNNING ••
jPRINT LINE OF CHARS
il~UFF TO PI< INT
;NOW GO RESTART OURSELVES

3

.AnnR RN.

JMF'

MMERR

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEKBLER 6(31) 3-KAY-79 16:50 PAGE 3-163
SUBRTN.K80
****KS10 CONSOLE SUBROUTINE FILE
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
(1)
(1)

5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043

013435
013437 257
013440 323 206
001
013442 072 326 042
013445 247
013446 302 114 027
013451
013451
013454
013457
013461
013464
013465
013467

041
315
076
315
057
346
312

310 000
134 014
100
267 013

013472
013474
013475
013477
013500
013502
013503
013505
013506

333
057
346
107
333
057
346
260
312

102

022
114 027

060
101
001
251 027

iROUTINE TO REPORT APAF:ITY ERROR WHEN DETECTED BY THE B080 CONSOLE
RPTPARI CLRB NorNT ;TURN TYPING ON
jACCUK MUST BE ZERO
XRA
A
OUT
CLKCTL iKILL ClK, SO PAR ERR CLRING WONT RELEASE THE CPU CLKS
DF,SCECOD
LDA
se.OFF JGET FLAG TO SEE IF WE CAN TRY FOR SOFT RECOVER
;SET 8080 FLAGS
ANA
A
JNZ
HRDERR ;IF FLAG .NE. (), THEN WE WILL NOT RECOVER
iFIRST THING WE NEED TO DO IS CHECK FOR CRAM/CRA PARITY ERRORS, AND DECIDE
iIF WE CAN RECOVER FROM THEM
LONG. DELAY 1 jLET DISK TRAFFIC STOP
H,200. * 1 ;SET UP THE TIKING COUNT IN H,L REG
LXI
CALL LTLOOP iAtW GO DELAY ABOUT 1 SECOND FOR EACH (300 COUNn
A,SMPAR i6ET WHICH REG HAS PARITY INFO IN IT
KVI
CALL ER.UTL iREAD DATA,PARITY BITS RETURNED IN ACCUH
iINVERT SO THAT .TRUE •• EG. HI
CMA
"'022 iSEE IF CRAtCRM ERROR TYPE
ANI
HR[IERR ,IF NO, GO FOR AHARD ERROR
JZ

.IF

,WELL, LETS SEE IF MEM BUSY OR 110 BUSY
R.BUSY i*****I/O RD 102*****
IN
iFIX HARDWARE COMPLIMENT
CMA
"'060 ;SEE IF EITHER OF THOSE TWO BITS SET
ANI
B,A
,SAVE RESULTS OF THIS 'AND' FOR ABIT
MOV
REFERR iSEE IF HEM REFRESH ERR EITHER
IN
,FIX HARDWARE INVERSION
CHA
ANI
1
JONLY KEEP THE REFRESH BIT
ORA
B
;THROW THE TWO TOGETHER .. IF HESULTS .EG. 0, THEN ALL OK
SOFT ERR iIF NOTHING, GO TRY FOR THE SOFT ERROR RECOVERY
JZ

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-164
SUBRTH.M80
****KS10 CONSOLE SUBROUTINE FILE
5045
5046 013511
(1) 013511 337
i1} 013512 232
5047
000
5048
5049
5050 013514
5051 013516 315
5052 013521
(1) 013521 337
(1) 013522 161
5053
5054 013524 333
5055 013526 057
5056 013527 315
5057 013532
(2) 013532 317
(2) 013533 040
505S 013534 333
5059 013536 057
5060 013537 346
5061 013541 315
5062 013544
(2) 013544 317
(2) 013545 040
5063 013546 333
5064 013550 057
5065 013551 346
5066 013553 315
5067 013556 315
506B 013561 315
5069 013564 303
001
5070

027

346 006
037

JGET TO HERE IF
NR:
PLINE
RST
.ADItR
.HlItC

ERROR IS CONSIDERED NON-RECOVERABLE
NRSCE
,'?NR-SCE', NON RECOVERABLE-SOFT CRAM ERROR
;PRINT LINE OF CHARS
3
NRSCE ,BUFF TO PRINT

HRIIERRI CLRB
CALL
PLINE
RST
.ADIIR

CHKPAR
CLRUSE
PARMSG
3
PARMSG

100
304 030

303
001
304 030

103
360
031
271
315
255

017
032
032
001
.IF

SMPAR
IN
CMA
CALL F'8BITA
PSPACE
HST
1
•BYTE SPACE
"0303
IN
CMA
"01
ANI
CALL P8BHA
PSPACE
RST
1
,BYTE SPACE
""0103
IN
CMA
ANI
"0360
CALL PBCRLF
CALL CLRRN
CALL LTFLT
JMP
REINI
DF,SCECO[l

iSM NOT TO REPORT AGAIN &AGAIN
iEXIT FROM USER MOOE
,MESSAGE TO CTY
iPRINT LINE OF CHARS
iBUFF TO PRINT
i*:UU I/O RII PARITY U***

,FIX THE HARDWARE HNERSION
;ANti PRINT IT OUT WITH THE ERROR MESSAGE
iSEPARATE THE 8 BIT DATUMS
;60 PRINT CHAR IN TRAILING BYTE
iCHAR TO PRINT
iREA[1 'DPM PARITY BIT'
jFIX CPU INVERSION
;ONLY INTERESTED IN BIT 0 'I1f'M PAR ERR'
,AND THEN PRINT THE 'DPM PAR' DATA
,AGAIN, SEPARATE BY SPACES
,GO PRINT CHAR IN TRAILING BHE
;CHAR TO PRINT
tREAD REG THAT HAS R PAR RIGHT &RPAR LEFI
iFIX THE HARIIARE INVERSION
iKEEf' ONLY THE 2 'R PAR" BnH
iPRINT IT
iCLEAR THE SOFTWARE 'RUNNING' FLAG TOO
jf'ARITY ERROR LIGHTS THE FAULT LIGHT
iAND GO RE-INIT .. PAR ERRS ARE FATAL

VER 6.2 KSIO CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-HAY-79 16150 PAGE 3-165
SUBRTN.H80
****KSI0 CONSOLE SUBROUTINE FILE
5072
5073 013567
(1) 013567
(1) 013570
(1) 013571
5074 013572
(1) 013572
(1) 013573
(1) 013574
5075
5076
5077
5078 013575
(1) 013575
(1) 013576
(1) 013577
5079 013600
Cl) 013600
(1) 013602
5080 013603
(1) 013603
(1) 013604
(1) 013605
5081 013606
(1) 013606
(1) 013610
5082 013611
(1) 013611
(1) 013612
(1) 013613
5083
5084 013614
(1) 013614
(1) 013615
(1) 013616
5085 013617
(1) 013617
(1) 013620
(1) 013621
5086
50B7 013622
5088 013623
5089 013624
5090 013625
5091 013626
5092 013627
5093 013630
5094 013631
5095
5096 013632
5097 013643

001
346
073
000
000
050

374
000
023
000 140
040
374
012
023
000 100
040
000
000

050
374
000
023
000
000
050
000
002
004
006
010
032
034
377

iCOHMAND LIST FOR READING UBA' INFO
UBA.RD: UBA. 763,001
•BYTE 001 & 377
•BYTE 0.1
•BYTE 9.2
ENDLST
•BYTE 0
.BYTE 0
•BYTE <12*4>
iRHll COHHANII LIST FOR CHECKING
iSTATES OF THE CONTROLLER
RH.TSTI EI. D776,P.00
•BYTE li.1
.BYTE P.OO &377
•BYTE 0.2
ERRTST 60000
.ADDR 60000
•BYTE <10*4>
EI. D776,P.12
•BYTE G.l
.BYTE P.12 &377
•BYTE Q.2
ERRTST 40000
.ADDR 40000
•BYTE <10*4>
ENDLST
•BYTE 0
•BYTE 0
•BYTE <12*4>

FOR RECOVERABLE &NON RECOVERABLE

RH.EXEI EI. II776,P.OO
.BYTE G.l
•BYTE P.GO & 377
.BYTE G.2
ENDLST
•BYTE 0
•BYTE 0
.BYTE (12*4>

iA TEMPLATE FOR RH EXAMINES

iEXAM CONTROLLER STATUS REG

iTEST FOR FATAL ERRS
iEXAM DRIVE STATUS REG

iCHECK THAT GUY FOR ERRS
iHERE IF ALL OK

iTHAT'S ALL WE NEED FOR THIS

SAVLSH •BYTE P.OO
iREAD 776700
iREAD 776702
•BYTE P.02
.BYTE P.04
iREAD 776704
,READ 776706
•BYTE P.06
iREAD 776710
•BYTE P.10
iREAD 776732
•BYTE 1'.32
iREAD 776734
•BYTE P.34
.BYTE -1
iEND OF LIST MARKER
;THE ASCII MESSAGES REQUIRED FOR PARITY RECOVERY
,NOT RECOVERABLE SOFT CRAM ERROR
077 116 122 NRSCE: .ASCIZI'?NR-SCE /
iRECOVERABLE SOFT CRAM ERROR
045 123 103 OKSCEt .ASCIZ/%SCE /

VER 6.2 I(S10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31} 3-MAY-79 16150 PAGE 3-166
SUBRTN.M80
****I(S10 CONSOLE SUBROUTINE FILE
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121

013651 021 344 040
013654 315 171 030
013657 312 114 027

iNOW GET THE CURRENT CRAM ADDRESS &CHECK FOR HARD CRAM ERRORS.
i(NOTE: AHARD CRAM ERROR IS ACRAM PARITY ERROR OCCURRING AT
iTHE SAME CRAM ADDRESS MORE THAN ONCE IN AROW)
,"DtP PAIR WILL POINT AT THE DESIRED
SOFTERR:
LXI
DtSCEADR
CALL BREAK
iGO CHECK IF CURRENT .EQ. DESIRED ••
JZ
HRDERR
HF YES, JUMP 'CAUSE ITS AHARD ERROR

013662 076 001
013664 323 204

iSOFT CRAM ERRO RECOVERY CONTINUED ••••
iRECOVERY BEGINS BY ZAPPING THE PE(l} FLOP SO WE MAY CATCH ANY ADDITIONAL
iPARITY ERRORS
MVI
iBIT TO RESET CRAM C.R. &PE(l)
At!
OUT
CRMCTL
i***** 1/0 WRT/204 *****

013666 042 344 040

iFALL THRU IF ADDRESS NOT THE SAME
NOTSAME: SHLD SCEADR
iSAVE IT AS THE NEW "PREVIOUS"

013671 041 175 027
013674 315 023 025
013677 332 111 027

iNOW CHECK RHll TO SEE IF THIS FAILURE IS RECOVERABLE FOR THE
iMONITOR. 8080 WILL SIMPLY EXECUTE ACHANNEL COMMAND LIST
iOF "ERRTST " , WITH THE CORRECT ERROR BITS CHECKED FOR
H,RH.TST
LXI
iPOINT TO ERROR CHECKER COMMAND LIST
CALL CHNXCT
iEXECUTE THAT LIST
JC
NR
iIF BAD, SAY NOT RECOVERABLE
iELSE ••• FALL INTO THE SOFT RECOVERY CODE

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY.-79 1,6:50 PAGE 3-167
SUBRTN.M80
****KS10 CONSOLE SUBROUTINE FILE
5123
5124
5125
5126
5127
5128
5129 013702
(1) 013702 337
(1) 013703 243 027
5130 013705 041 344
5131 013710 315 317
5132 013713
(2) 013713 347
(2) 013714 002
5133 013715 315 026
5134 013720 257
5135 013721 323 100
5136
5137
5138
5139 013723 041 167
5140 013726 315 023
5141 013731
(1) 013731 327
5142 013732 315 357
5143 013735
(1) 013735 367
5144
5145
5146
5147 013736 001 214
5148 013741 021 172
5149 013744 076 006
5150 013746 315 011

040
030

023

027
025
012

027
040
033

iFINALLY GET TO HERE IF THIS THING LOOKS RECOVERABLE. NOW WE MUST
iBEGIN SAVING THINGS •••
iFIRST •• GET THE CURRENT DISK UBA NUMBER TO SET UP THE RH11 REGISTER
iSAVING. THEN WE MUST SET UP THE RH11 BASE REGISTER ITSELF
iWHILE WE ARE AT IT, KIGHT AS WELL PRINT ALITTLE MESSAGE SAYING WHAT WE ARE
iDOING IN HERE
RECVR: PUNE OKSCE
;ERR KSB 'XSCE 1 SOFT CRAM ERROR
RST
iPRINT LINE OF CHARS
3
.ADDR OKSCE iBUFF TO PRINT
H,SCEADR
LXI
iNOW POINT TO THIS BAD ADDRESS
CALL P16
iAND PRINT IT
PCRLF
iTERKINATE EVERYTHING WITH ACR-LF
RST
4
.BYTE 2
CALL DSKDFT
iNOW GET THOSE DEFAULTS JUST MENTIONED
XRA
A
iCLEAR ACCUt!
OUT
RESET
i*****I/O WRT 100***** NO PAR CHECKING
iFINALLY READY
iFIRST GET UBA
LXI
CALL
HUON
RST
CALL
INTOFF
RST

TO BEGIN THE ACT OF SAVING SOME REGISTERS
LOCATION 763001
H,UBA.RII
iPOINTER TO UBA READ-IN LIST
CHNXCT
iREAD-IN THE UBA INFO •• NOW ITS IN EMBUF
iDON'T PRINT THIS
2
iGO SET INTERNAL MODE
EI1
iACTUALLY DO THE READ-IN
iOK NOW
6
iGO EXIT FROM INTERNAL MODE

iBEFORE WE SAVE IT, WE WILL SET UP FOR SAVING RH REGISTERS •• THAT WAY, WE
jeAN USE SOME COMMON CODE FOR PUTTING DATA INTO OUR SAVE BUFFER.
B,RH.EXE
LXI
iNOY POINT TO ACHANNEL COMKAND LIST
D,RIHOO
jAND POINT TO APLACE TO PUT THE LIST
LXI
A,6
tlVI
HT TAKES SIX BYTES TO MOVE THE ENTIRE LIST
CALL M5B
iMOVE THE STUFF TO RAt!

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - I'lICRO PF:OCESSOR ASSEHBLER 6(31) 3-MAY-79 1.S: 50 PAGE 3-168
SUBRTN.M80
****KSI0 CONSOLE SUBROUTINE FILE
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168

013751
013754
013755
013760
013763

041
345
021
001
315

222 027
327 042
012 040
007 033

;THE COIlE TO HOVE BYTES REGUIRES 'B,C' POINTING TO THE SOURCE
,AND I[I,E' POINTING TO THE DESTINATION
iANII 'A' HAVING HOW MANY BYTES TO BE MOVEn •• "MOVREG' DOES 5 BYTES
iFREE OF CHARGE..B,C AND D,E ARE UPDATE[! BY THE NUMBER OF BYTES MOVED.
H,SAVLST
,POINT TO ALIST OF THINGS WHICH WE MUST SAVE
LXI
iPLACE IT IN THE RAIl FOR SAFE KEEPING
PUSH H
n,RHSAVE
,D,E GETS THE POINTER TO THE SAlJE AREA
LXI
B,EMBUF
RH.LP; LXI
,WE WILL ALW~,YS BE MOVING STUFF FROM 'EMBUP
jMOVE 5 BYTES, PLEASE
CALL HOVREG

no SAVE THE RH REGISTERS, WE WILL PUT ATINY CHANNEL COMMAND

013766
013767
013770
5169 013773
5170 013774

341
176
062 173 040
074
312 014 030

iLIST INTO RAM SPACE, THEN EXECUTE IT, CHANGING THE DESIRED REGISTERS
iBETWEHI READS, WHICH WILL GIVE US ACHANCE TO SAVE THE RESULTS
,OF THE READ
iOET POINTER INTO 'REG TO BE SAVED' BUFFER
POP
H
A,M
;GET CURRENT BYTE INTO ACCUM
MOV
STA
RM100t1
iPUT BYTE INTO BUFFER SO CAN BE EXECUTED
iUP BY ONE
INR
A
SCEtGO
iIF THAT MAKES .EG. 0. THEN OUT
JZ

5171

5172
5173
5174
5175
5176
5177
5178

013777
014000
014001
014004
014005
014010
014011

043
345
041 172 040
325
315 023 025
321
303 360 027

INX
PUSH
LXI
PUSH
CALL
POP
JMP

H
H
H,RM100

n

CHNXCT
It

RH.LP

;ELSE UPDATE POINTER
;SAVE THE POINTER TOO
iPREPARE TO EXECUTE THE READIN BUFFER
,NOW SAVE THE SPOT WE ARE IN IN THE RHSAVE AREA
,DO IT •• ONE RH REGISTER IS IN
iRETRIEVE POINTER TO THE DATA SAVE SPACE
iSAVE INFO, AND REA[I IN NEXT RH REGISTER

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-169
SUBRTN.M80
****KSI0 CONSOLE SUBROUTINE FILE
5180
5181 014014
(1) 014014
5182 014015
5183 014020
5184 014023
5185
5186 014026
5187
5188 014031
5189 014034
5190
5191
5192
5193 014037
5194 014042
5195
5196
5197
5198 014045
5199 014050
5200 014052
5201 014053
5202 014056
5203 014061
5204
5205 014062
5206 014063
5207 014066
5208 014071
5209
5210
5211 014072
(1) 014072
(1) 014073
5212 014074
5213 014076
5214 014100

327
021 002 002
315 273 022
332 175 ' 032
315 043 023
052 344 040
315 320 014

;NOW DATA HAS BEEN SAVED, WE CAN ACTUALLY BEGIN TO RESTORE THE MICRO-CODE
;SET INTERNAL MODE
SCE.GO: INTON
;GO SET INTERNAL MODE
RST
2
D,~01002
,PLACE IN DISK PAGE OF POINTERS TO MICRO-CODE
LXI
;GO READ IN THE fIRST PAGE Of MICRO-CODE
CALL FIlESH
Hf ERR ITS All. OVER
JC C.BTERR
CALL

DMEM2CR

iGO LOAD CRAil
;GET ADDRESS AT WHICH TO CONTINUE
;SET THE CRAM ADDRESS TO THE GUY THAT SLIPPED
RECOVERY STUFF •• WE MUST RESTORE THE STATE
WAS BEFORE WE STARTED, THEN WE CAN TURN THE

041 167 027
315 023 025

LHLD SCEADR
CALL CADWR
;WE ARE NEARING THE END OF THIS
JOF THE RH11 AND UBA TO WHAT IT
;CLOCKS ON AGAIN
H,UBA.RD
LXI
CALL CHNXCT

072
346
117
041
315
004

iNOW FIX UP THE FORMAT BETWEEN AREAD OF THE UBA PAGING REG, AND
;THE WRITE WE WISH TO DO TO THE PAGING RAM
,GET THE BYTE THAT HAS THE CURRENT CNTRL BITS
LDA
RHSAVEf3
~O170
;OFF JUNK, KEEP ONLY 4 RELEVANT BITS
ANI
C,A
,SAVE IN THE CREG
MOV
H,RHSAVE
iNOW POINT TO OUR BUFFER WITH THE DESIRED INFO
LXI
iSHIFT DATA RIGHT, 4 PLACES
CALL SHR36
•BYTE 4

332 042
170
327 042
154 031

171
062 331 042
315 154 031
005

347
000
327 042
047 040
315 016 013

A,e
MOV
STA
RHSAVE+2
CALL SHR36
.BYTE 5
iAND THATS IT ••
MO\l5B
RST
•BYTE
.ADDR
.ADDR
CALL

;POINT TO AUBA READ CHANNEL COMMAND LIST
iSET THE 1/0 ADDRESS TO AUSA PAGE REGISTER

;GET OUR CONTROL BITS BACK
;PLOP THEM INTO THE 36 BIT WORD
;NOW SHIFT THE WHOLE MESS 5 MORE PLACES

HOVE STUFF TO AIiEPOSIT BUFFER
Hi "MOVP
4
0

RHSAVE
DHDAT
DIl

;FROM THE SAVE BUFFER
; TO THE DEPOSIT BUFfER
iWRITE THIS HESS BACK TO USA PAGING RAM

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-170
SUBRTN,M80
n**KS10 CONSOLE SUBROUTINE FILE
,

5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231

014103 041 214 027
014106 315 023 025

014111 041
014114 345
014115 001
014120 021
014123 315
014126 341
014127 072
014132 346
014134 266
014135 062
014140 176
014141 074
5232 014142 312
5233
5234
5235 014145 043
5236 014146 345
5237 014147 305
5238 014150 315
5239 014153 301
5240 014154 303
5241
5242 014157 315
5243 014162 315
5244 014165
(1) 014165 367
5245 014166 303
5246
000

222 027
334 042
047 040
007 033
024 040
300
024 040
157 030

016 013
120 030
356 016
214 014
335 001

iNOW WE WANT TO WRITE BACK THE RHll REGISTERS THAT WE SAVEll, THEN DESTROYED
H,RH,EXE
LXI
;NOW SET THE RH11 REGISTER I.D, INTO THE
CALL CHNXCT
iINTERNAL BUFFER •lOAD', INCLUDING UBA NUMBER
LXI
PUSH
LXI
DI+LP: LXI
CALL
POP
LilA
ANI
ORA
STA
MOV
INR
JZ

H,SAVLST
H

B,RHSAVEt5
D,DMDAT
MOVREG
H

WAD
~O300

M

IOAD
A,M
A

CONT,I

;POINT TO LIST OF F:EGS TO BE RESTORED
iSAVE THIS INFO ON THE STACK
,WILL BEGIN MOVING STUFF WE SAVED FROM RH
iALWAYS MOVE THE STUFF TO THE [IEPOSITBUFFER
,MOVE THE STUFF INTO 'DMDAT'
iGET OUR LITTLE LIST POINTER
,GET CURRENT OFFSET INTO RH
iTHROW AWAY CURRENT OFFSET
;THROW OUR DESIRE[I OFFSET INTO THE WORD
,PUT IT BACK INTO THE lOAD BUFFER
;6ET THE OFFSET WE JUST MESSED WITH
ilEST TO SEE IF ENIt OF LIST
!IF END OF LIST t FINISH THE RECOVERY

iNOT ENII OF LIST, MUST SAVE SOME MORE RH REGISTERS
INX
H
iUPDATE THE LIST POINTER
iSAVE THE POINTER
PUSH Ii
iSAVE POINTER TO THE SAVED DATA IN 'RHSAVE"
PUSH B
CALL ItIl
iNOW RESTORE THIS RH REGISTER
POP
iRESTORE POINTER INTO BUFFER
B
JMP
DI.LP
iCONTINUE
CONT.I: CALL
CALL
HHOFF
RST
JHP
.Et~nc

SMFINI

csctm

6
NULLJ

iGET CURRENT PARITY DEFAULTS &WRITE THEM OUT
iTURN THE CLOCK BACK ON
iNO MORE INTERNAL MODE
;GO EXIT FROM INTERNAL MonE
iGO

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-171
SUBRTN.M80
****KSI0 CONSOLE SUBROUTINE FILE
5248
5249
5250 014171 325
5251 014172 076 003

5252
5253
5254
5255
5256
5257
5258
5259

014174 315 362 014
014177 321

014200 052 100 040
014203 174
014204 346 007
014206 147

5260 014207 032

5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
52B1
5282
52B3
5284

014210
014211
014212
014213
014214
014215

275
300
023
032
274
311

014216 067
014217 343
014220 315 050
014223 343
014224 353
014225 042 235
014230 021 235
014233 365
014234 334 041
014237 361
014240 324 237
014243 311

033
040
040
012
012

014244
(1) 014244 347
(1) 014245 004
5285 014246 000 040
5286
5287 014250 052 000 040
5288 014253 311

iROUTINE TO CHECK IF CURRENT RAM ADDRESS IS THE DESIRED BREA
iAD[IRESS ..
;'D,E' HAS POINTER TO DESIRED ADDR, SAVE IT PLEASE
BREAK: PUSH D
A,3
iDIAG FUNC TO READ CURRENT RAM ADDR
tlVI
CALL READC ,GO DO FUNCTION READ
iNOW MAKE 'D,E' POINT AT DESIRED AGAIN
POP
D
LHLD
tlOV
ANI
tlOV

TtlPB2
A,H
"'07
H,A

iGET CURRENT ADIIRESS ..
;ALSO MAKE SURE THE CURRENT JUST READ IS 11 BITS
,8 BITS LO HALF, PLUS 3 BITS HI HALF
iNOW PUT THE WHOLE MESS BACK

LDAX
CtlP
RNZ
INX
LDAX
CMP
RET

D
L

,GET LO ORDER PIECE TO ACCUM
iCHECK VERSUS JUST READ
JIF .NE. 0, THEN NO MATCH, SO OUT ••
iOK, SO UPDATE PNTR TO READ-IN
,GET HI ORDER OF DESIRED PIECE
,COMPARE, SIGNS TAKE CARE OF THEMSELVES
,IF RESULT OF ADD WAS ZERO, GOOD.IF NOT,OK TOO ••

D
D
H

;ROUTINE TO DO SHORT FORti OF EXAMINE MEMORY
;ENTER WITH 'D,E' CONTAINING SHORT ADDRESS
,SET C-BIT FOR LATER USE IN COMtlON CODE
EXAtlSHt STC
iSWAP SO H,L POINTS TO TRAILING ARB
DEPSHT: XTHL
CALL TARG1 ,COLLECT TRAILING ARB INTO 'DtE"
;SWAP BACK SO THAT THINGS ARE RIGHT
XTHL
,AND NOW MAKE 'H,L' HOLD THE TRAILING ARG
XCHG
EXMHU SHLD SHRTAD iSTORE SHORT ADDRESS IN THE RAM
D,SHRTAD ;DE, GETS REPLACE WITH APOINTER TO SHORT ADDRESS
LXI
iSAVE THE C-BIT FOR LATER USE
PUSH PSW
CC
EMINT iIF C WAS SET, GO DO AN EXAMINE
;GET FLAGS AS THEY WERE
POP
PSW
CNC
DMINT iIF C WAS CLR DO ADEPOSIT
RET
iNOW OK TO RETURN
,ROUTINE THAT EXECUTES AN "ARG16', THEN RETURNS THE DATA IN 'H,L'
iARGUMENT ASSEMBLER
ARG16.: ARG16
RST
4
•BYTE 4
.ADDR T80DT JUSE ATEMP LOCATION
LHLD
RET

TBODT

;GATHER DATA INTO H,L
iAND BACK

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3··172
SUBRTN.M80
****KS10 CONSOLE SUBROUTINE FILE
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
530B
5309
5310
5311
5312
5313
5314
5315
5316
5317
531B

014254
014255
014256
014257
014260
014263
014264
014265
014267
014270
014273
014274

345
305
325
365
315
001
003
016
361
315
015
302

014277
014300
014301
014302
014303

361
321
301
341
311

014304
014305
014310
014311

032 031
003
010 004
267 030

345
041 122 040
167
303 255 030

,SUBROUTINE TO PRINT ASINGLE 8-BIT BYTE AS OCTAL DATA
iOF THE FORM; XXX
,NO REGS {!ESTROYED, ,PNTR TO B-BIT BYTE PASSED IN %L'
P8BITl PUSH H
iSAVE ALL REGISTERS
PBBIT1: PUSH B
PUSH D
PUSH PSW
CALL OCTAL iCREATE a-BIT BUFFER AS A3 OCTAL CHARACTERS
•BYTE 1
;ONE BYTE OF BINARY DATA INVOLVED
•BYTE 3
iWANT ONLY 3 OCTAL CHARS
(,03 ,NUM CHARS TO PRINT
MVI
P8LP: POP
PSW
iCHAR OFF TOP OF STACK
CALL PCHR
iAND GO PRINT IT
,[lOWN COUNT
tlCR
C
PBLP iAN[t CONTINUE TILL [tONE ALL 3
JNZ
POP
POP
POP
POP
F:ET

PSW
[t

,RESTORE REGS

B

H
iAND ALL [lONE

;WHEN DOING A 'PBBIT' WITH THE MTA PASSEB IN THE ACCUM
iINSTEA[t OF BEING POINTEB TO BY H,l THEN COME HERE
PBBITAl PUSH H
iMUST SAVE H,L HERE, SO WE CAN MESS IT UP
LXI
H,PS.TMP iKEEP APLACE FOR PRINTING DATA
M,A
MOV
iPUT THE THING TO BE PRINTED IN THE RAM SPACE
JMP
PSBITl iBO TO COMMON CODE

VER 6.2 KSI0 CONSOLE PROGRAI'I CROSS - I'IICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-173
SUBRTN.MSO
****KS10 CONSOLE SUBROUTINE FILE
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343

014314
014317
014320
014321
014322

041 100 040
365
305
325
345

014323 315 032 031
014326 002
014327 006
014330
014332
014333
014336
014337

006 006
361
315 010 004
005
302 332 030

014342
014343
014344
014345
014346

341
321
301
361
311

,SUBROUTINE TO PRINT 16-BITS WORTH OF DATA ••
iPOINTER TO THAT DATA IS PASSED TO THE ROUTINE IN
,REGISTER 'HIL'
H,TMPB2 HN THIS TYPE CALL, WE LOAn H,L AUTOMATICALLY
P16. : LXI
,SAVE ALL THE REGISTERS
PUSH PSW
P16t
PUSH B
PUSH D
PUSH H
CALL
•BYTE
,BYTE
MVI
P16LPt POP
CALL
tlCR
JNZ
POP
POP
POP
POP
RET

OCTAL
2

6

rho

,CREATE OCTAL CHARS FROM THE ill-BIT MTA
H,jE HAVE 2 BYTES OF RELEVANT [lATA
,AND WE WANT 6 OCTAL CHARS TO PRINT

PSW
f'CHR
B
P16LP

,ON RETURN WE WANT TO PRINT 6 CHARS
,GET OCTAL CHAR OFF STACK
;AND GO PRINT IT
HIOWN THE COUNT
; BACK TO PRINT Mor(E TILL ALL DONE

H

,BONEt,NOW RESTORE ALL REGS

D
B

PSW
,ANn RETURN

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-174
SUBRTN.MBO
****KS10 CONSOLE SUBROUTINE FILE
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
(1)

(1)

5360
(1)

{1j

5361
5362
5363
5364
5365
5366
5367
5368

014347
014352
014353
014354
014355
014356
014361
014362

041 012 040
365
305
325
345
315 032 031
005
014

014363 315 002 031
014366
014366
014367
014370
014370
014371
014372
()14375
014376
014377
014400
014401

317
054
317
054
315 0()2 031
341
321
301
361
311

5369 014402 341

5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388

014403 006 006
014405 361
014406 315 010 004
014411 005
014412 302 005 031
014415 351

014416
014417
014420
014421
014422
014425
014426

365
305
325
345
315 032 031
003
006

014427 303 372 030

iSUBROUTINE PRINT 36-B1T BINARY DATA AS
iA 12-0CTAL DIGIT CHARACTER STRING IN THE FOrlM:
;
XXXXXX"XXXXXX -NO REGS DESTROYED-BIN MTA f'NTR PASSED IN %L '
H,EMBUF ;IN THIS CALL, WE LOMI H,L AUTOMATICALLY
P36.i LXI
PUSH PSW
iWILL SAVE ALL REGS Itl HERE
P36l
PUSH B
PUSH It
PUSH H
CALL OCTAL iCREATE 36-BIT BUFFER AS AN OCTAL CHARACTER STRING
i5BYTES REQUIRED BY 36-BIT5
•BYTE 5
.BYTE "D12
iWANT 12 OCTAL BIGHS
CALL
aF HERE, JUST
PCHAR
RST
,BYTE
PCHAR
RST
•BYTE
F'36RH: CALL
POP
POP
POP
POP
RET
,ROUTINE PRINTS
PHALF: POP
MVI
P36L2: POP
CALL
DCR
JNZ
PCHL

PHALF jPRINT 18 BITS
FINISHED FIRST PASS, NEED 2 COMMAS.
COMMA
iGO PRINT CHAR IN TRAILING BYTE
1
COMMA iCHAR TO PRINT
COMMA iPRINT ',,'
1
i60 PRINT CHAR IN TRAILING BYTE
COMMA ,CHAR TO PRINT
PHALF ,PRINT 18 MORE BITS ...
H
iNOW RESTORE ALL THE REGS
II

B
PSW
,RETURN
18 BITS
H
B,6
PSW
PCHR

AS 6 OCTAL CHARS
,GET ARETURN ADDR OFF STACK,SO STACK IS CLR
,'B' WILL BE ACOUNTER, IN IT WITH 3
,CHARACTERS TO ACCUM
,PRINT IT

B
P36L2

,DOWN COUNT
iCONTINUE IF NOT DONE 6 CHARS YET
,RETURN

,ROUTINE TO ALONE PRINT
P18:
PUSH PSW
PUSH B
PUSH n
PUSH H
CALL OCTAL
•BYTE 3
,BYTE 6
JMP

P36RH

18 BITS
,WILL SAVE ALL REGS IN HERE

,CREATE 6 OCTAL CHARS
,3 BYTES HAVE RELEVANT DATA
iAND DESIRE 6 OCTAL CHARS
t60 TO RIGHT HALF PRINTER FROM 'P36'

VER 6.2 I(S10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16150 PAGE 3-175
SUBRTN.HBO
****KS10 CONSOLE SUBROUTINE FILE
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
541B
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437

,UNIVERSAL BINARY [lATA TO ASCII CHARACTEF: SUBROUTINE
,ROUTINE DESTROYS THE CONTENTS OF ALL REGISTERS
iPASS POINTER TO BINARY DATA IN 'HIL' ,THEN CALL APPROPRIATE
,COVERSION DESIRED WITH 2 TRAILING PARAMETERS"CHARS PLACErI ON STACK, MSB-LSI!
CALL ROUTINE
HWMBER OF BYTES HOLDING RELEVANT BINARY DATA
XX
DB
;
,NUMBER OF ASCII CHARACTERS TO BE GENERATEfJ
DB
YY
;ROUTINES ARE 'OCTAL', 'BINRY', AND 'HEXlItECIMAL'
iCO[lE WAS NEVER USE[I, .KEEP TEXT HERE JUST IN CASE WE EVER MEEIt TO A[lIt IT.,
,THIS WAY WE WON'T HAVE TO FIGURE IT ALL OUT AGAIN
[I,~0401 jLOA[I [I=1,E=1
iBINRY: LXI
JMP
COMEN ,GO TO COMMON CO[lE
;LOAD [1=3,£=7
,SWAP '[I,E' WITH 'H,L '
iSET DATA INTO 'BTMSK' &'BlNUtI'

014432 021 007 003
014435 353
014436 042 202 040

OCTAL: LXI
XCHG
SHlD

BTtlSK

014441
014442
014443
014444
014445

iPOINTER TO BIN
XTHL
MOV
INX
MOV
INX

DATA NOW IN 'IttE'
PH,l' NOW POINTS TO TRAILING ARGS
H,M
iBOMB 'B' REGISTER, NOW CONTAINS 'NUM' BYTES
iUPIlATE PNTR
H
C,M
,NUM CHARS INTO C
iAND UP[lATE PNTR TO RET flDDR
H

343
106
043
116
043

014446 042 217 040
014451 341
014452 305
014453 041 073 040
014456
014457
014460
014461
014462
014463

032
023
167
043
005
302 056 031

SHLD
POP
PUSH

[I,~01407

HLSAVE ,SAVE RETURN IN RAM
,CLEAR Ol[l STUFF OFF STACK
H
,SAVE 'B,C' JUST TEMPORARILY
B

H,TMPBF2
i 'Htl' NOW POINTS TO TEMPOF:ARY BUFFER
LXI
,IF FALL TO HERE, MUST MOVE nATA FROM BINARY BUFFER TO TEMP BUFFER
iI!ATA POINTED TO BY 'D,E' TO AeCUM
OClLi : LIIAX II
,BUMP POINTER
INX
D
!'j,A
MOV
;SET THAT DATA IN RAM
;BUMP POINTER
INX
H
ItCR
inONE ALL BYTES YET?
B
OCTLl ,BACK TILL MOVED ALL.
JNZ

014466 301

POP

B

,RESTORE 'B,C' AND GO

014467
014472
014473
014474
014475
014476
014477

LXI
XRA
MOV
MGV
[lCR

H,TMPBF2

; 'HtL' NOW PNTS TO TMP BUFF
,CLEAR AeCUM
,CLEAR 'D' REG
,BYTE COUNT TO 'E'
,BUFF IS ALWAYS 1 LESS THAN BYTE COUNT
i 'HIL' GETS BUFF ADIIR PLUS BYTE COUNT
,AND SAVE TIllS A[IDR IN THE RAM

041 073 040
257
127
130
035
031
042 233 040

A

D,A
E,B
E

BAIt

D

SHLD

OCTSV

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER
SUBRTN.MBO
****KS10 CONSOLE SUBROUTINE FILE
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469

014502 041 073 040
014505 072 202 040
014510 246
014511 306 060
014513
014514
014515
014520
014523

365
015
312 150 031
072 203 040
127

bOU

3··MAY··79 16:50 PAGE 3-176

iHERE WILL BEGIN TRANSLATION FROM BINARY TO CHARACTERS
H,TMPBF2
OCTlC: LXI
,'HIL' NOW POINTS TO TEMPORARY BUFFER
BTMSK iNOW GET BIT MASK
LDA
ANA
M
i Aim TO KEEP ONLY DESlfiEI! CHARS
"060
AIl I
iNOW MUST ROTATE ENTIRE
PUSH PSW
nCR
C
JZ
OCTLS
LDA
BTNUM
II,A
MOV
[,B
OCTSV
A

,HAKE INTO ASCII
BUFFER 3 PLACES TO RID OURSELVES OF CHAR JUST PROCESSED
,NOW SAVE CHARACTER WEVE JUST CREATEn
,DOWN THE CHAR COUNT
iJUMP OUT IF PROCESSED ALL CHARS
,GET NUM BITS INTO ACCUM
; 'n' GETS INITAL COUNT OF BITS

014524 130
014525 052 233 040
014530 247

OCTL31 MOV
LHLn
ANA

014531
014532
014533
014534
014535
014536
014541
014542

014545 303 102 031

A,M
OCTL4! MOV
iGROUP OF BINARY BITS TO ACCUM
,BIT 0 INTO 'C' BIT
RAR
n,A
MOV
iAND SHIFTED IIATA BACK INTO MEM
,STEP UP IN THE BUFFEn (uPSIDE-DOIJN BUFFER)
DCX
H
DCR
E
iIlOWN BYTE COUNT
JNZ
OCTL4 iCONTINUE WITH BUFFER
nCR
II
inONE BUFFERS WORTH, SEE IF DONE ALL 3 BITS WOF:TH
JNZ
OCTL3
nlONE THE 3-BITS, NOW CONTINUE WITH NEXT CHARACTER
JMP
OCTLC ;GO PROCESS NEXT CHARACTER

014550 052 217 040
014553 351

jHERE WHEN DONE ALL CHARS.
oeTL5: LHLD HLSAVE iGRAB THE RETURN ADDRESS
PCHL
jAND f 3-MAY-79 16:50 PAGE 3-212
SUBRTN.MBO
ENVELOPE COLLECTOR
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505

01672Q 041 125 042
016723 042 123 042

iHERE IF NOT PRINTING YET •• PRINT FIRST CHARACTER ANI! PLAN ON SOME MORE
NOTBUSY: LXI H,SYSBUF ;TH1S IS THE FIRST TIME IN
SHLII SYSOUT ;SET THE FLAG &THE POINTER

016726
016727
016730
016732

170
107
376 012
302 344 035

MOV
MORE. : MOV
CPI
JNZ

A,B
BIA
LFCHR
MM.PNT

016735
016740
016741
016744
016745
016746

072 260 040
247
304 123 004
170
373
315 056 004

LIlA
ANA
CNZ
KM.PNT: MOV
EI
CALL

CNTLG.ON iMUST WE ANSWER EVERY {LF> WITH A'CNTROL-Q"
iIF FLAG .EQ., THEN NO, IF YES THEN WRITE IT
A
KCHRO iYES, ALINE FEEI!, SEND THE SYSTEM A 'CONTROL-Q'
A,B
iNO MATTER HOW UGOT HERE, CHAR GOES TO'ACCUM
HNTERRUPTS ON NOW, BEGIN F'RINTING
PCHRIZ iPRINT ACHAR

016751
016752
016755
016756
016757

363
052 121 042
174
247
312 376 035

iBACK TO HERE WHEN I!ONE PRINTING
DI
iDON'T BOTHER ME FOR ABIT
LHUI SYSIN iGRAB POINTER OF THINGS WAITING TO BE PRINTEn
iGET FLAG
MOV
AIH
ANA
A
isn FLAGS
DONE.BUF iIF NOTHIN, ALL nONE
JZ

016762 176
016763 247
016764 312 376 035
016767 043
016770 042 121 042
016773 303 327 035
016776
016776
017001
017004
017007

041 000 000
042 121 042
042 123 042
311

;GET CHAR BACK TO ACCUM SO CAN PRINT IT
iWHERE EVER UCOME FROM, SAVE ACCUM IN BREG
iIS THIS ALINE FEED??
iIF NO, NOTHING SPECIAL

iHERE WHEN SOMETHING TO DO
KOV
AIM
iGRAB ACHARACTER TO PRINT
ANA
A
iKUST FIRST CHECK FOR ENIt OF BUFFER
JZ
DONE.BUF HF noNE RESET THE POINTERS AND GET OUT
INX
SHLD
JMP

H

SYSIN
MORE.

,HERE ON IIONE ALL .. FALL
DONE.BUFI
H,O
Z. TBun LXI
SHLD SYSIN
SETOUT I SHLII SYSOUT
RET

iNEXT POINT
,SET INTO RAM
,DO MORE
INTO Z-BUFF COIlE
;WE NEED TO CLEAR SOME BUFFERS
;CLEAR POINTER
i AND CLEAR POINTER

VER 6.2 KSI0 CONSOLE PROGRAH CROSS - HICRO PROCESSOR ASSEHBLER 6(31) 3-HAY-79 16:50 PAGE 3-213
SUBRTN.H80
HORE ERROR ESCAPES

****

6507
6508 017010
(1) 017010
(1) 017011
6509
6510 017013
6511 017016
6512 017021
(1) 017021
6513
6514 017022
6515 017023
6516 017025
(1) 017025
(1) 017026
6517
6518 017030
6519 017033
6520
6521 017036
6522 017037
6523 017041
(1) 017041
(1) 017042
6524 017044
6525
6526 017047

337
220 037
041 001 000
042 154 040
311
257
323 210
337
234 037
041 002 000
303 016 036
257
323 210
337
226 037
041 003 000
303 016 036

****

.SBTTL ***i HORE ERROR
NOACK: PUNE NOA
RST
3
.ADDR NOA

ESCAPES *i**
;"PRINT NO DATA ACK"
jPRINT LINE OF CHARS
iBUFF TO PRINT

H,1
LXI
ERRRTNI SHLD ERRCD
ENDCKD
RET

jERR CODE IS 1
;SET ERROR CODE

NOARB: XRA
OUT
PUNE
RST
.ADDR

iCLR ACCUK
;***** 1/0 WRT 210/0 i****
P1NO BUS RESP'
iPRINT LINE OF CHARS
jBUFF TO PRINT

LXI
JHP
NIXOH: XRA
OUT
PUNE
RST
.ADDR
LXI
JKP

A
BUSeTL
NBR
3
NBR

;RETURN TO CALLER

H,2
jERR CODE IS 2
ERRRTN iGO SET ERROR CODE
A
BUSCTL
NXHKSG
3
NXKKSG
H,3

iCLR ACCUH
i***** 1/0 WRT 21010 i*i*i CLR OUT NIXOK BIT AFTER THE REPORT
j"PRINT 1NXK"
iPRINT LINE OF CHARS
iBUFF TO PRINT
iERROR CODE 3

ERRRTN iSH ERROR CODE

VER 6.2 1(510 CONSOLE F'ROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16150 PAGE 3-214
DR.MBO ****DISI( TRANSFER CHANNEL COMMAND LIST****
652B
6529
6530 017052
6531
6532
6533
6534
6535 017052
(1) 017052
(1) 017053
(1) 017054
6536 017055
(1) 017055
(1) 017056
(1) 017057
6537 017060
(1) 017060
(1) 017061
(1) 017062
653B 017063
(1) 017063
(1) 017065
6539 017066
(1) 017066
(1) 017067
(1) 017070
6540 017071
(1) 017071
(1) 017073
6541 017074
(1) 017074
(1) 017076
6542 017077
(1) 017077
(1) 017100
(1) 017101
6543 017102
(1) 017102
(1) 017103
(1) 017104
6544 017105
(1) 017105
(1) 017107
6545 017110
(1) 017110
(1) 017111
(1) 017112
6546 017113
(l) 017113
(1) 017114
(1) 017115
6547 017116
(1) 017116
(1) 017117

.SBTTL ****[lI5K TRANSFER CHANNEL COMMAN[I LIST****
DSKSEGl
jA MINOR NOTEI 40000 WEIGHT BIT IS "VALIIi'
: 100000 WEIGHT BIT IS "36-811 XFR"
001
346
073
001
300
000
374
010
013
132 040
200
374
012
023
000 001
060

200 000
030
374
010
013
040
000
000
132 040
200
374
000
013
011
000
000
021
000

UBA. 763,001
iADDRESS OF USA IS FIRST ELEMENT OF THE LIST
•BYTE 001 & 377
•BYTE G.1
•BYTE 0.2
;VALI£t & 136 BIT XFR' FOR PAGE 1 (1000-1777)
III. 140,001
•BYTE 001 & 377
•BYTE G.l
•BYTE 0.2
LI. It776,P .10 iGET ItRIVE STATUS & CONTROL REG, SO CAN SET UNIT
•BYTE Q.l
•BYTE F' .10 & 377
•BYTE Q.2
DI.INDIRECT UNlTNM ;NOW SET THE UNIT NUMBER
.ADDR UNITNM
•BYTE "0200
El. D776,P.12 jADDRESS OF ItRIVE STf)TUS
•BYTE G.l
•BYTE P.12 & 377
.BYTE G.2
iCHECK THAT THE ItRIVE IS PRESENT
TWAIT 400
.ADltR 400
•BYTE <14*4>
,CHECK & WAIT FOR READY
WAIT 200
•AltItR 200
•BYTE <6*4)
LIt It776,P.10 iADDR OF I1RIVE STATUS REG
•BYTE G.l
.BYTE P.lO & 377
•BYTE G.2
III. 0,40
iISSUE CONTROLLER CLR
•BYTE 40 & 377
.BYTE G.l
•BYTE 0.2
[II.INDIRECT UNITNM iSET TO UNIT t
.ADIIR UNITNM
•BYTE "0200
LI. It776,P.OO JADDR OF CONTROLLER STATUS REG
.BYTE G.l
•BYTE P.OO & 377
•BYTE G.2
DI. 0,11
jISSUE DRIVE CLEAR
•BYTE 11 & 377
.BYTE G.l
•BYTE Q.2
DI. 0,21
jSET 'READ-IN-PRESET·
.BYTE 21 & 377
•BYTE G.1

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-215
VER 6.2 KS10 CONSOLE PROGRAM
DR.Hao ****DISK TRANSFER CHANNEL COMMAND LIST****
(1) 017120
6548 017121
(1) 017121
(1) 017122
(1) 017123
6549 017124
(1) 017124
(1) 017126
6550 017127
(1) 017127
(1) 017131
6551 017132
(1) 017132
(1) 017133
(1) 017134
6552 017135
(1) 017135
(1) 017137
6553 017140
(1) 017140
(1) 017141
(1) 017142
6554 017143
(1) 017143
(1) 017145
6555 017146
(1) 017146
(1) 017147
(U 017150
6556 017151
(1) 017151
(1) 017152
(1) 017153
6557 017154
(1) 017154
(1) 017155
(1) 017156
655a 017157
(1) 017157
(l) 017160
(l) 017161
6559 017162
(1) 017162
(1) 017163
(1) 017164
6560 017165
(1) 017165
(1l 017166
(1) 017167
6561 017170
(1) 017170
(1) 017171
(1) 017172
6562 017173

000
374
012
013
200 000
030
100 000
060
374
006
013
105 040
200
374
034
013
112 040
200
GXFR:
374
002
013
000
374
000
374
004
013
000
010
000
374
000
013
071
000
000
374
000
023

•BYTE G.2
LI. 11776,P. 12 ,GET TO THE ItRIVE STATUS REGISTER
.BYTE G.l
.BYTE P.12 & 377
.BYTE G.2
iWAIT FOR IT TO BE REAIty
WAlT 200
.AItDR 200
.BYTE {6M>
iNOW CHECK THAT 'PRE-SET' HAS SET VOLUME VALII!
TWAIT 100
.ADDR 100
•BYTE <14*4>
LI. D776,P.06 iADItR TRACK/SECTOR REG
.BYTE G.l
•BYTE P.06 &377
•BYTE G.2
BLKNUM iEMPTY FOR NOW
DI.INDIRECT
.ADDR BLKNUM
•BYTE "0200
LI. D77luP .34 iADDR OF CYLINDER REG
•BYTE G.l
.BYTE P.34 &377
.BYTE lli2
BLKADR iEMPTY FOR NOW
DI.INBIRECT
.ADDR BLKADR
•BYTE "0200
LI. 11776,P.02 iADD OF WORD COUNT REG
•BYTE G.l
•BYTE P.02 &377
.BYTE 0.2
DI. 176,000
1512 WORBS IS 1024 HI-BIT BYTES(A PAGE>
•BYTE 000 & 377
.BYTE G.l
.BYTE G.2
LI. D776,P.04 iADDR OF UNIBUS ADDRESS REG
•BYTE G.l
.BYTE P.04 &377
•BYTE G.2
iSET SM10 MEM ADIIR TO 1000
DI. 4,000
•BYTE 000 &377
•BYTE G.l
•BYTE G.2
LI. rt776,P .00 iBACK TO STATUS REG
•BYTE G.i
•BYTE P.OO &377
•BYTE G.2
DI. 0,71
,ISSUE REAli
.BYTE 71 & 377
•BYTE G.l
•BYTE G.2
El. 1I776,P.00 iNOW READ TO CHECK FOR ERRORS IN XFER
•BYTE G.l
•BYTE P.OO &377
•BYTE G.2
jCHECK FOR REAlty BIT TRUE ..
WAIT 200

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-216
DR.MBO ****DISK TRANSFER CHANNEL COMMAND LIST****
017173
017175
6563 017176
(1) 017176
(1) 017177
(1) 017200
6564 017201
(1) 017201
(1) 017203
6565
6566 017204
(1) 017204
(1) 017205
(1) 017206
6567 017207
(1) 017207
(1) 017211
656B 017212
(1) 017212
(1) 017213
(1) 017214
(1)

(1)

200 000
030
374
012
023
000 100
040
374
000
023
000 140
040
000
000
050

.ADDR 200
.BYTE {6*4)
EIt D776,P.12 iCHECK DRIVE STATUS REG ITSELF
•BYTE G.i
•BYTE P.12 &377
•BYTE G.2
ERRTST 40000 nEST 'ERR' BIT
.ADDR 40000
•BYTE <10*4)
iIF IT WAS OK, THEN CHECK THE CONTROLLER FOR ERRORS
EI. D776,P.00 iEXAMINE CONTROLLER
.BYTE G.1
•BYTE P.OO &377
•BYTE G.2
ERRTST 060000 jDRIVE RDY, NOW SEE IF ENCOUNTERED ERRORS
.ADDR 060000
.BYTE {10*4)
ENDLST
iEND OF CHANNEL COMMAND LIST
•BYTE 0
•BYTE 0
.BYTE {12*4)

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-217
DR.MBO TAPE TRANSFER CHANNEL COMMAND LIST
6570
6571
6572
6573
6574
6575
6576
6577
657B
6579
65BO
6581
6582
65B3
6584 017215
(1) 017215
(1) 017216
(1) 017217
65B5 017220
(1) 017220
(1) 017221
(U 017222
6586 017223
(U 017223
(U 017224
(1) 017225
6587 017226
(1) 017226
(1) 017227
(1) 017230
6588 017231
(1) 017231
(1) 017233
65B9 017234
(1) 017234
(1) 017235
(1) 017236
6590 017237
(1) 017237
(1) 017241
6591 017242
(1) 017242
(1) 017243
(1) 017244
6592 017245
(1) 017245
(1j 017247
6593 017250
(1) 017250
(1) 017252
6594 017253
(1) 017253
(1) 017254
(1) 017255

.SBTTL TAPE TRANSFER CHANNEL COMMAND LIST
i[lRIVE CONTROLLER REGISTER IS 77b440 .. FOLLOWnW COMMANDS APPLY
7=REWIND
l1=DRIVE CLEAR
25=ERASE
27=WRITE TAPE MARK
31=SPACE FORWARD(SKIP AFILE!
33=SPACE REVERSE(SKIP AFILEI MOVING TAPE IN REVERSE)
51=WRITE CHECK FORWARII
57=WRITE CHECK REVERSE
61=WRITE FORWARD
71=READ FORWARD(GO!)
77=READ REVERSE(GO!)
001
346
073
001
100
000
364
010
013
040
000
000
137 040
200
364
O~'l

~.:.

013
362 040
200
364
012
023
000 001
060
200 000
030
364
006
013

MTASEG: UBA. 763,001
iADDRESS OF UBA PAGING RAM
•BYTE 001 & 377
•BYTE G.l
•BYTE G.2
DI. 40,001
;SET VALID IN PAGE 1
•BYTE 001 & 377
.BYTE G.l
•BYTE G.2
LI. D772,P.I0 iSET ArIDRESS OF DRIVE CONTROL REGISTER
•BYTE G.1
.BYTE P.I0 & 377
•BYTE G.2
Ill. 0,40
;ISSUE CONTROLLER ANI! SLAVE CLR
•BYTE 40 & 377
•BYTE G.l
•BYTE G.2
DI. INIIIRECT TAPEUNIT tSET TAPE UNIT *
.AI!DR TAPEUNIT
•BYTE ~O200
LI. D772,P.32 iSLAVE SELECT/FORMAT/DENSITY REG
•BYTE G.l
•BYTE P.32 & 377
•BYTE G.2
DI.INDIRECT I!EN.SLV ;SET SLAVE, FORHAT, DENSITY(TEHPtDENS=1600,F=0,S=0)
.ADDR DEN.SLV
•BYTE ~O200
El. £t772,P.12 iREAD THE DRIVE STATUS, TO MAKE SURE IT EXISTS
•BYTE G.1
•BYTE P.12 & 377
•BYTE G.2
TWAIT 400
iCHECK THE 'DRIVE PRESENT' BIT
.ADDR 400
•BYTE <14*4>
iIF WAS PRESENT, WAIT FOR IT TO BE READY
WAIT 200
.A£tDR 200
•BYTE <6*4>
LI. It772,P.06 iFRAME COUNT REGISTER
•BYTE a.1
•BYTE P.06 &377
•BYTE a.2

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-21a
DR.MaO TAPE TRANSFER CHANNEL COMMAND LIST
6595 017256
(1) 017256
(1) 017257
(1) 017260
6596 017261
(1) 017261
(1) 017262
(1) 017263
6597 017264
(1) 017264
(1) 017265
(1) 017266
6598 017267
(1) 017267
(1) 017270
(1) 017271
6599 017272
(1) 017272
(1) 017274
6600 017275
(1) 017275
(1) 017276
(1) 017277
6601 017300
(1) 017300
(1) 017301
(1) 017302
6602 017303
(1) 017303
(1) 017304
(1) 017305
6603 017306
(1) 017306
(1) 017307
(1) 017310
6604 017311
(1) 017311
(1) 017312
(1) 017313
6605 017314
(1) 017314
(1) 017315
(1) 017316
6606 017317
(1) 017317
(1) 017320
(1) 017321
6607 017322
(1) 017322
(1) 017324
6608 017325
(1) 017325
(1) 017326
(1) 017327

000
000
000
364
000
013
007
000
000
364
012
023
200 000
030
364
004
013
000
010
000
364
002
013
000
374
000
364
006
013
000
000
000
364
000
013
144 040
200
364
012
023

DI. 0,0
jFRAHE COUNT TO 0 IS MAX NUMB OF FRAMES
•BYTE o & 377
•BYTE G.l
•BYTE G.2
LI. D772,P.00 iSET ADDRESS TO RHll CONTROL REGISTER
•BYTE G.l
•BYTE P.OO & 377
•BYTE G.2
DI. 0,7
iISSUE 'REWIND' TO TAPE
.BYTE 7 & 377
.BYTE G.l
•BYTE G.2
EI. D772,P.12 iREAD THE DRIVE STATUS TO CHECK FOR READY
.BYl! G.l
•BYTE P.12 &377
•BYTE G.2
iWAIT FOR REWIND TO COMPLETE
WAIT 200
.ADDR 200
•BYTE (6*4)
GTXFR: LI. D772,P.04 iCONTROLLER TO MEMORY DEST. REG
•BYTE G.l
•BYTE P.04 & 377
•BYTE G.2
DI. 4,000
iSET KSI0 START ADDRESS TO 1000
•BYTE 000 & 377
•BYTE G.l
•BYTE 0.2
LI. D772,P.02 iSET ADDRESS TO WORD COUNT REGISTER
•BYTE G.l
.BYTE P.02 & 377
•BYTE G.2
DI. 176,000
i1 PAGE OF 512 WORDS IS 1024 18-BIT BYTES
•BYTE 000 & 377
•BYTE 0.1
•BYTE 0.2
LI. D772,P.06 iFRAME COUNT REGISTER
•BYTE G.l
•BYTE P.06 & 377
•BYTE G.2
DI. 0,0
iFRAME COUNT TO 0 IS MAX NUMB OF FRAMES
•BYTE o & 377
•BYTE G.l
•BYTE 0.2
LI. D772,P.00 iSET ADDRESS TO RH11 CONTROL REGISTER
•BYTE 0.1
•BYTE P.OO & 377
•BYTE 0.2
DI.INDIRECT SKP.GO jISSUE 'XFER CMD'(31=SKIP .OR. 71=RD-IN)
.ADDR SKP.GO
•BYTE "0200
EI. D772,P.12 jREAD THE DRIVE STATUS TO CHECK FOR READY
•BYTE 0.1
•BYTE P.12 & 377
•BYTE 0.2

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-219
DR.Mao TAPE TRANSFER CHANNEL COMMAND LIST
6609 017330
(1) 017330
(1) 017332
6610 017333
(1) 017333
(1) 017334
(1) 017335
6611 017336
(1) 017336
(1) 017340
6612 017341
(1) 017341
(1) 017343
6613 017344
(1) 017344
(1) 017345
(1) 017346
6614 017347
(1) 017347
(1) 017351
6615 017352
(1) 017352
(1) 017353
(1) 017354
6616 017355
(1) 017355
(1) 017357
6617 017360
(1) 017360
(1) 017361
(1) 017362

200 000
030
364
014
023
300 160
040
000 207
040
364
012
023
000 100
040
364
000
013
000 140
040
000

000
050

WAIT 200
iWAIT FOR FILE READ TO COMPLETE
.ADDR 200
•BYTE <6*4>
EI. D772,P.14 iLOOK AT THE DRIVE ERROR REGISTER
•BYTE G.1
.BYTE P.14 &377
•BYTE G.2
RETRY.! ERRTST 070300 ;ERRORS WORTH RETRYING??
.ADDR 070300
.BYTE <10*4>
FRMERR: ERRTST lQ3400 iSEE IF THIS WAS ACORRECTABLE TYPE ERROR
.ADDR 103400
•BYTE <10*4>
EI. D772,P.12 jREAD THE DRIVE STATUS TO CHECK FOR ERRORS
•BYTE Q.l
.BYTE P.12 &377
•BYTE G.2
j6ET ANY DRIVE ERRORS??
ERRTST 40000
.ADDR 40000
•BYTE <10*4>
LI. D772,P.00 ;NOW ADDRESS TO CONTROLLER STATUS
•BYTE 0.1
•BYTE P.OO &377
•BYTE 0.2
iCHECK FOR ERRORS THERE.
ERRTST 60000
.ADDR 60000
•BYTE <10*4>
jEND OF CHANNEL COMMAND LIST
ENDLST
.BYTE 0
•BYTE 0
•BYTE <12*4>

VER 6.2 KS10 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-220
nR.MSO TAPE TRANSFER CHANNEL COMMANn LIST
6619
6620
6621 017363
(1) 017363
(1) 017364
(1) 017365
6622 017366
(1) 017366
(1) 017367
(1) 017370
6623 017371
(1) 017371
(1) 017373
6624 017374
(1) 017374
(1) 017375
(1) 017376
6625 017377
(1) 017377
(1) 017400
(1) 017401
6626 017402
(1) 017402
(1) 017403
(1) 017404
6627 017405
(1) 017405
(1) 017406
(1) 017407
662S 017410
(1) 017410
(1) 017411
(1) 017412

364
010
013
040
000
000
137 040
200
364
004
013
000
010
000
364
006
013
000
000
000
000
000
050

HmICK LITTLE ROUTINE TO RESET THE MAGTAPE AFTER IT SUFFERS AN
iIGNORABLE ERROR
MTARST: LI. n772,p.I0 iSET AnIlRESS OF DRIVE CONTROL REGISTER
•BYTE G.1
•BYTE P.I0 & 377
•BYTE G.2
£II. 0,40
iISSUE CONTROLLER ANI! SLAVE CLF:
.BYTE 40 &377
.BYTE 11.1
•BYTE 0.2
£II. INnIRECT TAf'EUNIT iFIX UNIT NUMBER
.ADDR TAPEUNIT
•BYTE "0200
LI. D772,P.04 iCONTROLlER TO MEMORY [lEST. REG
.BYTE 11.1
,BYTE P.04 &377
.BYTE 11.2
DI. 4,000
iSET KSI0 START ADnRESS TO 1000
.BYTE 000 & 377
.BYTE 11.1
•BYTE 11.2
LI. D772,P.06 iFRAME COUNT REGISTER
•BYTE G.l
•BYTE P.06 &377
•BYTE G.2
£II. 0,0
iFRAME COUNT TO 0 IS MAX NUMB OF FRAMES
•BYTE o & 377
•BYTE 11.1
•BYTE 11.2
iQUICK OUT
ENULST
•BYTE 0
•BYTE 0
•BYTE <12*4>

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-221
MSG.M80 TAPE TRANSFER CHANNEL COMMAND LIST
6630
6631
6632
6633
6634
6635
6636
6637
663B
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670

017413
017421
017426
017431
017434
017441
017453
017460
017462
017475
017504
017512
017516
017525
017533
017540
017546
017554
017561
017573
017601
017606
017620
017626
017634
017642
017646
017652
017661
017673
017703
017712
017722
017731
017736
017744
017751
017754
017757
017762
017765

077
077
077
015
077
102
113
377
040
134
077
120
045
077
077
102
077
117
077
077
077
077
077
077
077
077
077
076
076
076
076
076
076
077
077'
077
077
015
120
015
102

102
102
111
012
125
125
123
000
103
122
101
103
110
104
102
124
104
106
120
115
102
122
116
116
116
122
102
076
076
076
076
076
076
113
106
120
116
012
127
012
124

125 .IIF NDF,NOROOM INIER: .ASCIZ
106 BV:
.ASCIZ I?BFOI
114 Ctl[lNGl .ASCII I?IL!
.BYTE ~O15,~012,0
000
111 TTtl:
.ASCII I?Ul\/
123 EBHE[I: .ASCII IBUS 0-35\/
061 KSF'RMT: .ASCII IKS10)1
•BYTE "0377,0
131 MSG10: .ASCII %CYC\SENT/%
103 DRCVD: .ASCIZ %\RCVD/7.
057 ECVER: ,ASCII %YAlB\k
057 PCMSG: .ASCIZ %PCI%
114 HLTMS: •ASCIZ •%HLTII/ •
116 EXMS: .ASCIZ I?DNF\/
124 BTFAIL: .ASCIZ IYBT I
040 BTMSGi: .ASCIZ IBT SWI
116 SMERR: •ASCIZ I?Iit~C\/
106 OFFMSG: ,ASCIZ 10FF\1
101 PARMSG: .ASCIZ I?PAR ERR I
122 MOSMSGl .ASCII IYMRE\I
103 ERRMSG: .ASCIZ I~BC I
125 RN. : .ASCII IYRUNNING\/
104 NOA:
.ASCIZ nNBA\I
130 NXMMSG: .AseIZ IYNXM\/
102 NflR!
.ASCII I1NBR\I
101 RAG:
.ASCII I1RAI
116 BBl:
.ASCIZ nflNI
125 G.UBA: .ASCII I»UBAY
122 Q.RH! .AseIZ I»RHBASEY
125 G.UNIT! .ASCIZ I»UNITY
124 G.TCU: .ASCII I)>TCUU
104 G.lIEN: .ASCIZ I»DENSY
123 G.SLV: .ASCII I»SLVY
101 KAMSG: .ASCIZ nKA\/
122 FRCMSG: ,ASCIZ I~FRC\/
127 PWLEN: .ASCIZ npWL/
101 NOACCS: .ASCII IYNAI
000
•BYTE "015,"012,0
.ASCII /PWll
072 QPWl
,BYTE "015,"012,0
000
040 AUTOMS: .ASCIZ IBT AUTOI

I?BUS\/
,BUS POLLUTED ON POWER UP
,INPUT BUFFER OVERFLOW
,ILLEGAL INSTRUCTION
lCR-LF
,UNKNOWN INTERRRUPT
,MESSAGE HEADER FOR "EB' CMIt
iPROMPT MESSAGE
;CYCLE TYPE FOR '[IB' COMMAND
,DATA RECEIVED ON BUS(DB GMB)
iA &B COPIES OF CRAM BITS DID NOT MATCH
,OBVIOUS
iMESSAGE 'HALTEII/XXXXXX' WHERE XXXXXX IS nATA
l'I1ID NOT FINISH'-INSTR
,DEVICE ERROR OR TIMEOUT I1URING BOOT OPERATION
iMESSAGE SAYS BOOTING, USING BOOT SW
,'DID NOT COMPLETE'-THE HALT
,MESSAGE SAYS SIGNAL IS 'OFF'
iREPORT CLOCK FREEZE lIUE TO PAR ERR
,MEMORY REFRESH ERROR
'TA-DA •••• BOOT CHECK
iTRYING TO ItO ACMD THAT MAY SCREW UP
iRECEI'JED NO I1ATA ACKNOWLEIIGE ON MEM REQUEST
iREFERRENCEII NON EXISTANT MEMORY LOCATION
iCONSOlE WAS NOT GRANTEIt flUS ON AREQUEST
,CMIt REQUIRES ARGUEMENT •• UGOTTA TYPE SOMETHING
HYPED ABAD NUMBER (1. E 9 OR XOR t ETC.)
;QUERY FOR UNIBUS ADAPTER
iQUERY FOR RH11 TO USE
iQUERY FOR UNIT TO USE
,QUERY FOR TAPE CONTROlL UNIT
,GUERY FOR TAPE DENSITY
iQUERY FOR TAPE SLAVE
iKEEP ALIVE FAILEli
iHAII AFORCEli RELOAD
iPASSWORIl LENGTH ERROR
,NOT AVAILABLE (KLINIK lINE THAT IS)
iCR-LF
,ASK FOR APASSWORD MESSAGE
;CR-lF
,BEGINNING AUTO BOOT SEQUENCE

VER 6.2 KSI0 CONSOLE PROGRAH CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50, PAGE 3-222
STORE.M80
- SMI0 DATA STORAGE PARAMETERS
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
670B
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725

020000
020000 000002
020002 000002
020004 000002
020006 000002
020010 000002
020012 000005
020017 000005
020024 000005
020031 000002
020033 000002
020035 000005
020042 000005
020047 000005
020054 000006
020062 000006
020070 000003
020073 000005
020100 000005
020105 000005
020112 000005
020117 000001
020120 000001
020121 000001
020122 000001
020123 000001
020124 000001
020125 000002
020127 000001
020130 000001
020131 000001
020132 000005
020137 000005
020144 000005
020151 000001
020152 000002
020154 000002
020156 000001
020157 000001
020160 000001
020161 000001
020162 000001
020163 000001
020164 000001
020165 000001
020166 000001
020167 000001
020170 000002
020172 000010
020202 000001

.SBTTl - SM10 DATA STORAGE PARAMETERS
iNOTE THAT All THESE lOCATIONS ARE RAM lOCATIONS
iAND MAY BE USED WITH THE
iASSEMBlY OF SEPARATE MODULES Of CONSOLE CODE ••••
RAMST
.=
T80DT: ,.BlKB 2
C80AD: •BlKB 2
CRHAD: •BlKB 2
BYTCNT: •BlKB 2
CRMFN: •BlKB 2
EHBUF: •BlKB 5
HEMAD: •BlKB 5
lOAD: •BlKB 5
ENEXT: .BLKB 2
DNEXT: •BlKB 2
CHRBUF: .BlKS 5
BUSAD: •BlKB 5
DMDAT! •BlKB 5
RAMX1: .BlKB 6
RAHX2: .BlKB 6
ER.lOC: .BlKB 3
;PlACE TO EXECUTE 8080 tIN'S' AND 'OUT'S'
TMPBF2: •BlKB 5
THPB2: •BlKB 5
BlKNUM: .BlKB 5
BlKADR: .BlKB 5
EXH1: .IUB 1
NOPNT: •BlKB 1
BT. TYPE: .BlKB 1
PB.THP: .BlKB 1
ERADDR: •BlKB 1
KlNKSW: .BlKB 1
KPWPNn •BlKB 2
KPWCNT: .BlKB 1
WATCHC: .BlKB 1
CHDS •• : .BlKB 1
UNITNI'U •BlKB 5
TAPEUNIT: .BlKB 5
SKP.GO: .BlKB 5
BRKON: •BlKB 1
BRKDT: .BLKB 2
ERRCD: .BlKB 2
USRMD: .BlKB 1
RPEND: .BlKB 1
RPCNTR: .BlKB 1
BFCNT: .BlKB 1
STPPD: .BLKB 1
EIFLAG: .BlKB 1
DIFlAG: tBLKB 1
RNFlG: .BlKB 1
CHKPAR: .BlKB 1
CHKREF: .BlKB 1
ECSAV: •BlKB 2
RH100: •BlKB 8
BTHSK: .BLKB 1

VER 6.2 KSI0 CONSOLE PROGRAM
CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-223
STORE.MBO
- Stl10 DATA STORAGE PARAMETERS
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
673B
6739
6740
6741
6742
6743
6744
6745
6746
6747
674B
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779

020203
020204
020205
020207
020211
020213
020214
020215
020217
020221
020223
020225
020227
020231
020233
020235
020242
020247
020250
020251
020252
020253
020254
020255
020256
020257
020260
020261
020262
020271
020277
020300
020301
020302
020322
020342
020344
020346
020350
020352
020354
020355
020356
020357
020360
020361
020362
020367
020374
020401
020432
020514
020646
020647

000001
000001
000002
000002
000002
000001
000001
000002
000002
000002
000002
000002
000002
000002
000002
000005
000005
000001
000001
000001
000001
000001
000001
000001
000001
000001
000001
000001
000007
000006
000001
000001
000001
000020
000020
000002
000002
000002
000002
000002
000001
000001
000001
000001
000001
000001
000005
000005
000005
000031
000062
000132
000001
000002

BTNUIH tBlKS 1
EOl:
.BlKB 1
AM.AI: .BlKS 2
RPBUFS: tBlKB 2
RPlST: .BlKB 2
RPTON: .BlKB 1
CHRCNT! •BlKB 1
BUF.: •BlKB 2
HlSAVE: •BlKB 2
CtlIt .. : .BlKB 2
.ARG!: .BlKB 2
CMCNT: tBlKB 2
FIRST: .BlKB 2
CHKHlT! .BlKB 2
OCTSV: .BlKB 2
SHRTAI!: .BlKS 5
RHBASE: .BlKB 5
CSlMODE: .BLK£! 1
KACNTRI .BlKB 1
MIiFlG: .BlKB 1
MAILFG: .BlKB 1
VERCNT! •BlKB 1
UBANUM: •BlKB 1
GOCODE: •BlKB 1
SECRET! .BLKB 1
[tIECNT: •BlKB 1
CNTlG.ON: .BlKB 1
APTANS: tBLKB 1
PASSWORD: .BlKS 7
KPWBUF : •BU;B 6
PWRTRvt •BlKB 1
KllINE.ON: .BlKB 1
E.erm •BlKB 1
CRMBF: •BlKB "D16
CRMTMI .BlKB "n16
KA TIMll •BlKB 2
.IIF DF,SCECOD,SCEADR: .BlKB
MODDIS: .BlKS 2
MOREND: +£iLKS 2
ENVPNT: •BLKB 2
PARBI: .BlKB 1
TRAPEN: •BlKB 1
MT AUBA: •BlKB 1
DSKUBA: •BlKB 1
STATE: tBlKB 1
LSTMSG: .BLKB 1
DEN.SlV: .BLKS ".J
MTBASE: .BlKB 5
DSBASE: •BLKB 5
RPINI: .BlKB "D25
RPTBFI: •BlKB "D50
BUFBG: .BlKB "D90
BUFEN: .BlKB 1
E.BUF: .BlKS 2

'i

<.

iLAST FAILING ADDRESS

VER 6.2 KSI0 CONSOLE PROGRAM CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-224
- SMI0 DATA STORAGE PARAMETERS
STOREtM80
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793

020651 000140
021011 000001
021012 000001
021013 000106
021121 000002
021123 000002
021125 000200
021325 000001
001
021326 000001
021327 000050
000
021377
000000

.IF

LBEG: .BLKB
EMVMNOI .BLKB
ENVCHKI .BLKB
ENVBUFt .BLKB
SYSINI .BLKB
SYSOun •BLKB
SYSBUF: •BLKB
SYSEND: .BlKB
DFtSCECOD
SC. OFF: •BLKB
RHSAVE: .BlKS

"0140

.END

iEND STATEMENT

1
1

70
2
2
"0200

iEB IS lONGEST COMMAND WITH 67. CHARS

1

iAND EMPTY BYTE TO HOLD END OF lIST

1

;RECOVERY ON OR OFF FLAG
;BUFFER FOR SAVING RH STUFF

40.

.ENDC
FREEl

VER 6.2 KSI0 CONSOLE PROGRAM
END.M80 CROSS REFERENCE TABLE
A

=%000007

ACK
016605
ACK.EN 016602
ACTION 016636
ADATP 015576
ADATT 015571
ALT = 000033
AM.AI 020205
APTANS 020261
APT.WT 016322
ARBRES= 000020
ARG = 000000

532
670
727
840
1064
1190
1328
1645
1759
1929
1985
2084
2163
2337
2509
2615
2769
2923
3046
3101
3211
3391
3611
3763
3906
4069
4270
4407
4630
4B31
4991
5230
5479
5551
5658
5831
6146
6232
6442
6521
1972
6390
6331
2503
2415
941
2501
6243
6256.
60.
5073.
6548.
6585.
66031

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-225
567
673
731
869
1068
1199
1330
1648
1795
1932
1986
2102
2168
2342
2514
2619
2777
2927
3049
3105
3217
3462
3612
3767
3931
4074
4271
4411
4661
4842
5006
5231
5494
5555
5675
5832
6151
6234
6448
64101
64081
6334
2595
2432
6333
2546
6256
6258
2424
507BI
655a
65861
66041

580
680
732
887
1075
1217
1338
1666
1799
1937
1993
2105
2225
2351
2518
2654
2779
2930
3052
3117
3227
34B5
3630
3768
3953
4079
4273
4430
4674
4866
5018
5251
5496
5570
5676
5894
6157
6257
6449

630
687
744
928
1076
1236
1339
1673
1803
1941
1996
2112
2229
2363
2522
2659
2791
2936
3062
3125
3256
3492
3659
3772
39B4
4084
4275
4445
4681
4881
5023
5256
5498
5571
5678
5898
6165
6265
6457

638
691
747
932
1085
1266
1340
1680
1807
1945
2003
2114
2247
2369
2539
2662
2B09
2945
3064
3127
3262
3523
3672
3776
3999
4093
4277
4454
4697
4914
5028
5258
5499
5587
5697
6021
6174
6349
6472

652
704
749
947
1115
1278
1342
1687
1811
1952
2007
2123
2268
2418
2543
2676
2821
2973
3072
3131
3264
3526
3696
3777
4002
4184
4287
4455
4702
4933
5038
5317
5501
5589
5707
6024
6177
6354
6473

3729

4772

59931

2622
65351
6556.
65911
660BI

65361
65571
65941
66101

64271
3708
59881
6415
6728.
6429

6753.

2445
50801
65531
6587.
6605t

2525
50841
65551
65891
66061

6""r;:

705
757
950
1148
1283
1365
1689
1839
1956
2012
2127
2293
2421
2587
2681
2833
2983
3074
3134
3280
3541
3710
3782
4010
4238
4295
4457
4722
4951
5109
5424
5508
5603
5733
6039
6187
6363
6478

658
706
764
960
1150
1291
1381
1698
1841
1962
2018
2130
2299
2438
2592
2684
2B45
2998
3078
3149
32B2
3554
3718
3785
4012
4243
4302
4464
4723
4953
5134
5432
5510
5612
5735
6057
6198
6366
6480

65371
65581
65951
66131

65391
6559t
65961
66151

~.J

659
707
775
1152
1293
1419
1"706
1849
1963
2023
2133
2312
2441
2594
2701
2865
3006
3080
3152
3290
3555
3730
3791
4021
4251
4304
4467
4724
4954
5149
5433
5512
5613
5736
6059
6199
6393
6487

662
708
795
998
1167
1307
1440
1721
1851
1967
2045
2139
2315
2492
2597
2710
2870
3008
3083
3157
3307
3556
3737
3805
4028
4253
4312
4520
4738
4956
5167
5450
5534
5627
5754
6073
6204
6396
6488

6542.
65601
6597t
66211

6543.
65611
6598t
66221

971

665
717
802
1013
1174
1312
1455

667
718
815
1035

668
722

1857
1977
2048
2147
2322
2497
2600
2754
2900
3015
3090
3172
3360
3572
3751
3806
4037
4255
4330
4568
4767
4966
5169
5454
5537
5628
5762
6102
6211
6428
6492

1314
1461
1735
1897
1979
2054
2152
2326
2499
2606
2756
2904
3017
3092
31B5
3375
3586
3754
3811
4049
4259
4390
4570
4781
4972
5200
5456
5540
5639
5796
6131
6222
6438
6493

838
1048
1182
1321
1640
1745
1923
1982
2072
2156
2331
2505
2611
2757
2922
3044
3094
3188
3377
3596
3762
3896
4066
4261
4400
4625
4822
4985
5205
5458
5544
5654
5804
6137
6226
6441
6514

65451
65631
6600t
6624t

6546.
6566*
660H:
6625t

65471
6584t
6602t
66261

1722

1176

6424

VER 6.2 KSI0 CONSOLE PROGRAM
END.M80 CROSS REFERENCE TABLE
ARGBEG 014643
ARGBG1 014644
ARGall 014753
ARG1 = 000000

ARG16. 014244
ARG96 014627
ARROW = 000076
AUTOMS 017765
A.BTER 015201
A.CRMO 013226
A.CRMZ 013240
A0003 = 000113
A0411 = 000111
A1219 = 000107
A16PK 014752
A2027 = 000105
A256 000224
A2835 = 000103
B
=%000000

BBLOOP
BDI
BCA.ER
BeD.ER
BCCMD
BCC.ER
BC.ALP
BC.BER
BC.BLP
BC.DL1
BC.CER
BC.CLP
BC.DB2
BC.2ND
BC.3RD

011603
017646
013371
013376
012760
013356
013004
013352
013065
013101
013342
013153
013055
013062
013134

66271
5538
5535
55951
50731
65481
65851
-66031
66271
2752
3760
3351
1121
910
4026
4878
49301
491
481
471
55931
461
7101
451
607
950
1722
2054
2391
3153
3700
4577
4736
4802
4986
5336
5482
5759
6203
4284
5705
4832
4988
1570
4980
48261
4968
48641
4872t
4901
48971
4853
4848
48871

CROSS - MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY-79 16:50 PAGE 3-226

55411
55421
5606
50781
65511
65861
66041

50841
65551
65891
66061

65351
65561
6591+
66081

65361
65571
65941
66101

65371 65391
65581 65591
65951 '65961
66131 66151

65421
65601
65971
66211

65431
65611
65981
66221

65451
6563+
66001
66241

65461
6566+
66011
66251

65471
65841
66021
66261

2766 2788
3997 . 4340
55341

2831
52841

2863

2898

2921

2943

3025

3035

3402

3483

3608

66701
4188
49251

4214

4409

57201

2124
6007
2116

2323

2506

2598

3086

6011

2317

3084

6003

2316

3047

3081

4254

5999

2314
680
1099
1807
2105
2594
3190
4369
4678
4749
4808
5042
5364
5526
5821
6232

3045
706
1266
1819
2147
2597
3313
4441
4679
4751
4809
5147
5370
5549
5825
6275

3079
713
1656
1886
2225
2870
3316
4449
4701
4756
4825
5159·
5374
5592
5835
6281

4252
746
1666
1929
2235
2876
3378 .
4452
4707
4758
4826
5222
5381
5604
5838
6283

5995
750
1668
1938
2244
2904
3379
4475
4709
4762
4840
5237
5411
5608
5854
6463

753
1673
1945
2250
3126
3390
4476
4712
4780
4847
5239
5418
5619
5857
6472

760
1680
1954
2261
3140
3598
4515
4713
4786
4956
5294
5426
5635
5876
6473

766
1689
1956
2359
3144
3657
4535
4726
4789
4964
5308
5429
5639
6102
6480

769
1698
1959
2366
3150
3668
4550
4728
4791
4979
5325
5434
5647
6121

774
1706
2048
2380
3151
3690
4575
4732
4793
4982
5333
5452
5751
6143

2004
3085
1998
5609
1997
719
1995
651
952
1799
2084
2499
3154
4359
4615
4746
4803
4990
5341
5483
5771
6204
43011
66561
49901
49931
4815+
49841
4844
49811
4868
4883
4910
4917
48581
4863t

50801
65531
6587+
66051

2115
724
2113
673
1076
1803
2102
2505
3170
4360
4622
4748
4804
5038
5350
5519
5785
6221

4857

49781

VER 6.2 KSI0 CONSOLE PROGRAM
END. MaO CROSS REFERENCE TABLE
BELL
BFCNT
BFOlJR
BFRST
BIT1S

=000007
020161
002001
004160
= 100000

89+

1810
1355t
697
66t
1515
4176
BLKADR 020112
BLKNUM 020105
4178
617 B4A DISCONNECTED 00:01:38:50

CF:OSS .. MICRO PROCESSOR ASSEMBLER 6(31) 3-MAY"79 16;50 PAGE 3-227
2198
1814 1848
1B13
924 175B
14B4
1486
1526 1574
4204 6554
41B5
4206
4095 337

1852

2192

6716.

190B
14B8
160B
6696t

2187t
1490

3937
1493

6276
1495

1497

1501

1504

1508

1510

1512



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.3
Linearized                      : No
XMP Toolkit                     : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37
Create Date                     : 2013:12:02 17:21:03-08:00
Modify Date                     : 2013:12:02 18:25:33-08:00
Metadata Date                   : 2013:12:02 18:25:33-08:00
Producer                        : Adobe Acrobat 9.55 Paper Capture Plug-in
Format                          : application/pdf
Document ID                     : uuid:dd3cbe95-4195-40f2-abec-bb5518b1b530
Instance ID                     : uuid:90e6348d-f915-4b2a-bf39-8dd32f065724
Page Layout                     : SinglePage
Page Mode                       : UseNone
Page Count                      : 241
EXIF Metadata provided by EXIF.tools

Navigation menu