KNS1062
KNS1062 KNS1062
User Manual: KNS1062
Open the PDF directly: View PDF .
Page Count: 241
Download | |
Open PDF In Browser | View 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 I 1 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 : 241EXIF Metadata provided by EXIF.tools