*20 /// PARAM /THE CODE TO SETUP /DATA DEFINITION PARAMETERS /FOR SIGSYS-12. /ALLOWS 24 OF 24 DATA CHANNELS TO BE SPECIFIED. /BLOCKS 100-103 /DIAL FILE PMES /CONTAINS MESSAGES AND /MESSAGE TABLE /BLOCK 103 /LODSYM NOT REQUIRED. SEGMNT 5 *20 /GET PROPER BLOCK NUMBER / IOB 11 4104 272 5 BLKMES /PARAM. JMP .-5 / IOB 1 4 .+3 JMP .-3 IOB 5 / IOB 11 0113 215 4 INBUF JMP .-5 / IOB 1 13 .+3 JMP .-3 IOB 5 / /RESET FLAGS AND BLOCK CNTR. LDA I 200 STC SR /PBLK CNTR STC TFLG /TYPE FLAG STC AFLG /ALL FLAG / /NOW BRING FIRST TYPED CHARACTER. LDF 4 LDH INBUF SHD I 4500 /CR JMP 20 /RESTART SHD I 1500 /M JMP DSKTAP /DSK TO TAPE LDF 7 SHD I 3000 /X JMP PARAMX /LEAVE SHD I 0100 /A STC AFLG /SET ALL FLG SHD I 2400 /T JMP 20 /BAD FRST CHAR / /SET UP TO BRING IN PARAM BLOCK. BCL I 7770 COM ADA I 7077 STA RBLK STC WBLK / /BRING IN SECOND CHARACTER. LDF 4 LDH 4\INBUF LDF 7 SHD I 0100 /A STC AFLG /SET ALL FLG SHD I 2400 /T STC TFLG /SET TYPE FLG / /NOW BRING IN PARAM BLOCK. DOP, IOB 12 /RDC, DRDE RBLK, 0 STD JMP .-1 / / /NOW FOLLOWS CODING TO DETRMINE /WHAT OPTION TO EXECUTE. /CHECK A AND T FLAGS. D0, LDA I TFLG, 0 AZE JMP DOT /T HEADER LDA I AFLG, 0 AZE JMP STWRT /NA CODING / /SET UP PNTR AND LINE NUMBER. D0A, SET I 6 MTAB-1 LDA I 1 STC LNUM /LINE NUM / /D1 TYPES OUT A LINE FOR BOTH /N AND NT OPTIONS. D1, LDA I 6 AZE /ALL LINES DUN? JMP NXLIN /TYPE A LINE / LDA /ALL DUN TFLG AZE I JMP D0A /START AT 1 /T FLAG UP, CHECK FOR A FLAGG /TO SEE IF RECYCLE THRU D1. LDA AFLG AZE I JMP CRLFX /RECYCLE CODING. CLR SRO SR / C\SR\=0200 JMP 20 /DUN ALL LDA RBLK ADD MONE STA RBLK STC RBN /BRING IN NEXT PARAM BN. IOB 12 /RDC, DRDE RBN, 0 STD JMP .-1 JMP D0 /TYPE NXT / /EXIT WITH A CRLF. CRLFX, JMP CRLF JMP 20 /TO Q1 /TYPE A CRLF. CRLF, LDA 0 STC XCLF IOB 11 7704 -1 0 215 JMP .-5 / IOB 11 7704 -1 0 212 JMP .-5 XCLF, 0 /LEAVE /END CRLF. EJECT /ROUTINE TO MOVE ALL OR ONE /PARAM BLOCK FROM DISK TO TAPE. DSKTAP, LDH 4\INBUF SHD I 0100 /A JMP SWAPAL /DO ALL SHD I 4500 /CR JMP 20 /ERROR / /MOVE ONE PARAM BLOCK. BCL I 7770 COM ADA I 7077 STA TBN STC DBN JMP SWAP JMP 20 / /MOVE ALL PARAM BLOCKS. SWAPAL, LDA I 7067 BKSWP, ADD ONE STA TBN STC DBN JMP SWAP CLR SRO SR / C\SR\=0200 JMP 20 /ALL DUN LDA TBN JMP BKSWP /MORE / /MOVE ONE BN FROM DISK TO TAPE. SWAP, SET 11 0 IOB 12 /RDC, DRDE DBN, 0 WRC TBN, 0 STD JMP .-1 JMP 11 /END DISK-TAPE SWAP ROUTINE. EJECT /ROUTINE TO TYPE NEXT LINE FOR /BOTH N AND NT CONDITIONS. NXLIN, SETWRD 200 SFLOAT LNUM OUTPUT LNUM+2 ADD ONE ADD LNUM STC LNUM / IOB 11 4104 -5 5 LNUM+1 JMP .-5 JMP TPWAT / LDA 6 STC LNAM / IOB 11 4104 272 5 LNAM, 0 JMP .-5 JMP TPWAT / TQ, LDA I 6 STC WRDLOC LDA I 6 STC DATTYP / LDA I DATTYP, 0 SHD I 0300 JMP BITS SHD I 0200 JMP FPWRD / /INTEGER WORD / LDA I WRDLOC, DATLOC, 0 STC .+2 SFLOAT 0 SETWRD 500 OUTPUT OUTBF / IOB 11 4104 -5 5 OUTBF JMP .-5 JMP TPWAT JMP KTST /D1, DECODE / /FPP WORD. FPWRD, LDA WRDLOC STC .+2 LOAD 0 SETWRD 1243 OUTPUT OUTBF / IOB 11 4104 -12 5 OUTBF JMP .-5 JMP TPWAT JMP KTST /D1, DECODE / /SEQUENTIAL BITS WORD. BITS, LDA WRDLOC ADD MONE STC 5 COM STC WRDFLG SET I 2 -2 /2 PWRD CNTR SET I 10 12 /1ST CHANNEL NXTWRD, LDA I 5 STC BH ADD BTCT+2 /OUTBF STC OB /OUTBF PNTR STC OC /1\2 WRD CNTR /CHECK 1ST OR 2ND PWRD. SET I 7 -14 /BITS\PWRD CNTR SRO I BH, 0 /PWRD JMP GBIT /GOT ONE XSK I 10 /BUMP CHAN XSK I 7 /DUN 12 BITS? JMP BH-1 /SETUP TYPEOUT CLR ADD OC AZE JMP .+4 XSK I 2 /DUN 2 WRDS? JMP NXTWRD JMP KTST /D1, DECODE COM STC BTCT /DO TYPEOUT BUT FIRST SEE IF ACTUALLY THE /SECOND TYPED WORD. IF SO DO 1 OR 2 CRLFS /& 10 SPACES. DO NOT DO 2ND CRLF IF IN /THE T MODE. ADD WRDFLG COM STA I WRDFLG, 0 APO I /+0=1STWRD;-0=2ND JMP BTCT-2 /FIRST WORD JMP CRLF /SECOND WORD LDA TFLG AZE I JMP CRLF IOB 11 /10 SPACES 7704 -12 0 240 JMP .-5 IOB 11 /ACTUAL TYPEOUT 4104 BTCT, 0 /NUM 1\2 WRDS 5 OUTBF JMP .-5 JMP TPWAT XSK I 2 /DUN 2 WORDS? JMP NXTWRD /NO JMP KTST /D1, DECODE EJECT /ROUTINE TO LOOK AT TTY INPUT /AT END OF LINE IN N CONDITION. KTST, LDA TFLG AZE JMP D1 / IOB 11 0113 215 4 INBUF JMP .-5 / IOB 1 13 DECODE JMP .-3 IOB 5 EJECT GBIT, SET 11 0 LDA 10 STC INTGR / SFLOAT INTGR SETWRD 400 / OUTPUT OB, OUTBF LDA OB ADA I 2 STC OB /OUTBF LOC LDA I OC, 0 ADA I 4 STC OC JMP 11 / / /TYPE HEADER IF PRINTING ONLY DOT, LDA RBLK COM BSE I 60 STH 4\PBMES+5 IOB 11 4104 -16 5 PBMES JMP .-5 JMP TPWAT JMP D0A / PBMES, 4543 4343 2002 1417 0313 4040 4543 3600 EJECT /DECODING ROUTINE TO LOOK /AT INPUT AT END OF LINE /IN N MODE. DECODE, LDF 4 LDH INBUF LDF 7 SHD I 3000 /X JMP SAVQ /UPDATE EXIT SHD I 4500 /CR JMP D1 /NXT LINE SHD I 0200 /B JMP BAK /BAK 1 LINE SHD I 2000 /P JMP PCKNXT /ENTER LINE /UPDATE PARAMETER. DC, LDA DATTYP /DECIDE WHICH DATAYPE. SHD I 300 JMP INBIT SHD I 200 JMP INFLT / /INTEGER INPUT LDF 4 INPUT INBUF LDF 7 FIX FAC LDA DATLOC STC .+2 ISTOR1 0 JMP D1 / /FPP INPUT. INFLT, LDF 4 INPUT INBUF LDF 7 LDA DATLOC STC .+2 STORE 0 JMP D1 / /BIT SEQUENTIAL INPUT. INBIT, CLR STC BHOL STC BBHOL SET I 15 INBUF LDH 15 SHD I 4500 /CR JMP ALBIT /CR, EXIT JMP IBT1 /GET NUM / IBT, LDF 4 /FIND CR OR SPACE LDH I 15 LDF 7 SHD I 4500 /CR JMP ALBIT /CR, EXIT SAE I 40 /SPACE JMP IBT / IBT1, LDF 4 /BRING IN CHAN NUM LDA 15 STC .+2 INPUT 0 LDF 7 / FIX FAC ISTOR1 BTEM LDA I BTEM, 0 AZE I /LEAVE FOR 0 ENTRY JMP ALBIT /TEST FOR NEED FOR 2ND PWRD,I.E., CH22(10) TO CH33(10). ADA I -25 APO I JMP NEWHOL /NEED 2ND PWRD OLDHOL, LDA I /NEED 1ST PWRD -11 STC SUBNUM LDA I JMP BHOL-1 JMP NEWHOL+5 NEWHOL, LDA I -25 STC SUBNUM LDA I JMP BBHOL-1 STC JMPWRD ADD BTEM ADA I SUBNUM, 0 /-11; -25 COM STC 14 /ROTATE CNTR LDA I 1 XSK I 14 SKP JMP .+3 ROL 1 JMP .-4 JMPWRD, 0 /JMP BHOL-1;BBHOL-1 / BSE I BHOL, 0 /1ST PWRD STC BHOL JMP IBT / BSE I BBHOL, 0 /2ND PWRD STC BBHOL JMP IBT / ALBIT, SET 15 /STORE BOTH PWRDS DATLOC LDA BHOL STA 15 LDA BBHOL STA I 15 / JMP D1 EJECT /DECISION MAKERS / /GET NXT LINE NUM FROM TTY. PCKNXT, LDF 4 INPUT INBUF LDF 7 FIX FAC ISTOR1 NL ISTOR1 LNUM / LDA I NL, 0 ADA I -46 APO I JMP D1 LDA NL MUL I 3 ADA I MTAB-4 STC 6 JMP D1 / /BACKUP ONE LINE. BAK, JMP BAKUP JMP D1 / BAKUP, SET 11 0 LDA 6 SAE I MTAB+2 SKP JMP .+5 ADA I -6 STC 6 JMP .+4 ADA I -3 STC 6 LDA I -2 ADM LNUM JMP 11 / / /UPDATE EXIT PROCEDURE /CONVERT CNWIDTH, BASELINE WIDTH /INTO POINTS /ALSO DETERMINE CLOCK SETTING /AND STORE 3777 INTO VARIALBE SLOTS / SAVQ, SFLOAT P17 STORE TEM LOAD P44 FDIV TEM / SECONDS PER SAMPLE STORE TEM LOAD P46 /BASE LINE DELAY FDIV TEM FIX FAC ISTOR1 P23 /BASELINE POINTS / LOAD P47 /CONWIDTH FDIV TEM FIX FAC ISTOR1 P11 /CON POINTS / LOAD TEM FMUL MIL STORE TEM /MICROSECONDS PER SAMPLE / /FUDGE FOR TAPE SPEEDUP / LOAD TEM FDIV P37 /TAPE SPEEDUP STORE TEM / /FIGURE RATE / SET I 6 RATTAB / GR, LDA 6 STC .+4 LOAD TEM FDIV 0 FIX FAC ISTOR2 TEM1 LDA TEM1+1 AZE I JMP GRAT XSK I 6 XSK I 6 JMP GR / GRAT, LDA I 6 STA P26 /CLOCK RATE LDA TEM1 STA P27 /CLOCK TICKS / /SET VARIABLES SET I 6 P102-1 LDA I 3777 STA I 6 XSK 6 JMP .-2 / EJECT /WRITE OUT THE BLOCK /AND FIND OUT WHAT TO DO NEXT /GET HERE DURING NA, /X, AND END OF N MODES. ENDP, IOB I 12 WBLK, 0 / CLR SRO I SR, 200 JMP 20 ADD AFLG AZE I JMP .+6 LDA I MONE, -1 ADM RBLK STC WBLK ADD TFLG AZE JMP TSP ADD AFLG AZE JMP ENDP JMP 20 / PARAMX, LIF 4 JMP 20 / TPWAT, LDA 0 STC TPWAX IOB 1 4 TPWAX JMP .-3 IOB 5 TPWAX, JMP / STWRT, LDA I 7077 STA RBLK STC WBLK JMP ENDP / TSP, LDA AFLG AZE JMP DOP JMP 20 EJECT /VARIABLES AND CONSTANTS TEM, *.+3 TEM1, *.+3 / RATTAB, DIVRAT 1100 DIVRAT+3 2100 DIVRAT+6 3100 DIVRAT+11 4100 DIVRAT+14 5100 / /DIVISION TABLE / DIVRAT, 2 /2.5 2400 0 TEN, 4 2400 0 HUN, 7 3100 0 THOU, 12 3720 0 TTHOU, 16 2342 0 MIL, 24 3641 1000 / / / / ONE, 1 2000 0 THRE, 2 3000 0 / SCALE, 0 INTGR, 0 / / BLKMES, 4543 4343 2001 2201 1545 4372 / OUTBF, *.+50 LNUM, 0 4543 0 4036 AAEND1, 0 EJECT / / / /THE MESSAGE DISPATCH TABLE / MTAB, M1 P1 3 / M2 P5 3 / M3 P15 3 / M4 P77 2 / M5 P100 2 / M6 P47 2 / M7 P37 2 / M8 P24 1 / M9 P46 2 / M10 P42 2 / M11 P43 2 / M12 P44 2 / M13 P20 1 / M14 P17 1 / M15 P21 1 / M16 P25 1 / M17 P50 2 / M18 P51 2 / M19 P52 2 / M20 P53 2 / M21 P54 2 / M22 P55 2 / M23 P56 2 / M24 P57 2 / M25 P60 2 / M26 P61 2 / M27 P62 2 / M28 P63 2 / M29 P64 2 / M30 P65 2 / M31 P66 2 / M32 P67 2 / M33 P70 2 / M34 P71 2 / M35 P72 2 / M36 P73 2 / M37 P74 2 / M38 P75 2 / 0 / / /THE MESSAGES FOLLOW: / M1, TEXT /DAT CH:/ M2, TEXT /CON CH:/ M3, TEXT /INV CH:/ M4, TEXT /TV:/ M5, TEXT /FV:/ M6, TEXT /CON WID:/ M7, TEXT /TP SPEED:/ M8, TEXT /TP DEL:/ M9, TEXT /BAS DEL:/ M10, TEXT /MULT:/ M11, TEXT /UV:/ M12, TEXT /SEG LEN:/ M13, TEXT /N. SEG:/ M14, TEXT /N. SAMP:/ M15, TEXT /N. ENS:/ M16, TEXT /ENS DEL:/ M17, TEXT /A1 MIN:/ M18, TEXT /A1 MAX:/ M19, TEXT /A2 MIN:/ M20, TEXT /A2 MAX:/ M21, TEXT /A3 MIN:/ M22, TEXT /A3 MAX:/ M23, TEXT /A4 MIN:/ M24, TEXT /A4 MAX:/ M25, TEXT /A5 MIN:/ M26, TEXT /A5 MAX:/ M27, TEXT /B1 MIN:/ M28, TEXT /B1 MAX:/ M29, TEXT /B2 MIN:/ M30, TEXT /B2 MAX:/ M31, TEXT /B3 MIN:/ M32, TEXT /B3 MAX:/ M33, TEXT /B4 MIN:/ M34, TEXT /B4 MAX:/ M35, TEXT /B5 MIN:/ M36, TEXT /B5 MAX:/ M37, TEXT /PF MIN:/ M38, TEXT /PF MAX:/ AAEND2, 0 /END PROGRAM /PBLOCK FOLLOWS. NOLIST //PBLOCK /PARAMETER BLOCK ASSIGNMENTS / P0=3400 /DATA TYPE P1=3401 /CURRENT CHAN. P2=3402 /CURRENT CHAN. P3=3403 /DATA CHAN. P4=3404 /DATA CHAN. P5=3405 /CONTINGENCY CH P6=3406 /CONTINGENCY CH P7=3407 /TRUE CONTING. P10=3410 /FALSE CONTING. P11=3411 /CONTING. WIDTH P12=3412 /TRUE CONTING. P13=3413 /FALSE CONTING. P14=3414 /CONTING. WIDTH P15=3415 /CHAN INVERSION P16=3416 /CHAN INVERSION P17=3417 /NO.SAMP IN SEG P20=3420 /NO.SEG IN ENSM P21=3421 /NO. ENSEMBLES P22=3422 / P23=3423 /BASELINE PNTS P24=3424 /TAPE DELAY P25=3425 /ENSEMBL DELAY P26=3426 /CLOCK RATE P27=3427 /CLOCK TICS P30=3430 P31=3431 P32=3432 P33=3433 P34=3434 P35=3435 P36=3436 P37=3437 /TAPE SPEED UP P40=3440 /TAPE SPEED UP P41=3441 /TAPE SPEED UP / /FLOATING POINT VARIABLES / / P42=3442 /MULT FACTOR P43=3445 /UV PER VOLT P44=3450 /SEG. LENGTH P45=3453 /TEMP P46=3456 /BASELINE DELAY P47=3461 /CONTING WIDTH P50=3464 /BNDA1 MIN P51=3467 /BNDA1 MAX P52=3472 /BNDA2 MIN P53=3475 /BNDA2 MAX P54=3500 /BNDA3 MIN P55=3503 /BNDA3 MAX P56=3506 /BNDA4 MIN P57=3511 /BNDA4 MAX P60=3514 /BNDA5 MIN P61=3517 /BNDA5 MAX P62=3522 /BNDB1 MIN P63=3525 /BNDB1 MAX P64=3530 /BNDB2 MIN P65=3533 /BNDB2 MAX P66=3536 /BNDB3 MIN P67=3541 /BNDB3 MAX P70=3544 /BNDB4 MIN P71=3547 /BNDB4 MAX P72=3552 /BNDB5 MIN P73=3555 /BNDB5 MAX P74=3560 /PF MIN P75=3563 /PF MAX P76=3566 /TEMP P77=3571 /TRUE VOLTS P100=3574 /FALSE VOLTS P101=3577 /TEMP P102=3602 /V RMS P103=3605 /VRMS VAR / /FROM NOW ON DESCRIPTION IS FOUND OVER /THE DEFINED VARIABLE. / /AX,A1,A1CNT P104=3610 /AXVAR,A1VAR,A1CNTVAR P105=3613 /AY,A2,A1INT P106=3616 /AYVAR,A2VAR,A1INTVAR P107=3621 /BX,A3,A1MN P110=3624 /BXVAR,A3VAR,A1MNVAR P111=3627 /BY,A4,A2CNT P112=3632 /BYVAR,A4VAR,A2CNTVAR P113=3635 /CX,A5,A2INT P114=3640 /CXVAR,A5VAR,A2INTVAR P115=3643 /CY,B1,A2MN P116=3646 /CYVAR,B1VAR,A2MNVAR P117=3651 /DX,B2,A3CNT P120=3654 /DXVAR,B2VAR,A3CNTVAR P121=3657 /DY,B3,A3INT P122=3662 /DYVAR,B3VAR,A3INTVAR P123=3665 /EX,B4,A3MN P124=3670 /EXVAR,B4VAR,A3MNVAR P125=3673 /EY,B5,A4CNT P126=3676 /EYVAR,B5VAR,A4CNTVAR P127=3701 /FX,PF,A4INT P130=3704 /FXVAR,PFVAR,A4INTVAR P131=3707 /FY,DC,A4MN P132=3712 /FYVAR,DCVAR,A4MNVAR P133=3715 /GX,GX,A5CNT P134=3720 /GXVAR,GXVAR,A5CNTVAR P135=3723 /GY,GY,A5INT P136=3726 /GYVAR,GYVAR,A5INTVAR P137=3731 /HX,HX,A5MN P140=3734 /HXVAR,HXVAR,A5MNVAR P141=3737 /HY,HY,B1CNT P142=3742 /HYVAR,HYVAR,B1CNTVAR P143=3745 /IX,IX,B1INT P144=3750 /IXVAR,IXVAR,B1INTVAR P145=3753 /IY,IY,B1MN P146=3756 /IYVAR,IYVAR,B1MNVAR P147=3761 /JX,JX,PF P150=3764 /JXVAR,JXVAR,PFVAR P151=3767 /JY,JY,DC P152=3772 /JYVAR,JYVAR,DCVAR P153=3775 / / /COMMAND DECODER ASSIGNMENTS / / STOP=JMP 20 SCAN=JMP 21 STRSCN=JMP 21 INUNIT=JMP 22 STORIT=JMP 23 GETFIL=JMP 24 GETFST=JMP 24 GETNAM=JMP 25 GETNXT=JMP 25 DIRINI=JMP 26 DIRLST=JMP 27 ASSIGN=JMP 30 DEASS=JMP 31 OUTUNIT=JMP 32 LODBLK=JMP 33 RUNBLK=JMP 34 FIND=JMP 35 CALL=JMP 37 UNCALL=JMP 40 RUNPRG=JMP 41 INTRACT=JMP 42 MESOUT=JMP 43 DISK=JMP 44 TABSET=JMP 45 INTABLE=JMP 45 MISSNG=JMP 47 TABGET=JMP 50 TABPUT=JMP 51 TABZER=JMP 52 MAKDIL=JMP 53 TABINI=JMP 54 MGETNAM=JMP 55 MGETFIL=JMP 56 MSTORIT=JMP 57 / /COMMAND LOCATIONS. / FILNAM=2320 WORD1=2323 WORD2=2324 INBUF=2325 /COMMAND NUMBERS. YES=17 NO=20 SAMPL=21 TABLE=22 GO=23 NEXT=24 CU=25 CONT=26 ALL=27 AVG=30 A=31 B=32 C=33 D=34 E=35 F=36 G=37 H=40 II=41 J=42 PLOT=43 PRINT=44 T=45 / /EXEC3 ASSIGNMENTS / OPR=500 IOF=6002 ION=6001 EXC=1710 REXC=540 RLSW=514 RRSW=515 IOCALL=511 AWAKE=501 QUIT=505 PAUSE=507 IOCLR=502 SETCON=510 SETCLK=503 PLINE=524 READ=512 WRITE=532 SETDSK=513 /DEVICE ASSIGNMENTS / KBD=13 TLP=4 LPT=24 BPLT=30 PLT=25 CLK=2 SCOPE=26 /FLOATING POINT DEFINITIONS. / FAC=0 STARTE=740 FSUB=741 FMUL=742 FDIV=743 LOAD=744 STORE=745 SETWRD=746 INPUT=747 OUTPUT=750 ISTOR1=751 SQRT=752 DFLOAT=753 SFLOAT=754 FIX=755 FADD=756 ISTOR2=757 STARTF=760 FCOMP=761 FZER=762 FAPO=763 FAZE=764 RECIP=765 NEXTIN=766 SETIN=767 SETOUT=770 OUTBUF=771 PACFAC=772 SACFAC=773 FACAC=774 UNFIX=775 /END PBLOCK LIST /// END PARAM / MAY 77 / NDC, FHD