ASMB,R,B,L,C HED 91000A VERIF -- CODE PROCEDURES 10/31/73 * * * THIS ASSEMBLY LANGUAGE PROGRAM * CONTAINS 8 CODE PROCEDURES USED * BY THE 91000A VERIFICATION PROGRAM. * * IT ALSO CONTAINS A PROGRAM FOR CONFIGURING * AND A NUMBER OF SERVICE SUB-ROUTINES USED * BY THE PROCEDURES * * THE DIFFERENT PROCEDURES ARE IDENTIFIED * BY THEIR ENTRY POINTS. * * 1. INTRP - COMMAND INTERPRETER * 2. CNVRT - CONVERTS DATA TO VOLTAGE * 3. EXIT - SET-UP AND CHECK FOR ESCAPE * 4. DELAY - DELAYS FOR SPECIFIED TIME (10 USEC MULTIPLES) * 5. HISTO - HISTOGRAM ROUTINE * 6. DSPLY - REGISTER DISPLAY ROUTINE * 7. STATP - COMPUTES AVG, P-P, HIGH, LOW, & RMS * 8. CNFGR - RECONFIGURE BCS AND CONFIGURE DSPLY/HISTO * 9. READX - READS FROM TTY OR PHOTOREADER WITH ENTRY * POINTS: READ1, READ2 * * NAM CODES ENT INTRP,CNVRT,STATP,DSPLY ENT HISTO,EXIT,CNFGR,DELAY ENT READ1,READ2,GONLY EXT .IOC.,.DIO.,.IOI.,.SQT.,SQRT,.IOR. EXT FLOAT,.FDV,.DTA.,.ENTR,.RTOI,.IAR. SUP HED 91000A VERIF -- CODE PROCEDURES -- INTRP 10/31/73 ********************************** * * * INTRP -- COMMAND INTERPRETER * * * ********************************** SPC 1 * THE PROMPTER IS ISSUED BY THIS PROCEDURE. * * THE COMMAND IS SCANNED AND THE PROPER * INDICATORS SET FOR THE ALGOL. * * ERRORS IN COMMANDS ARE TRAPPED AND THE * PROMPTER IS RE-ISSUED. * * WHEN SETTING THE PACER, ITS PARAMETERS ARE * REQUESTED AND READ. SPC 2 WHERE NOP SC. NOP TC. NOP RS. NOP BS. NOP SS. NOP HI. NOP DI. NOP NOP CO. NOP NOP RPTOK NOP GONLY NOP LOOP NOP PACED NOP NOP NOP NOP LSTOK NOP BATCH NOP SPC 1 INTRP NOP JSB .ENTR DEF WHERE SKP LDA CO.,I PRINT SSA CONDITIONS? JMP .COND YES SPC 1 START JSB .IOC. WRITE OUT OCT 20002 THE JMP *-2 PROMPTER (>) DEF CMND AND HOLD ONE DEC 1 THE LINE SPC 1 JSB READ4 \\\\\\\\\\\ DEF *+4 READ IN \ DEF DEVYC THE > DEF MIN1 COMMAND/ DEF PIN /////////// SPC 1 CLB CLEAR LDA DI.,I DATA DISPLAY SSA IN SWITCH OTB 1 REGISTER SPC 1 LDA DESC IS THE AND UPPER INPUT A CPA ASTER COMMENT? JMP START YES SPC 1 LDA DESC CHECK COMMAND: CPA LI LIST? JMP LISTR YES CPA RE REPEAT? JMP REPET YES CPA SE SET A CONDITION? JMP SET MAYBE CPA CL CLEAR A CONDITION? JMP CLEAR YES SPC 1 CPA CO PRINT CONDITIONS? JMP COND YES SPC 1 CPA BA GO TAPE? JMP BAT YES CPA TY GO KEYBOARD? JMP TYPE1 YES SKP GO.ON LDA NB12 INITIALIZE STA CNTR1 COUNTERS LDA IASC AND STA PNTR1 POINTERS LDA NB10 FOR STA CNTR FINDING LDA PARAM TEST TO STA PNTR BE CALLED AGAIN LDA PNTR1,I HAS A TEST CPA DESC BEEN FOUND JMP EKUAL YES ISZ PNTR1 NO - POINT TO NEXT TEST ISZ CNTR1 CHECKED ALL TESTS & FOUND NONE? JMP AGAIN NO - LOOK AGAIN ERRR JSB ERROR YES - WRITE "??" JMP START GO GIVE PROMPTER AGAIN EKUAL INB TEST HAS BEEN FOUND - INC TEST # ISZ PNTR ADVANCE TEST BOOLEAN POINTER ISZ CNTR INC CNTR FOR VALID TEST BOOLEAN ZERO NOP ISZ CNTR1 DONE? JMP EKUAL NO STB WHERE,I YES - SET TEST INDICATOR CCB FORM "TRUE" LDA PNTR,I GET BOOLEAN STA PNTR LOCATION LDA CNTR CHECK FOR VALID SSA,RSS TEST BOOLEAN? JMP INTRP,I NO SPC 1 CLA STA SC.,I \\\\\\\\\\\ STA TC.,I \ STA RS.,I CLEAR \ STA BS.,I PREVIOUS > STA SS.,I COMMAND / STA HI.,I / STA DI.,I /////////// SPC 1 STB PNTR,I SET TRUE INTO TEST JMP INTRP,I GO BACK TO ALGOL SKP LISTR LDA LSTOK,I IS THERE SSA A DATA BUFFER TO LIST? JMP GO.ON YES JMP ERRR NO SPC 1 REPET LDA RPTOK,I IS THERE A TEST SSA THAT CAN BE REPEATED? JMP GO.ON YES JMP ERRR NO SPC 1 SET LDA DES WHAT IS THE THIRD CHAR? AND UPPER WAS IT A T? CPA T RSS YES - SO IT IS SET JMP GO.ON NO - SO MUST BE SEQUENTIAL CCB GET CONDITION LDA ST TO BE SET RSS SPC 1 CLEAR LDA FROM GET COND TO BE CLEARED ALF,ALF POSITION AND AND B377 ISOLATE FIRST CHARACTER CPA P PACER COND? JMP PCR YES CPA R REPEAT COND? JMP LOP YES CPA D SET DELAY? JMP SETD YES CPA ALL CLEAR ALL CONDITIONS? JMP CLRAL YES JMP ERRR INVALID COND - WRITE "??" SPC 2 LOP STA LSTOK,I CLEAR LIST CAPABILITY STB LOOP,I SET OR CLEAR LOOP CONDITION JMP START RE-ISSUE PROMPTER CLRAL SSB CLEAR REQUEST? JMP ERRR NO STB LOOP,I YES - CLEAR LOOP STB PACED,I CLEAR PACER JMP SETD2 CLEAR DELAY SPC 1 BAT LDA FIVE \\\\\\\\\\\ LBL1 JMP LBL2 OR NOP (NO P.R.)\ CLB,RSS \ TYPE1 LDB ABRT SET TAPE OR \ STB LBL4 KEYBOARD MODE > LDA ONE / LBL2 STA DEVYC / STA BATCH,I / JMP START /////////// SPC 1 SPC 1 PCR STB PACED,I SET OR CLEAR PACE MODE JMP START AND RE-ISSUE PROMPTER SPC 1 SKP .COND JSB .IOC. PRINT OUT OCT 20002 " COND:" JMP *-2 DEF MSG4 DEC 3 SPC 1 COND CLB STB CO.,I CLEAR COND REQUEST STB OUTBF INDICATOR LDA PACED,I PACED SSA,RSS CONDITION? JMP LABL1 NO - GO ON LDA P YES - SET UP IOR SPACE P TO PRINT ADB .CO.. STA B,I ISZ OUTBF SPC 1 LABL1 LDA LOOP,I REPEAT SSA,RSS CONDITION? JMP LABL2 NO - GO ON LDA R YES - SET UP IOR SPACE R TO PRINT LDB OUTBF ADB .CO.. STA B,I ISZ OUTBF SPC 1 LABL2 LDA DELC DELAY SSA,RSS CONDITION? JMP LABL5 NO - GO ON LDA D YES - SET UP IOR SPACE D TO PRINT LDB OUTBF ADB .CO.. STA B,I ISZ OUTBF SPC 1 LABL5 LDB OUTBF SET OUTPUT PRINT STB LABL7 LENGTH FOR CONDITIONS SZB WERE THERE ANY COND? JMP LABL6 YES - GO PRINT THEM LDA NO NO - SET UP STA .CO..,I NONE TO PRINT CLB,INB LDA NE ADB .CO.. STA B,I LDA TWO SET PRINT LENGTH STA LABL7 FOR NONE SPC 1 LABL6 JSB .IOC. PRINT OCT 20002 CONDITIONS JMP *-2 OR .CO.. DEF TOP NONE LABL7 NOP JMP START SETD SSB,RSS SET DELAY? JMP SETD2 NO SPC 1 JSB .IOC. YES- REQUEST OCT 20002 DELAY JMP *-2 VALUE DEF MSG7 DEC -8 SPC 1 JSB READ1 READ IN DEF SETD1 DELAY DEF DEVYC VALUE DEF ONE (# OF DEF PIN MILLISECONDS) SPC 1 SETD1 LDB PIN RBL,CLE,SLB,ERB ABORT? JMP START YES CMB,INB SET COUNTER FOR SETD2 STB DELC # OF MILLISECONDS JMP START SPC 2 ****************** * * * END OF INTRP * * * ****************** HED 91000A VERIF -- CODE PROCEDURES -- CNVRT 10/31/73 ******************************************* * * * CNVRT -- CONVERT DATA TO REAL VOLTAGE * * * ******************************************* SPC 1 * THIS ROUTINE TAKES INTEGER DATA STORED * IN THE UPPER 12 BITS OF EACH WORD OF * AN INTEGER ARRAY (IN THIS CASE, THE * UPPER HALF OF THE REAL ARRAY - DATA) * AND CONVERTS IT TO REAL VOLTAGE * STORING IT IN A REAL ARRAY (DATA). * * TWO GAINS ARE USED ALTERNATING BUT * BOTH WILL OFTEN BE THE SAME. SPC 2 VOLTS NOP DATA NOP GAIN1 NOP GAIN2 NOP FIRST NOP NUMBR NOP SPC 1 CNVRT NOP JSB .ENTR DEF VOLTS SPC 1 * ** INITIALIZE ** SPC 1 DLD GAIN1,I OBTAIN DST FGAIN GAIN1 DLD GAIN2,I OBTAIN DST SGAIN GAIN2 LDA NUMBR,I SET COUNTER CMA,INA FOR NUMBER OF READINGS STA NUMBR TO BE CONVERTED LDA DATA SET INPUT BUFFER ADA FIRST,I POINTER TO STARTING STA DATA POINT LDA FIRST,I SET OUTPUT BUFFER ALS POINTER ADA VOLTS TO STARTING STA VOLTS POINT SKP LDA TEST SET UP ALTERNATING TEST MORE STA DESC SAVE ALTERNATING TEST LDB XL3 GET SECOND GAIN SLA FIRST OR SECOND? LDB XL2 FIRST - GET FIRST GAIN STB XL4 SET PROPER GAIN LDA DATA,I GET RAW DATA WORD ARS,ARS DIVIDE BY 16 ARS,ARS (RIGHT JUSTIFY) JSB FLOAT MAKE INTO REAL NUMBER FMP .005 MAKE IT VOLTAGE JSB .FDV ADJUST VOLTAGE XL4 DEF FGAIN BY AMOUNT OF GAIN STA VOLTS,I STORE ISZ VOLTS VOLTAGE STB VOLTS,I IN OUTPUT ISZ VOLTS ARRAY (INTO ALGOL) ISZ DATA NEXT DATA ISZ NUMBR DONE? RSS NO JMP CNVRT,I YES - RETURN TO ALGOL LDA DESC GET ALTERNATING TEST RAR SWITCH ALTERNATING TEST JMP MORE NEXT DATA SPC 2 ****************** * * * END OF CNVRT * * * ****************** HED 91000A VERIF -- CODE PROCEDURES -- EXIT 10/31/73 ********************************************* * * * EXIT -- SET UP AND CHECK TTY FOR ESCAPE * * * ********************************************* SPC 1 * THE TTY TRAP CELL LINK IS MADE * TO POINT AT I.EX BELOW SO THAT * AN INTERRUPT FROM THE TTY COMES HERE. * * THE LINK IS RESTORED ON INTERRUPT AND * CONTROL SENT TO A LABEL PASSED IN THE CALL. * * A CLEAR REQUEST HERE RESTORES THE LINK. * * THE 91000A TRAP CELL IS RESTORED WHENEVER * THE TTY LINK IS RESTORED. SPC 2 TEST1 NOP LABEL NOP SPC 1 EXIT NOP JSB .ENTR DEF TEST1 SPC 1 LDA TEST1,I LBL4 INA,SZA SET UP? JMP RSET NO - GO CLEAR IT JSB CHECK YES - IS TTY BUSY? LDA TTYIN GET NEW TRAP CELL LINK STA TTYL,I SET UP LINK LDA INTTY GET TTY INPUT MODE WORD AND OTA1 OTA TTY OUTPUT STCC1 STC TTY,C ENCODE THE TTY FOR INPUT JMP EXIT,I SPC 1 RSET JSB CLRIT GO CLEAR JMP EXIT,I SPC 1 I.EX NOP INTERRUPT ENTRY POINT JSB CLRIT GO CLEAR JMP LABEL,I GO TO ALGOL INTERRUPT POINT SPC 1 CLRIT NOP LDA TTYLC GET BCS TTY LINK CLC1 CLC TTY TURN OFF TTY STF1 STF TTY RESTORE FLAG STA TTYL,I RESTORE TRAP LINK CLC2 CLC .2313 TURN OFF 91000A LDA TCC RESTORE STA SC,I TRAP CELL STF2 STF .2313 JMP CLRIT,I SPC 1 * ** END OF EXIT **