*20 /// PROGRAM FRC /CORE ALLOCATION: /IF 5&6- PROGRAM /DF 7 - UNUSED, CURRENTLY /DF 10 -UNUSED /DF11 - DEAD VALUES (INB5) /DF12 - TVOL VALUES (INB6 OUTB17) /DF 13 - %N VALUES FOR FILING (B13) /DF 14 - %N AND EAV VALUES FOR STORAGE (B14) /DF 15 - INDIVID ENV (INB17) /DF 16 - STRIPPED DATA /DF 17 - TAPE BUFFER & HEADER BLOCK /DF 20 - RAW N2\BREATH (INB5 OUTB15) LMODE //BEGIN IF 5 ROUTINES. SEGMNT 5 *20 BEG1, JMP USROFF LIF 6 JMP QUES /KBD VALUES BEG2, JMP USROFF JMP SETREG /STD TAPE JMP GETHED /START BLOCK JMP CLRBUF /CLR BFRS,SET DEAD JMP STRDIS /START DISPLAY JMP SETMRE /PREP MRE LOOP MRE, JMP GET3BN /INPUT 3/6 BN, U2 SET I 7 3777 JMP STRIP /3BN DF17 TO 16 XSK I 2 /DUNX2? JMP MRE /NO /YES, FALL THRU TO TTY /TTY INTERACTION HANDLER. /OPEN INPUT BUFFER TO ACCEPT JUST 1 CHARACTER. TTY, OPR 11 0013 -1 4 INBUF JMP .-5 OPR 11 /TYPE COLON 0004 272 /: 5 MCOLN JMP .-5 OPR 1 /SET WAKEUP 0013 DECUD JMP .-3 OPR 5 /GO TO SLEEP /ROUTINE TO DECODE THE SINGLE CHARACTER. DECUD, LDF 4 SET I 1 GUDLST-1 /VALID CHAR PNTR SET I 2 JMPLST-1 /ROUTINE PNTR SET I 4 GUDLST-GUDEND-1 /LIST CNTR LDH INBUF SAE I 1 SKP /NO JMP VALID /YES XSK I 2 XSK I 4 JMP .-5 Q, LIF 4 /BAD CHARACTER MESOUT MQ /? JMP TTY MQ, TEXT &??& 4543 MCOLN, TEXT &: & VALID, LDA I 2 STC .+1 0 /JMP /END TTY. /LIST OF VALID CHARACTERS. /LOCATIONS IN JMPLST & GUDLST CORRESPOND. GUDLST, 63 /3, CAL CHAN 3 65 /5, CAL CHAN 5 01 /A, RESTART WHOLE PROG 02 /B, BAKUP 1 FRAME 03 /C, BREATH INITL 04 /D, DEPOSIT A BREATH 05 /E, N2 ZERO 06 /F, START AT DEADSPACE 07 /G, GET AMBIENT N2 10 /H, GET PAN 20 /P,PROCESS TO DATE 24 /T, DEAD SPACE 40 /SPACE, DEPOSIT 12 /LF, SEEK TRIG PULSE 45 /CR, FORWARD 1 FRAME GUDEND, 23 /S, STOP /END GUDLST. /JUMP TO SUBROUTINE LIST. /LOCATIONS IN GUDLST & JMP LST CORRESPOND. JMPLST, JMP CAL3 /3, CAL CHAN 3 JMP CAL5 /5, CAL CHAN 5 JMP BEG1 /A, RESTART ALL JMP BAKUP /B, BACK 1 FRAME JMP INITL /C, BREATH INITIALIZE JMP DEPO /D, DEPOSIT BREATH JMP ZERON2 /E, NITRO ZERO JMP BEG2 /F, SIMPLE RESTART JMP GETAMB /G, GET AMBIENT N2 JMP GETPAN /H, GET PAN JMP PROC /P, PROCESS ALL JMP DEADSP /T, DEPO DEAD SPACE JMP DEPO /SPACE, DEPOSIT BREATH JMP SEEKT /LF, SEEK TRIG JMP NXTSEG /CR, NEXT FRAME JMP .+1 /S OR STOP, STOP LIF 4 STOP /END JMPLST. /ROUTINE TO HALT ALL SYSTEM USERS. USROFF, OPR 2 0 JMP 0 /LEAVE. /END USROFF. /ROUTINE TO GET HEADER BLOCK. /ASK FOR U2 BN & BRING IN HEADER TO /QN7 OF DF 17. HEADER HAS INITIAL PBLOCK. GETHED, SET 3 0 LDF 6 D00, LIF 4 INTRACT CJ00 2\M00 /PROG FRC / START BN: CJ00, T00 J00 T00, 0 J00, JMP BEG1 /CR JMP .+1 /NUM STC HEDBN JMP SETEXT /EXT AXO LDA I 7400 /QN7, DF17 TMA RDC HEDBN, 0 STD /WAIT ON TAPE JMP .-1 LDA HEDBN ADD KP1 STA I STRBN, 0 /FIRST DATA BN LDF 17 LDA P20 MUL P102+17 /NUMCHAN ADD HEDBN STA I ENDBN, 0 /LAST BN CLR ADD STRBN ADD KM3 STA I CURBN, 0 /CURNT DISPLY BN JMP SETREG /REG AXO /CALCULATE SEC\PT FROM PBLOCK. SFLOAT P17 /PTS\SEG STORE FPTIME LOAD P44 /SEG LENGTH(SEC) FDIV FPTIME STORE FPTIME /SEC\PT JMP 3 /LEAVE GETHED FPTIME, 0 0 0 /ROUTINES TO MANIPULATE TAPE AXO. SETREG, LDA I KP10, 10 AXO CLR JMP 0 /LEAVE SETEXT, LDA I 3031 /DF13-17,EXT ADR KP1, AXO /NO PAUSE, UNIT 2 CLR JMP 0 /LEAVE /END GETHED & TAPE AXO ROUTINES. /ROUTINE TO CLEAR BUFFERS & SET SOME POINTERS. CLRBUF, SET 3 0 FZER STORE FPAN2 STORE FPPAN STORE FPMDS STC AMBN STC PANN STC DEADN STC NUMDEP SET I 5 /DEAD STRG PNTR 2000 /IN DF 11. JMP 3 /END CLRBUF. /DISPLAY HANDLERS. /START USER & LEAVE. STRDIS, SET 3 0 OPR 1 /START CURVE DISPLAY 2 DISPLY JMP .-3 OPR 11 /START BN & NUMDEP 26 0 5 NUMBUF JMP .-5 JMP 3 /LEAVE STRDIS NUMBUF, +0 /TEXT 0 +1 /X -250 /Y LDF 5 N /TEXT PNTR 4001 /END CHORE 4000 /END JOB N, TEXT %N=% DEPNUM, 0000 0000 0045 4343 TEXT %BN= % DISBLK, 0000 0000 0034 /END STRDIS. /THE DISPLAY USER. DISPLY, SETWRD 0500 SFLOAT NUMDEP OUTPUT DEPNUM SFLOAT CURBN OUTPUT DISBLK SET I 12 3777 /DATA C1 SET I 13 2777 /DATA C2 RSW BCL I 7760 BSE I SCR STA DISP1 STA DISP2 STA SCALE1 STC SCALE2 /DISPLAY CONTROLLERS. /DISPLAY 2 DATA CURVES. LDF 16 BKDIS, LDA I 13 JMP DISP2 LDA I 12 JMP DISP1 XSK 13 JMP BKDIS /NOW SAMPLE POTS. SAM 0 SCR 1 STA I POT0, 0 JMP FIXPOT+2 STA I POT01, 0 JMP DISCR1 SAM 1 JMP FIXPOT STA I POT11, 0 JMP DISCR1 SNS I 0 JMP ZERONE ZERZER, ADD POT01 ADD KP1000 STA I POT02, 0 JMP DISCR2 ADD POT11 ADD KP1000 STA I POT12, 0 JMP DISCR2 JMP VERT ZERONE, SAM 2 /SNS1=1 JMP FIXPOT ADD KP1000 STA I POT22, 0 JMP DISCR2 SAM 3 JMP FIXPOT STA I POT31, 0 ADD KP1000 JMP DISCR2 LDF 16 SET I 13 /HORIZ LINE ON POT11 2777 LDA POT11 STC .+2 LDA 0 SCALE2, SCR ADD POT6 DIS I 13 XSK I 13 JMP .-2 VERT, SAM 6 /VERT POSN POTS SCR 1 STA I POT6, 0 SAM 7 STA I POT7, 0 OPR 7 JMP DISPLY /END DISPLY. /DISPLAYER FOR CURVE 1. DISP1, SCR ADD POT6 DIS 13 JMP 0 /;EAVE /END DISP1. /DISPLAYER FOR CURVE 2. DISP2, SCR ADD POT7 DIS 13 JMP 0 /LEAVE /END DISP2. /ROUTINE TO FIXUP SAMPLED POT VALUES. FIXPOT, SCR 1 ADD POT0 ADD KP3777 BCL I 7000 ADD KP2000 JMP 0 /LEAVE KP3777, 3777 KP2000, 2000 /END FIXPOT. /DISPLAY CURSOR ON CURVE 1. DISCR1, STC 14 ADD 0 STC DISCRX LDA I ADD POT6 DISCR, STC POTNRT LDA 14 SCALE1, SCR POTNRT, 0 SET I 13 KM10, -10 ADD KP10 DIS 14 ADD KM1 XSK I 13 JMP .-3 CLR DISCRX, 0 /LEAVE /END DISCR1. /ROUTINE TO DISPLAY CURSOR ON CURVE 2. DISCR2, STC 14 ADD 0 STC DISCRX LDA I ADD POT7 JMP DISCR /END DISCR2. /END DISPLAYER ROUTINES. /ROUTINE TO SETUP TWO LOOPS THROUGH MRE. SETMRE, SET 3 0 /SETUP BETA REGISTERS. SET I 2 -2 /X2 LOOP CNTR SET I 16 3777 /CURVE 1, DF16 SET I 17 2777 /CURVE 2, DF16 /UPDATE BN. LDA CURBN ADD KP3 STA CURBN STC BN JMP 3 /LEAVE KP3, 3 /END SETMRE. /ROUTINE TO GET 3 OF 6 NEEDED BN FROM U2. GET3BN, SET 3 0 SET I 4 KM3, -3 JMP SETEXT LDA I 6000 IOB IOF STA I TMAVAL, 0 STD JMP .-1 TMA RDE BN, 0 LDA BN ADD KP1 STC BN ADD TMAVAL XSK I 4 SKP JMP .+3 ADD KP400 JMP TMAVAL-1 IOB ION STD JMP .-1 JMP SETREG JMP 3 /LEAVE KP400, 400 /END GET3BN. /ROUTINE TO STRIP DF17 ALTERNATING TAPE /DATA AND PLACE SEQUENTIALLY IN DF 16. /DF17 ALTERNATES TRIG, CURVE1, CURVE2. /DF16 WILL CONTAIN CURVE 1 FROM 2000-2777 /AND CURVE 2 FROM 3000-3777. STRIP, SET 3 0 SET I 10 KM400, -400 /CNTR MRSTRP, LDF 17 LDA I 7 STC RTEMP LDA I 7 /CURVE 1 LDF 16 STA I 16 /1ST HALF DF16 LDF 17 LDA I 7 /CURVE 2 LDF 16 STA I 17 /2ND HALF DF16 XSK I 10 JMP MRSTRP JMP 3 /LEAVE RTEMP, 0 /END STRIP. /CALIBRATION ROUTINES. THEY REQUIRE REAL /WORLD CALIBRATION PULSE VALUES IN PBLOCK /AS FOLLOWS: CH 3, P55, A3MAX / CH 5, P61, A5MAX CAL3, SET 16 POT01 LDF 16 LDA 16 COM STC FPTEMP SET 16 POT11 LDA 16 JMP GETEMP STORE CAL33 JMP TTY CAL5, SET 16 POT02 LDF 16 COM STC FPTEMP SET 16 POT12 LDA 16 JMP GETEMP STORE CAL55 JMP TTY GETEMP, ADM FPTEMP SFLOAT FPTEMP JMP 0 FIXCH3, FDIV CAL33 LDF 17 FMUL P55 JMP 0 FIXCH5, FSUB FPZN2 FDIV CAL55 LDF 17 FMUL P61 JMP 0 CAL33, 0 0 0 CAL55, 0 0 0 FPTEMP, 0 0 0 /END CALIBRATION ROUTINES. /ROUTINES TO INITIALIZE, ADVANCE OR BAKUP FRAMES. /INITIALIZER. INITL, LDA POT01 STC BEGINT STC FRMCNT /PNTRS. SET I 5 /DF13, N2\BREATH 3777 SET I 6 /DF12, TVOL 2000 CLR STC NUMDEP /CNTR JMP TTY /LEAVE FRMCNT, 0 BEGINT, 0 /END INITL. /ROUTINE TO GET NEXT SEGMENT IF MORE /ARE AVAILABLE. NXTSEG, LDA I 1 ADD FRMCNT STC FRMCNT /NO. OF FRAMES SINCE INITIALIZATION ADD CURBN ADD KP7 COM ADD ENDBN APO /MORE LEFT? JMP ATEND /NO JMP MRE-1 /YES, LEAVE ATEND, LIF 6 /U2 ENDED JMP AEND KP7, 7 /END NXTSEG. /ROUTINE TO BAKUP 3 BN FROM CURBN. BAKUP, LDA I KM1, -1 ADD FRMCNT STC FRMCNT ADD CURBN ADD KM3 KP17, COM ADD STRBN APO I /AT BEGINNING? JMP INITL /YES LDA CURBN /NO,OK ADD KM6 STC CURBN JMP MRE-1 /LEAVE KM6, -6 /END BAKUP. /ROUTINE TO RESTART U2 AT BEGINNING OF JOB. STRTAP, LDA STRBN ADD KM3 STC STRBN JMP MRE-1 /LEAVE /END STRTAP. /END FRAME HANDLING ROUTINES. /ROUTINE TO DEPOSIT DATA FROM A SINGLE BREATH. DEPO, LDA POT01 STC STRPT ADD POT11 STC ENDPT ADD POT22 STC 1 LDF 16 LDA 1 LDF 20 STA I 5 /STORE RAW N2 JMP DOINT LDF 12 STORE /TVOL 4\6 ADD KP1 /BUMP CNTR ADM I NUMDEP, 0 JMP TTY /LEAVE /END DEPO. /ROUTINE TO ZERO NITROGEN CURVE. ZERON2, SET 10 POT22 LDF 16 SFLOAT 10 STORE FPZN2 JMP TTY FPZN2, 0 0 0 /END ZERON2. /INTEGRATES CH3, DF 16, FROM STRPT TO ENDPT. DOINT, LDA I STRPT, 0 STA 1 /YO PNTR ADD KP1 STC 2 /YN PNTR ADD 0 STC DOINTX FZER STORE FPTVOL /GET TIDAL VOLUME. LDF 16 SFLOAT 1 STORE BSLN MRINT, SFLOAT 4\1 /YO FSUB BSLN STORE FPTEMP SFLOAT 4\2 /YN FSUB BSLN FADD FPTEMP JMP FIXCH3 LDF 16 FMUL FPTIME FDIV FP2 FADD FPTVOL STORE FPTVOL ADD 1 SAE I ENDPT, 0 JMP MRINT DOINTX, 0 /LEAVE FPTVOL, 0 0 0 BSLN, 0 0 0 /END DOINT. /ROUTINE TO GET NITRO CURVE BASELINE. /CURSOR 2(2). N2ZER, SET 16 POT22 LDF 16 SFLOAT 16 STORE FPZN2 JMP TTY /LEAVE /END N2ZER. /ROUTINE TO GET AMBIENT N2 FROM CURSOR 0(2). /SET SNS0=0. GETAMB, SET 16 POT02 LDF 16 SFLOAT 16 FADD FPAN2 STORE FPAN2 ADD KP1 ADD AMBN STC AMBN JMP TTY /LEAVE FPAMB, 0 0 0 AMBN, 0 /END GETAMB. /ROUTINE TO GET PAN FROM CURSOR 1(2). /SET SNS0=0. GETPAN, SET 16 POT12 LDF 16 SFLOAT 16 FADD FPPAN STORE FPPAN ADD KP1 ADD PANN STC PANN JMP TTY /LEAVE FPPAN, 0 0 0 PANN, 0 /END GETPAN. /ROUTINE TO CALCULATE A SINGLE DEADSPACE. /SET SNS0=1. DEADSP, LDA POT01 ADD KP1000 /AC=POT02 COM ADD POT22 /AC=DT COM ADD POT31 /AC=31-DT STC ENDPT ADD POT11 STC STRPT JMP DOINT LDF 11 STORE 4\5 FADD FPMDS STORE FPMDS ADD KP1 ADD DEADN STC DEADN JMP TTY /LEAVE DEADN, 0 KP1000, 1000 /END DEADSP. /ROUTINE TO SEEK TRIAL MARKER. /EXPECTS A PULSE GREATER THAN 0.5V /IN CHANNEL 1. SEEKT, LDA CURBN ADD KM3 STC CURBN BKTRG3, LDA CURBN ADD KP3 STA CURBN STC BN JMP GET3BN SET I 10 -400 SET I 17 3777 BKTRG, LDF 17 LDA I 17 COM ADD KP377 APO JMP GOTONE LDA I 17 /BUMP BETA 17 LDA I 17 XSK I 10 /DUN ALL? JMP BKTRG /CHK MORE PTS JMP BKTRG3 /NEXT 3 BN GOTONE, CLR ADD 17 BCL I 6377 ROR 1 ADD CURBN ADD KM3 STC CURBN JMP MRE-1 /LEAVE SEEKT KP377, 377 /END SEEKT. /FINAL PROCESSOR HANDLER. PROC, JMP DOCALC LIF 6 JMP TYPO LIF 6 JMP STRIT /RTRN VIA BEG1 /END PROC. /ROUTINE TO DO MAJOR CALCULATIONS. DOCALC, SET 3 0 /FIRST CALCULATE DEAD SPACE & DETERMINE /WHETHER OR NOT TO USE KBD DEAD SPACE. SFLOAT DEADN FDIV FPMDS RECIP FAC STORE FPMDS LOAD FPDSE FMUL FP11HF FSUB FPMDS FAPO JMP USEKBD /MEAN CALC NO GOOD LOAD FPDSE FDIV FP2 FCOMP FADD FPMDS FAPO JMP USEKBD /MEAN NO GOOD LDA I /MEAN IS OK FPMDS JMP .+7 USEKBD, LDF 6 LIF 4 MESOUT 2\MCRLF LIF 4 MESOUT 2\MKBDDS /USE KBD DEAD SPC LDA I FPDSE STA DEAD1 STC DEAD2 /BEGIN MAIN CALCULATIONS. /FIRST SETUP PNTRS & CNTRS. GETENV, SET I 17 2000 /DF12 - TVOL IN PNTR / DF15 - INDIVID ENV OUT SET I 15 3777 /DF20 - N2\BREATH IN PNTR SET I 14 /2ND OUTFILE PNTR 2000 /DF14 - %N & EAV SET I 13 /1ST OUTFILE PNTR 2000 /DF13 - %N PNTR LDA NUMDEP COM STC DEPNUM SET 10 /CNTR DEPNUM /CALCULATE REAL PAN. SFLOAT PANN FDIV FPPAN RECIP FAC JMP FIXCH5 STORE FPPAN FZER STORE FPENV STORE FPEAV STORE FPNUM /FIRST, CALCULATE ACTUAL N2\BREATH. BKENV, LDF 20 SFLOAT /RAW NS\BREATH 4\15 JMP FIXCH5 /X FSUB FP1 LIF 6 JMP TENX / 10^(X-1) STORE FPN2 /%N /STORE %N BY ITSELF AND ALSO ALONG WITH /EAV WHICH WILL BE ADDED IN SECOND FILE /LATER ON DOWN THE CODING. LOAD FP1 FADD FPNUM STORE FPNUM /SEQUENCE /SET UP FOR STORAGE OF 1ST FILE. LDF 13 STORE 4\13 /X(1,2,3,ETC.) LOAD FPN2 STORE 4\13 /Y(%N) /SET UP FOR STORAGE OF 2ND FILE. LDF 14 STORE 4\14 /X(%N) /CONTINUE CALCULATION. /GET CF, THEN EV. / CF = 1.11273 / - 0.0014900837 * %N / - 0.00000101175 * %N^2 / / EV = TVOL * CF /FIRST CF. FMUL FPZZZ /0.00000101175 FADD FPZZ1 /0.0014900837 FMUL FPN2 /%N FCOMP FADD FP111 /1.11273 /NOW EV. LDF 12 FMUL 17 /TVOL*CF=EV STORE FPTEMP /NOW CONTINUE, EAV = SUMMED EV - DEAD SPACE. FSUB DEAD1, 0 FADD FPEAV STORE FPEAV /SECOND PART OF 2ND FILE. LDF 14 STORE 4\14 /Y(EAV) /NOW CONTINUE FOR ENV. / ENV = EV * %N/100 LOAD FPTEMP /EV FMUL FPN2 /EV*%N FDIV FPHUN /EV*%N/100 LDF 15 /STORE INDIVID ENV STORE /FOR TRAPPING. 4\17 FADD FPENV /SUMMED ENV STORE FPENV XSK I 10 /MORE BREATHS? JMP BKENV /YES /CONTINUE, GET NB, THEN FRC. / NB = BODY WT IN KG * 2.03 OR 3.02 / FRC = (SUMMED ENV - NB)*100/PAN / - DEAD SPACE /FIRST NB. DOFRC, LOAD FPKG /WEIGHT FMUL FPK /3.02 OR 2.03 /NOW FRC. FCOMP FADD FPENV /SUM ENV - NB FDIV FPPAN FMUL FPHUN FSUB DEAD2, 0 /DEAD SPACE STORE FPFRC /CONTINUE, GET CORRECTED FRC. / CFRC = (RECTAL TEMP + 273.16)*FRC/310.16 DOCFRC, LOAD /CORRECT FRC FPRTMP FADD FP273 /273.16 FMUL FPFRC FDIV FP310 /310.16 STORE FPCFRC /NOW CALCULATE TRAPPING. DOTRAP, SET I 16 /CALCULATE TRAPPING 2000 /INIT VAL SET I 17 2003 /NEXT VAL FZER STORE FPTRAP STC 15 /TRAPPING CNTR ADD DEPNUM ADD KP1 STC 10 /BREATH CNTR BKTRAP, LDF 15 LOAD 4\16 STORE FPTEMP FCOMP FADD 4\17 FAPO SKP JMP TRAP /TRAPPING BKT, XSK I 10 /DUN ALL? JMP BKTRAP /NO TRAP, LDA /YES 15 STC FPTEMP /OCTAL NUM TRAPPED SFLOAT FPTEMP STORE FPTRAP SFLOAT NUMDEP FDIV FPTRAP FDIV FPHUN RECIP FAC STORE FPTRAP JMP 3 /LEAVE /DOCALC BUFFERS. FPN2, 0 0 0 FPK, 0 /3.02 OR 2.03 0 0 FPEAV, 0 0 0 FPENV, 0 0 0 FPNUM, 0 0 0 /DOCALC CONSTANTS. FP1, 0001 /1 2000 0000 FP11HF, 0001 /1.5 3000 0000 FP2, 0002 /2 2000 0000 FPZZZ, 7754 /.00000101175 2076 2673 FPZZ1, 7766 /.0014900837 3032 3565 FP111, 0001 /1.11273 2163 3370 FP273, 0011 /273.16 2104 5076 FP310, 0011 /310.16 2330 5076 FPHUN, 0007 3100 0000 /END DOCALC. /FINAL VALUE BUFFERS. /KBD ENTRY VALUE BUFFERS. FPKG, 0 /RECTAL TEMP 0 0 FPRTMP, 0 /RECTAL TEMP 0 0 FPATMP, 0 /AMBIENT TEMP 0 0 FPHUM, 0 /HUMIDITY 0 0 FPAN2E, 0 /KBD AMB N2 0 0 FPDSE, 0 /KBD DEAD SPACE 0 0 /CALCULATED VALUES. FPAN2, 0 /MSRD AMB N2 0 0 FPMDS, 0 /MEAN DEAD SPACE 0 0 FPFRC, 0 /FRC 0 0 FPCFRC, 0 /CORRECTED FRC 0 0 FRCKG, 0 /FRC\KG 0 0 FPDUR, 0 /DURATION 0 0 FPTRAP, 0 /%TRAPPING 0 0 /END BUFFERS. AAEND5, 0 //END IF 5 ROUTINES. // IF6 ROUTINES. SEGMNT 6 *20 /INITIAL KBD INPUT HANDLER. D0, QUES, LIF 4 INTRACT CJ0 M0 /PROGRAM FRC / DESORBED N2: /DOG=3.02 ML\KG /MAN=2.03ML\KG CJ0, T1 J0 J0, JMP LVQUES /CR JMP .+1 LDF 5 STORE 2\FPK /FIRST BRING IN ASCII IDENTIFIERS. /PRESUMES 8 MAX CHARACTERS. D1, LIF 4 INTRACT CJ1 M1 /SPECIES CJ1, T1 J1 T1, 0 J1, JMP LVQUES /CR JMP .+1 /NUM LDA I 4\M1A-1 JMP MOVE D2, LIF 4 INTRACT CJ2 M2 /I.D. NUMBER CJ2, T1 J2 J2, JMP LVQUES /CR JMP .+1 /NUM LDA I 4\M2A-1 JMP MOVE D3, LIF 4 INTRACT CJ3 M3 /CONTROL NUMBER CJ3, T1 J3 J3, JMP LVQUES /CR JMP .+1 /NUM LDA I 4\M3A-1 JMP MOVE /NOW BRING IN FP VALUES. SET I 6 /CNTR -6 SET I 12 /TBL PNTR ASKTBL-1 BKVAL, LDA I 12 STC MESG LDA I 12 STC PNTR5 D4, LIF 4 INTRACT CJ4 MESG, 0 /M4-9 CJ4, T1 J4 J4, JMP LVQUES /CR JMP .+1 /NUM LDF 5 STORE PNTR5, 0 XSK I 6 JMP BKVAL LVQUES, LIF 5 /LEAVE QUES JMP BEG2 /ROUTINE TO MOVE 8 ASCII CHARACTERS FROM /INBUF TO M1A,M2A, OR M3A. FILLS NON ENTERED /LOCATIONS WITH SPACES. MOVE, SET 3 0 STC OUTM SET I 10 -10 /8 CHARACTERS SET I 4 4\INBUF-1 SET I 5 OUTM, 0 /4\M?A-1 XFRIT, LDF 4 LDH I 4 SAE I 45 SKP JMP STUFIT STH I 5 XSK I 10 JMP XFRIT JMP 3 /LEAVE STUFIT, LDA I 40 STH I 5 XSK I 10 JMP .-2 JMP 3 /LEAVE /END MOVE. /TABLE OF MESSAGE & STORAGE PNTRS. ASKTBL, M4 /BODY WEIGHT 2\FPKG M5 /RECTAL TEMP 2\FPRTMP M6 /AMBIENT TEMP 2\FPATMP M7 /REL HUMIDITY 2\FPHUM M8 /KBD AMBIENT N2 2\FPAN2E M9 /KBD DEAD SPACE 2\FPDSE /END QUES & ITS SUBROUTINES. /MESSAGES. M1, TEXT &SPECIES:& 4543 M1A, 00 00 00 00 4543 M2, TEXT &I.D. NUMBER:& 4543 M2A, 00 00 00 00 4543 M3, TEXT &CONTROL NUMBER: & 4543 M3A, 00 00 00 00 4543 M4, TEXT &BODY WEIGHT:& 4543 M5, TEXT &RECTAL TEMP:& 4543 M6, TEXT &AMBIENT TEMP: & 4543 M7, TEXT &RELATIVE HUMIDITY:& 4543 M8, TEXT &KBD AMBIENT N2: & 4543 M9, TEXT &KBD DEAD SPACE: & 4543 M10, TEXT &MEASURED AMBIENT N2:& 4543 M11, TEXT &MEASURED DEAD SPACE:& 4543 M12, TEXT &MEAN DEAD SPACE:& 4543 M13, TEXT &FRC:& 4543 M14, TEXT &CORRECTED FRC:& 4543 M15, TEXT &FRC PER KG: & 4543 M16, TEXT &DURATION: & 4543 M17, TEXT &TRAPPING: & 4543 M18, TEXT &PERCENT TRAPPING: & 4543 M0, TEXT &PROGRAM FRC & 4543 TEXT &DESORBED N2:& M00, TEXT &START BN: & MKBDDS, TEXT &USING KBD DEAD SPACE& 4543 /END MESSAGES. /ROUTINE TO STORE TWO NUMFILES. /FIRST IS STRING OF %N AND SECOND IS /%N ALTERNATING WITH SUMMED EAV. STRIT, LIF 4 /ASK OUTPUT TAPES OUTUNITS LDF 5 /SETUP PBLOCK SFLOAT 2\NUMDEP /N LDF 17 STORE P20 /PBLOCK N ADD C1 STA P17 /DIMENSION ADD C2 STA P1 /3=FP NUMBERS CLR COM STA P0 /DATA TYPE LDF 4 LDA I 7117 STA WORD1 /PBLOCK /NOW STORE %N FILE. DNAM1, LIF 4 INTRACT CJNAM1 MNAM1 CJNAM1, TNAM1 JNAM1 TNAM1, 0 JNAM1, JMP LVSTOR /CR JMP .+1 /NUM LDF 4 STA FILNAM+1 /NUM LDA INBUF STA FILNAM LDA I 4413 STA WORD2 /DATA JMP STR1 FLTP1, LIF 4 OUTUNITS STR1, LIF 4 MSTORIT JMP FLTP1 /TAPE FULL /GO STORE SECOND FILE. DNAM2, LIF 4 INTRACT CJNAM2 MNAM2 /N2 & EAV FILENAME CJNAM2, TNAM1 JNAM2 JNAM2, JMP LVSTOR /CR JMP .+1 /NUM LDF 4 STA FILNAM+1 /NUM LDA INBUF STA FILNAM /NAM LDA I 4414 STA WORD2 /DATA CLR ADD C2 LDF 17 STA P17 /DIMENSION JMP STR2 FLTP2, LIF 4 OUTUNITS STR2, LIF 4 MSTORIT JMP FLTP2 LVSTOR, LIF 5 JMP BEG1 /EXIT STORIT MNAM1, TEXT &N2 FILE NAME: & MNAM2, TEXT &N2 AND EAV FILE NAME: & C1, 1 C2, 2 /END STORIT. /MESSAGE AT END OF UNIT 2. AEND, LIF 4 MESOUT MEND LIF 5 JMP TTY /LEAVE MEND, TEXT &END OF UNIT 2 & 4543 /END AEND. /ROUTINE TO PROVIDE TYPEOUT OF CALCULATIONS. TYPO, LDA 0 STC TYPOX /FIRST TYPE OUT ASCII STUFF. CRLF CRLF LIF 4 MESOUT M1 LIF 4 MESOUT M1A CRLF LIF 4 MESOUT M2 LIF 4 MESOUT M2A CRLF LIF 4 MESOUT M3 LIF 4 MESOUT M3A /NOW TYPE OUT CALCULATED STUFF. SET I 17 PNTRS-1 SET I 10 -15 /13(10) BKTYP, LDA I 17 STC MSG /M4-17 LDA I 17 STC .+3 LDF 5 LOAD 0 LDA I 17 STC .+2 SETWRD 0 OUTPUT MTYP CRLF LIF 4 MESOUT MSG, 0 LIF 4 MESOUT MTYP XSK I 10 JMP BKTYP /NOW TYPE OUT INDIVIDUAL DEAD SPACE VALUES. ATYP, CRLF LIF 4 MESOUT M11 /MSRD DEAD SPACES LDF 5 LDA 2\DEADN COM STC 10 /CNTR SET I 16 2000 /PNTR LDF 11 BKD, LOAD 4\16 SETWRD 1044 OUTPUT MDED LIF 4 MESOUT MDED XSK I 10 JMP BKD LIF 5 TYPOX, 0 /LEAVE TYPO MDED, MTYP, 00 00 00 00 MCRLF, 4543 PNTRS, M4 /BODY WEIGHT 2\FPKG 1043 M5 /RECTAL TEMP 2\FPRTMP 1043 M6 /AMBIENT TEMP 2\FPATMP 1043 M7 /REL HUMIDITY 2\FPHUM 1043 M8 /KBD AMB N2 2\FPAN2E 1043 M9 /KBD DEAD SPACE 2\FPDSE 1044 M10 /AMBIENT N2 MEASURED 2\FPAN2 1043 M13 /FRC 2\FPFRC 1043 M14 /CORRECTED FRC 2\FPCFRC 1043 M15 /FRC\KG 2\FRCKG 1044 M16 /DURATION 2\FPDUR 1042 M17 /% TRAPPING 2\FPTRAP 1043 M12 /MEAN DEAD SPACE 2\FPMDS 1044 /END PNTRS. /ROUTINE TO TYPEOUT A CRLF. CRLF=JMP . SET 4 0 LIF 4 MESOUT MCRLF JMP 4 /LEAVE /END CRLF. /END TYPO. /ROUTINE TO CALCULATE POWERS OF TEN. TENX, STORE XFAC ADD 0 STC TENXX FIX FAC ISTOR1 XNET SFLOAT XNET FCOMP FADD XFAC STORE XFAC /10^X, WHERE 0