ASMB,A,B,L,C HED GENERAL OPERATING PROCEDURE ORG 0 SUP * GENERAL OPERATING PROCEDURE * * A. LOAD DIAGNOSTIC CONFIGURATOR AND SET IT UP. * B. LOAD DIAGNOSTIC MAIN PROGRAM. * C. LOAD ADDRESS 100B. * D. LOAD S-REGISTER WITH WCS PCA SELECT CODE. * E. PRESS PRESET,RUN AND WAIT FOR HALT 102074. * F. LOAD S-REGISTER * IF SET =: * 15 = HALT AT END OF EACH TEST(SEE HALT * 102076 BELOW) * 14 = SUPPRESS ERROR HALTS * 13 = LOOP ON LAST TEST * 12 = LOOP ON DIAGNOSTIC * (SUPPRESS ALL OPERATOR INTERVENTION) * 11 = SUPPRESS ERROR MESSAGES * 10 = SUPPRESS NON-ERROR MESSAGES * 9 = GO TO USER CONTROL SECTION * AT END OF PRESENT TEST(SEE HALT * 102075 BELOW) * 8 = SUPPRESS OPERATOR INTERVENTION TESTS * 7 = ABORT TST25 AND COMPLETE CURRENT PASS * 6 * = RESERVED * 0 * NOTE: CLEAR S-REGISTER WILL EXECUTE THE DEFAULT SET OF * TESTS(TST00-TST24) HALTING ON ERRORS AND AT THE * END OF THE PASS. * * G. PRESS RUN. * H. RESTART - LOAD ADDRESS 2000B * I. RECONFIGURE - LOAD ADDRESS 100B * * * CONTROL PROGRAM HALT MESSAGES * * 106077 TRAP CELL HALT * 102077 END OF DIAG (A = PASS COUNT) * 102076 END OF TEST (A = TEST #) * 102075 USER SELECTION REQUEST * 102074 SELECT CODE INPUT COMPLETE * 102073 USER SELECT CODE ERROR HED CONFIGURATOR LINKAGE TABLE A EQU 0 A-REGISTER REFERENCE INTP EQU 0 INTERRUPT SYSTEM REFERENCE B EQU 1 B-REGISTER REFERENCE S EQU 1 S-REGISTER REFERENCE DCPCL EQU 2 DCPC CHANNEL LOW REFERENCE DCPCH EQU 6 DCPC CHANNEL HIGH REFERENCE WCS EQU 11B WCS SELECT CODE REFERENCE * ORG 100B JMP CFIG,I GO TO CONFIGURATION SECTION BSS 1 FAST INPUT (PHOTO READER) BSS 1 SLOW OUTPUT (LIST) BSS 1 FAST OUTPUT (DUMP OR PUNCH) BSS 1 SLOW INPUT (KEYBOARD) DEF FWAA FIRST WORD OF AVBL. MEMORY BSS 1 LAST WORD OF AVBL. MEMORY BSS 1 NOT USED (MAG TAPE) BSS 1 1 MILL SEC TIME OUT COUNT BSS 4 SELECT CODES FOR I/O CPTO BSS 1 COMPUTER TYPE/OPTIONS USSC BSS 1 USER CARD TYPE AND SELECT CODE BSS 1 MEMORY SIZE AND TYPE BSS 1 INTERNAL SWITCH REGISTER TMRR BSS 1 1 MILL SEC TIMER SWRC BSS 1 CONFIGURATOR SWITCH CK PTR BSS 1 INTEGER TO ASCII CONVERSION O2AS BSS 1 OCTAL TO ASCII CONVERSION AS2N BSS 1 ASCII CONVERSION OCT 103023 DIAGNOSTIC SERIAL NUMBER FMTR BSS 1 FORMATTER HED WRITE,READ1 * LOADS ENTIRE WCS RAM STORAGE ACCORDING TO THE FOLLOWING * INPUT PARAMETERS: * * B = CONTROL MEMORY MOD NUMBERS * X = 8MSB OF RAM DATA * Y = 16LSB OF RAM DATA * WRITE NOP CLA START AT RAM ADDRESS 0 CLF01 CLF WCS INSURE WCS IS DISABLED CLC01 CLC WCS PUT WCS IN COMMAND STATE OTA01 OTA WCS START AT RAM ADDRESS IN A-REG OTB01 OTB WCS SET CONTROL MEMORY MOD'S STC01 STC WCS PUT WCS IN DATA MODE CXA GET RAM DATA CYB WORD IN A- AND B-REG'S LDY B2000 SET COUNTER=1024(DECIMAL) OTA02 OTA WCS LOAD OTB02 OTB WCS RAMS DSY DONE? JMP OTA02 NO.CONTINUE JMP WRITE,I YES * * READS AND VERIFIES ONE RAM LOCATION IN WCS ACCORDING TO THE * FOLLOWING INPUT PARAMETERS: * * A = RAM ADDRESS * X = 8MSB OF RAM DATA EXPECTED * Y = 16LSB OF RAM DATA EXPECTED * * RETURNS WITH REGISTERS INTACT * READ1 NOP STA SAVE1 SAVE STB SAVE3 A- & B-REG'S LDA READ1 FIX LOAD TO RETURN STA LOAD1 TO READ1'S CALLING ADDRESS+1 LDA SAVE1 RESTORE A JMP CLC05 GO USE LOAD HED READ * READS ENTIRE WCS RAM STORAGE ACCORDING TO THE FOLLOWING * INPUT PARAMETERS: * * X = 8MSB OF RAM DATA EXPECTED * Y = 16LSB OF RAM DATA EXPECTED * READ NOP CLA START AT RAM ADDRESS 0 STX GD.08 SAVE RAM STY GD.16 DATA LOADED CLC02 CLC WCS PUT WCS BACK IN COMMAND STATE OTA03 OTA WCS RESET STARTING RAM ADDRESS CAX CLEAR X-REG LDY B2000 RESET COUNTER STC02 STC WCS PUT WCS BACK IN DATA MODE LIA01 LIA WCS READ LIB01 LIB WCS RAMS STA SAVE2 SAVE 1ST READ AND MASK1 ANY BIT(S) SET SZA IN BITS 8-15? JSB ERRAA YES.ERROR LDA SAVE2 DID 8MSB AND MASK2 OF RAM DATA CPA GD.08 GET LOADED OK? JMP L.000 YES JSB ERRBB RAM DATA ERROR JMP L.001 L.000 CPB GD.16 16LSB OF RAM DATA LOADED OK? JMP L.001 YES JSB ERRBB RAM DATA ERROR L.001 ISX BUMP RAM ADDRESS DSY DONE? JMP LIA01 NO.CONTINUE JMP READ,I YES HED LOAD1 * LOADS AND VERIFIES WCS TO ONE MICROWORD ACCORDING TO THE * FOLLOWING INPUT PARAMETERS: * * A = RAM ADDRESS * B = CONTROL MEMORY MOD NUMBERS * X = 8MSB OF RAM DATA * Y = 16LSB OF RAM DATA * * RETURNS WITH REGISTERS INTACT * LOAD1 NOP CLF02 CLF WCS INSURE WCS IS DISABLED CLC04 CLC WCS PUT WCS IN COMMAND STATE OTA05 OTA WCS SET RAM ADDRESS OTB03 OTB WCS SET CONTROL MEMORY MODULE STA SAVE1 SAVE RAM ADDRESS STB SAVE3 AND CONTROL MEMORY MODULE STC03 STC WCS PUT WCS IN DATA MODE CXA GET RAM DATA CYB IN A- & B-REG'S OTA06 OTA WCS LOAD WCS WITH OTB04 OTB WCS RAM DATA LDA SAVE1 GET RAM ADDRESS CLC05 CLC WCS PUT WCS IN COMMAND STATE OTA07 OTA WCS SET RAM ADDRESS STX GD.08 SAVE STY GD.16 RAM DATA STC04 STC WCS PUT WCS IN DATA MODE LIA02 LIA WCS READ RAM LIB02 LIB WCS DATA BACK STA SAVE2 ANY BIT(S) AND MASK1 SET IN SZA,RSS 1ST READ? JMP L.007 NO LDX SAVE1 YES.X-REG=RAM ADDRESS JSB ERRAA RAM READ ERROR L.007 LDA SAVE2 DID 8MSB AND MASK2 OF RAM DATA CPA GD.08 GET LOADED OK? JMP L.008 YES LDX SAVE1 NO.X-REG=RAM ADDRESS JSB CHECK GO CHECK FOR ADDRESS FAILURE JSB ERRBB RAM DATA ERROR JMP L.009 L.008 CPB GD.16 16LSB OF RAM DATA LOADED OK? JMP L.009 YES LDX SAVE1 NO.X-REG=RAM ADDRESS JSB CHECK GO CHECK FOR ADDRESS FAILURE JSB ERRBB RAM DATA ERROR L.009 LDA SAVE1 RESTORE LDB SAVE3 REGISTERS LDX GD.08 LDY GD.16 JMP LOAD1,I HED ALTST * WRITES/READS IN AN OTA,LIA,OTB,LIB,OTA,LIA,ETC. SEQUENCE * ACCORDING TO THE FOLLOWING INPUT PARAMETERS: * * A = STARTING RAM ADDRESS=0 * B = CONTROL MEMORY MOD'S * X = 8MSB OF RAM DATA TO BE LOADED * Y = 16LSB OF RAM DATA TO BE LOADED * GD.08 = 8MSB OF RAM DATA PREVIOUSLY LOADED * GD.16 = 16LSB OF RAM DATA PREVIOUSLY LOADED * ALTST NOP STA SAVE1 SAVE RAM ADDRESS CLC08 CLC WCS PUT WCS IN COMMAND STATE OTA10 OTA WCS STARTING RAM ADDRESS OTB07 OTB WCS SET CONTROL MEMORY MOD'S STC06 STC WCS PUT WCS IN DATA MODE L.014 CXA GET RAM DATA TO CYB BE LOADED IN A & B OTA11 OTA WCS LOAD OTB08 OTB WCS WCS ISZ SAVE1 BUMP RAM ADDRESS LIA05 LIA WCS READ LIB04 LIB WCS WCS STA SAVE2 ANY BIT(S) IN AND MASK1 LEFT BYTE FROM SZA,RSS 1ST READ? JMP L.010 NO STX SAVE3 YES.RAM LDX SAVE1 READ JSB ERRAA ERROR LDX SAVE3 L.010 LDA SAVE2 DID PREVIOUS 8MSB AND MASK2 OF RAM CPA GD.08 DATA GET LOADED OK? JMP L.011 YES L.013 STX SAVE3 NO.RAM LDX SAVE1 DATA JSB ERRBB ERROR LDX SAVE3 JMP L.012 L.011 CPB GD.16 16LSB OF RAM DATA LOADED OK? RSS JMP L.013 NO.RAM DATA ERROR L.012 LDA SAVE1 YES CPA B1777 DONE? JMP ALTST,I YES ISZ SAVE1 NO.BUMP RAM ADDRESS JMP L.014 AND CONTINUE HED WHANG,.8 * SUBJECTS WCS TO A SERIES OF I/O INSTRUCTIONS(NOT CLF OR STF) * WHANG NOP OTA13 OTA WCS OTB10 OTB WCS LIA07 LIA WCS LIB06 LIB WCS STC08 STC WCS CLC10 CLC WCS JMP WHANG,I * * PUTS 3 ASCII DIGITS RHJ IN S100 AREA WITH A PERIOD INTO THE * MESSAGE AREA POINTED TO BY B-REG * .8MSB NOP LDA S100A GET 1ST OF ALF,ALF 3 ASCII AND MASK1 DIGITS STA ZSAV1 LDA S100B GET NEXT AND MASK1 ASCII DIGIT ALF,ALF AND MERGE IOR ZSAV1 WITH 1ST STA B,I PUT IT IN MSG INB LDA S100B FORM LAST ALF,ALF ASCII DIGIT AND MASK1 AND PERIOD IOR PEROD STA B,I PUT IT IN MSG JMP .8MSB,I HED .24BS,.10BS * CONVERT 24 BIT MICROINSTRUCTION TO ASCII AND MOVES IT TO MSG * H101 BASED ON THE FOLLOWING INPUT PARAMETERS: * * A = 8MSB OF MICROINSTRUCTION * B = POINTER TO START OF ASCII STRING IN H101 * X = 16LSB OF MICROINSTRUCTION * .24BS NOP CLE CONVERT 8MSB CBY OF MICRO-OBJECT LDB PS100 CODE TO ASCII JSB O2AS,I AND STUFF IN CYB MSG H101 WITH JSB .8MSB A PERIOD CLE CONVERT 16LSB CXA OF MICRO-OBJECT CYB CODE TO ASCII ADB B2 AND STUFF IN JSB O2AS,I MSG H101 JMP .24BS,I * * CONVERTS 10 BIT RAM ADDRESS TO ASCII AND MOVES IT * TO THE MESSAGE BASED ON THE FOLLOWING INPUT PARAMETERS: * * A = 10 BIT RAM ADDRESS * B = POINTER TO START OF ASCII STRING IN MSG * .10BS NOP CLE CONVERT RAM CBY ADDRESS TO LDB PS100 ASCII AND JSB O2AS,I STUFF IT CYB IN THE ASCII LDA PS10A STRING OF MVW B2 THE MESSAGE JMP .10BS,I HED CHECK,EO37 * CHECKS CURRENT RAM DATA ERROR TO SEE IF IT SHOULD * BE PRECEDED BY AN ADDRESS ERROR MESSAGE TO INDICATE * THAT AN ADDRESS LINE ON THE PC BOARD IS BAD. * CHECK NOP STA A.REG SAVE STB B.REG A & B XOR GD.08 ALL 8MSB OF CPA B377 RAM DATA FAIL? RSS YES.POSSIBLE ADDRESS FAILURE JMP L.019 NO.DATA ERROR STB A ALL 16LSB XOR GD.16 OF RAM DATA INA,SZA,RSS FAIL? JMP ERR37 YES.ADDRESS FAILURE L.019 LDA A.REG NO.DATA ERROR.RESTORE LDB B.REG REGISTERS JMP CHECK,I * * REPORTS E037 * ERR37 EQU * LDA TSTN CURRENTLY IN CPA B11 TST11? RSS JMP L.019 NO.SKIP THIS ERROR CXA YES.ERROR AT CPA SAVE4 TEST LOCATION? RSS JMP L.020 NO.BACKGROUND ALTERED LDA SAVE9 YES.TEST PATTERN ALTERED L.021 STA ZSAVB SAVE IT FOR ERROR HALT LDB PE37A CONVERT ALTERING ADDRESS TO JSB .10BS ASCII IN MESSAGE E037 CXA CURRENT ADDRESS ALTERED STA ZSAVA SAVE IT FOR ERROR HALT LDB PE37B CONVERT ALTERED ADDRESS TO JSB .10BS ASCII IN MESSAGE E037 LDA ZSAVA ARRANGE REGISTERS LDB ZSAVB FOR ERROR HALT JSB ERMS,I REPORT DEF E037 ERROR JMP PT118,I CONTINUE IN TST11 L.020 LDA SAVE4 BACKGROUND ALTERED JMP L.021 HED ERRAA,ERRBB * REPORTS E032(102032) ACCORDING TO FOLLOWING INPUT PARAMETERS: * * A = BITS PICKED UP IN BITS 8-15 ON 1ST READ OF RAM DATA * X = RAM ADDRESS * ERRAA NOP STB ZSAV1 SAVE B-REG CXB GET RAM ADDRESS IN B-REG JSB ERMS,I GO REPORT ERROR DEF E032 LDB ZSAV1 RESTORE B-REG JMP ERRAA,I * * REPORTS RAM DATA ERROR READ FROM WCS ACCORDING * TO FOLLOWING INPUT PARAMETERS: * * A = 8MSB OF RAM DATA READ * B = 16LSB OF RAM DATA READ * X = RAM ADDRESS * GD.08 = 8MSB OF RAM DATA LOADED * GD.16 = 16LSB OF RAM DATA LOADED * ERRBB NOP STA ZSAVA SAVE STB ZSAVB A-&B-REG'S STY SAVEY AND Y-REG LDB TSTN START WITH B=TEST # LDA TSTN IN TST16 ADA M16 THRU SSA,RSS TST24? LDB B35 YES.USE ERROR 35 INSTEAD LDA TSTN IN CPA B26 TST25? LDB B30 YES.USE ERROR 30 INSTEAD LDA B CONVERT JSB QO2AS,I # TO ASCII STA PERBB,I & STUFF IN MESSAGE E0BB CLE CONVERT CXA RAM ADDRESS LDB P100A TO ASCII JSB O2AS,I CLE CONVERT 8MSB LDA GD.08 OF RAM DATA LDB PS100 LOADED TO JSB O2AS,I ASCII LDB P100B PUT IT JSB .8MSB IN MSG H100 CLE CONVERT 16LSB LDA GD.16 OF RAM LDB P100C DATA LOADED JSB O2AS,I TO ASCII CLE CONVERT 8MSB LDA ZSAVA OF RAM LDB PS100 DATA READ JSB O2AS,I TO ASCII SKP LDB P100D PUT IT JSB .8MSB IN MSG H100 CLE CONVERT 16MSB LDA ZSAVB OF RAM LDB P100E DATA READ JSB O2AS,I TO ASCII LDA GD.08 FORM GOOD ALF,ALF AND BAD 8RAM IOR ZSAVA OF RAM LDB A DATA IN B-REG STX SAVEX SAVE RAM ADDRESS LDX GD.16 GOOD 16LSB IN X-REG LDY ZSAVB BAD 16LSB IN Y-REG LDA TSTN IN CPA B26 TST25? JMP L.015 YES.SKIP ERROR HALT & MESSAGE LDA SAVEX A-REG=RAM ADDRESS JSB ERMS,I GO REPORT ERROR DEF E0BB,I FIRST AND DEF H100 MESSAGE H100 NEXT L.015 LDA SAVEX RESTORE RAM ADDRESS LDX SAVEX RESTORE X- AND LDY SAVEY Y-REG'S JMP ERRBB,I HED ERR36,ERREE,ERRDD,ERRFF * REPORTS BAD EXECUTION OF A FLT(105120) MACROINSTRUCTION * ERR36 NOP JSB ERMS,I DEF E036 JMP ERR36,I * * REPORTS THAT WCS WAS NOT ENABLED BY A STF * ERREE NOP LDA PERRE MOVE LDB PERRF "ENABLED" MVW B4 INTO MSG EFF JSB ERRFF REPORT IT JMP ERREE,I * * REPORTS THAT WCS WAS NOT DISABLED BY A CLF * ERRDD NOP CLA SET UP LDB TMOD WCS FOR CLC12 CLC WCS MOD'S 2-5 OTA15 OTA WCS WITHOUT USING OTB12 OTB WCS EIG INSTRUCTIONS LDA PERRD MOVE LDB PERRF "DISABLED" MVW B4 INTO MSG E017 JSB ERRFF REPORT IT JMP ERRDD,I * * REPORTS MSG EFF * ERRFF NOP LDA TSTN CONVERT TEST JSB QO2AS,I # TO ASCII STA PERFF,I AND STUFF IN MSG EFF JSB ERMS,I GO REPORT DEF EFF EFF JMP ERRFF,I HED EH101 * REPORTS BAD EXECUTION OF MICROCODE ACCORDING TO THE FOLLOWING * INPUT PARAMETERS: * * SAVEX = LOWER RAM ADDRESS * SAVEY = UPPER RAM ADDRESS * ZSAVA = MOD NUMBER * ZSAVB = MICROCODE # * * THE ACTUAL RAM DATA MUST BE SET UP IN THE ASCII STRING * OF MSG H101 PRIOR TO CALLING THIS ROUTINE. * EH101 NOP LDA ZSAVA CONVERT MOD JSB QO2AS,I # TO ASCII & STA P101A,I STUFF IN MSG H101 LDA TSTN CONVERT TEST # JSB QO2AS,I TO ASCII AND STA PERRG,I STUFF IN MSG EGG LDA ZSAVA ARRANGE LDB SAVEX REGISTERS ALF,ALF ALF RAR,RAR IOR B STA ZSAVA LDA ZSAVB LDB SAVEY ALF,ALF ALF RAR,RAR IOR B LDB A ARRANGE REGISTERS LDA ZSAVA FOR ERROR HALT JSB ERMS,I REPORT DEF EGG,I ERROR DEF H101 JMP EH101,I HED ERRGG * REPORTS E021 ACCORDING TO THE FOLLOWING INPUT PARAMETERS: * * SAVEX = LOWER RAM ADDRESS * SAVEY = UPPER RAM ADDRESS * ZSAVA = MOD NUMBER * ZSAVB = MICROCODE # AND SUSPECT MICROFIELD # * ERRGG NOP LDA SAVEX CONVERT RAM ADDRESS LDB P101B TO ASCII IN JSB .10BS MESSAGE H101 LDA P1 CONVERT RAM DATA LDB P101C TO ASCII IN LDX P1+1 MESSAGE H101 JSB .24BS LDA SLASH STOP AT ONE LINE STA P101E,I OF MICROCODE JSB EH101 GO REPORT ERROR JMP ERRGG,I HED ERRMM * REPORTS E024 * ERRMM NOP LDA SAVE5 FORM MICROCODE INA NUMBER FOR A-REG STA ZSAVB LDA SAVE6 FORM MOD ALF,ALF NUMBER FOR AND B3 A-REG AT THE ADA B2 ERROR HALT STA ZSAVA LDA SAVE6 FORM LOWER RAM STA SAVEX ADDRESS FOR ERROR HALT ADA B2 FORM UPPER RAM STA SAVEY ADDRESS FOR ERROR HALT CLE CONVERT 1ST LDA SAVE6 RAM ADDRESS LDB PS100 TO ASCII JSB O2AS,I AND MOVE LDB P101B TO MSG LDA PS10A H101 MVW B2 LDB P101C CONVERT 1ST LDA P2 MICROINSTRUCTION LDX P2+1 TO ASCII IN JSB .24BS MSG H101 ISZ SAVE6 CONVERT 2ND RAM LDA SAVE6 ADDRESS TO LDB P101E ASCII IN JSB .10BS MSG H101 LDB P101F CONVERT 2ND LDA P3 MICROINSTRUCTION LDX P3+1 TO ASCII JSB .24BS IN MSG H101 ISZ SAVE6 CONVERT 3RD LDA SAVE6 RAM ADDRESS LDB P101H TO ASCII JSB .10BS IN MSG H101 LDB P101I CONVERT 3RD LDA P4 MICROINSTRUCTION LDX P4+1 TO ASCII JSB .24BS IN MSG H101 LDA SLASH SET MSG H101 TO STA P101K,I STOP AT 3 RAM ADDRESSES JSB EH101 GO REPORT ERROR JMP ERRMM,I HED PROGRAM CONSTANTS,LINKS AND STORAGE .0 DEC 0 .1 DEC 1 .32K DEC 32767 .M1 DEC -1 .M16 DEC -16 .M2 DEC -2 A.REG BSS 1 STORAGE FOR A AFTER MACRO B.REG BSS 1 STORAGE FOR B AFTER MACRO B10 OCT 10 B11 OCT 11 B1000 OCT 1000 B100K OCT 100000 B177 OCT 177 B1776 OCT 1776 B1777 OCT 1777 B2 OCT 2 B200 OCT 200 B2000 OCT 2000 B26 OCT 26 B3 OCT 3 B30 OCT 30 B35 OCT 35 B377 OCT 377 B4 OCT 4 B6000 OCT 6000 B77 OCT 77 B7760 OCT 7760 BACK1 BSS 1 8MSB OF RAM BACKGROUND BACK2 BSS 1 16LSB OF RAM BACKGROUND BIT7 EQU B200 BIT 7 CFIG DEF ZCONF LINK TO CONFIGURATION SECTION CW2 OCT 4000 BUFFER AREA CW3 OCT -4000 MOVE 2K WORDS(1K RAM DATA) E.REG BSS 1 STORAGE FOR E AFTER MACRO ERMS DEF ZERMS ERROR MESSAGE WITH HALT FLOAT OCT 105120 FLT MACROINSTRUCTION GD.08 BSS 1 8MSB OF RAM DATA LOADED