Directory of image this file is from
This file as a plain text file
/SMEAT CHECKOUT /DEFINE INSTRUCTIONS NOT INCLUDED IN PAL8 ASSEMBLER FIXMRI FADD=1000 FIXMRI FSUB=2000 FIXMRI FMPY=3000 FIXMRI FDIV=4000 FIXMRI FGET=5000 FIXMRI FMUL=3000 FIXMRI FPUT=6000 FNOR=7000 FEXT=0 FNORM=7000 CLZE=6130 /CLEAR CLOCK ENABLE PER AC CLSK=6131 /SKIP ON CLOCK INTERRUPT CLDE=6132 /SET CLOCK ENABLE PER AC CLAB=6133 /AC TO CLOCK BUFFER CLEN=6134 /LOAD CLOCK ENABLE REGISTER CLSA=6135 /CLOCK STATUS TO AC CLBA=6136 /CLOCK BUFFER TO AC CLCA=6137 /CLOCK COUNTER TO AC /INSTRUCTION DEFINITIONS FOR AD CONVERTER ADSF=6531 /SKIP ON AD DONE FLAG ADRB=6532 /READ AD BUFFER /AND CLEAR AD FLAG ADCV=6534 /CLEARS AD FLAG AND INITIATES A CONVERSION ADSC=6535 /SELECT MULTIPLEXER CHANNEL AND GAIN /CLEARS AD FLAG AND INITIATES A CONVERSION ADRC=6536 /JAM XFER AD TO AC,CLR FLAG,START CONVERSION ADSR=6537 /PUT AC IN MUX REGISTER,CLR AC,PUTS AD BUFFER /IN AC, START ANOTHER CONVERSION GTF=6004 /GET FLAGS SPI=6045 /SKIP ON TELETYPE INTERRUPT MQL=7421 /LOAD MQ FROM AC, CLEAR AC SWP=7521 /SWAP MQ AND AC SKON=6000 /SKIP IF INTERRUPT IS ON SPF=6040 /SET TTO FLAG RTF=6005 /RESTORE FLAGS CLOSE=6142 OPEN=6141 BSW=7002 MOUTH=6151 SPROCT=6152 CAF=6007 EJECT *0 0000 JMP I SERV SERV,600 EXIT,XIT *63 PRINT,MESAGE SAMPLE,AD ACPTR,140 FLGPTR,150 MQPTR,160 PCPTR,170 EJECT *200 CAF /CLEAR FLAGS TLS CLA CLL CMA CLZE CLA CDF 10 TAD K6041 DCA I K7345 TAD K5345 DCA I K7346 CDF 0 TAD TIMER CIA CLAB TAD K3577 DCA 10 TAD K4000 DCA T2 DCA I 10 /CLEAR DATA AREA ISZ T2 JMP .-2 TAD MAN JMS I PRINT JMS FOUR SUBJEC /GET SUBJEC CLA CLL TAD TSTPRT JMS I PRINT JMS FOUR TEST CAIR,JMS CABAIR CLA TAD ACCPT JMS I PRINT JMS LISN TAD M316 SNA JMP CAIR CDF 10 TAD K3410 DCA I K7345 TAD K5744 DCA I K7346 CDF 0 TAD SSTARP JMS I PRINT TAD HDRPT JMS I PRINT CLA DCA VAVVE DCA NVAVVE TAD CLOCK CLDE STLOOP,KSF JMP CLK KRB TAD M323 SNA JMP I TESTST CLK, CLSA SKP JMS I MSC40 JMP STLOOP TIMER,4704 K3577,3577 K4000,4000 MAN,SUBMSG SUBJEC,5767 TSTPRT,TSTMSG TEST,7573 K3410,3410 K7345,7345 K5744,5744 K7346,7346 K6041,6041 K5345,5345 ACCPT,ACCMSG M316,-316 SSTARP,STARMG HDRPT,HDRMSG CLOCK,5510 T2,0 FOUR,JMP . TAD I FOUR DCA EN ISZ FOUR TAD I EN DCA EN JMS LISN1 DCA I EN ISZ EN JMS LISN1 DCA I EN ISZ EN JMS LISN1 DCA I EN ISZ EN JMS LISN1 DCA I EN JMP I FOUR LISN1,0 KSF JMP .-1 KRB TLS JMP I LISN1 EN,0
*1000 MESAGE,JMP . DCA LTRPTR TAD I LTRPTR BSW JMS DECODE TAD I LTRPTR JMS DECODE ISZ LTRPTR JMP MESAGE+2 DECODE,JMP . AND C77 SNA /RIGHT HALF=0? JMP I MESAGE TAD M37 SNA JMP CRLF SPA TAD CS100 TAD C237 JMS TYPER JMP I DECODE CRLF,CLA CLL TAD C215 JMS TYPER CLA CLL TAD C212 JMS TYPER JMP I DECODE TYPER,JMP . TSF JMP .-1 TLS CLA JMP I TYPER C77,77 M37,-37 CS100,100 C237,237 C215,215 C212,212 LTRPTR,0 AD,JMP . ADSC JMP AROUND CLA CMA DCA ON JMP WT AROUND,CLA DCA ON WT,ADSF JMP .-1 ADRB DCA TEMP1 TAD ON SZA JMP OUT TAD TEMP1 JMP I AD OUT,CLA TAD TEMP1 ION JMP I AD ON, 0 TEMP1, 0000 SUBMSG,TEXT Z_SUBJECT CODE_Z TSTMSG,TEXT Z _TEST CODE_Z STARMG,TEXT Z_TYPE S TO START_Z
*600 /THIS IS THE INTERRUPT SERVICE ROUTINE DCA I ACPTR /SAVE AC GTF /GET FLAGS AND FIELDS DCA I FLGPTR SWP /GET MQ DCA I MQPTR /SAVE IT TAD 0 /GET RETURN DCA I PCPTR /SAVE IT ISZ ACPTR ISZ FLGPTR ISZ MQPTR ISZ PCPTR DTSF /DECTAPE FLAG SKP /NO JMP DECSRV /YES, FIX IT CLSK /CLOCK? SKP JMP CLKSRV /YES, FIX IT 6161 /IS IT A HEART BEAT SKP JMP HTINT SPI /TTO? SKP /NO JMP TTO /YES,FIX IT KSF /KEYBOARD? JMP XIT /NO-FAKE INTERRUPT-EXIT JMP KYBD XIT, IOF /TURN OFF INTERRUPT TO GO TO NEXT LOWER CLA TAD OUTFLG SNA JMP NOTYPE CLA TAD TTRDY SNA JMS I YESTYP NOTYPE, CLA CMA TAD ACPTR DCA ACPTR CLA CMA TAD FLGPTR DCA FLGPTR CLA CMA CLL TAD MQPTR DCA MQPTR CLA CLL CMA TAD PCPTR DCA PCPTR TAD I MQPTR MQL /LOAD MQ TAD I PCPTR DCA OUTADD TAD I ACPTR DCA ACDUM TAD I FLGPTR /GET FLAGS RTF /RESTORE THEM CLA TAD ACDUM JMP I OUTADD OUTADD, 0000 CLKSRV,CLA /ROUTINE TO SERVICE CLOCK CLSA SMA /IS OVERFLOW SET JMP XIT /NO ISZ TIME /KEEP TRACK OF TOTAL TIME ISZ PEREND /END OF A STEP SKP /NO JMS I TIMND /YES GO STORE PERIOD VALUES ISZ WLTIM SKP /NOT TIME TO SAMPLE WORK LOAD JMS I WLP CLA CLL /THE ORDER OF THE ABOVE WILL PROBABLY /HAVE TO BE CHANGED TO MAKE THE ROUTINE WORK IN /THE PROPER MANNER TAD PROTFG SNA JMP I COP JMP I O2P TIMND, TIMEND WLP, WL COP, CO O2P, O2 ACDUM, 0 DECSRV, 6762 JMP XIT TTO, TCF CLA CLL DCA TTRDY JMP XIT KYBD, KRB TAD M244 SNA HLT JMP XIT M244, -244 YESTYP, OUTWRT HTINT, 6164 ISZ HTBTS JMP XIT JMP XIT
/THIS IS THE ROUTINE TO MONITOR SPIROMETER POSITION AND TO /GET THE NECESSARY SAMPLES *1200 O2, CLA CLL TAD SPIRO /ADD SPIRO CHANNEL AND GAIN JMS I SAMPLE /GO SAMPLE IT DCA POS /SAVE IT TAD POS TAD THRESH /ADD NEGATIVE OF THRESHHOLD SPA /ABOVE THRESH? JMP BELOW /NO CLA CLL TAD VALVE /IS VALVE OPEN? SNA JMP THERE /NO CLA /YES TAD SAMFLG /HAVE WE SAMPLED? SNA JMP I EXIT /YES JMP SAM /NO,GO SAMPLE I IS TIME THERE, CLA CLL JMS MOVED /SEE IF SPIROMETER HAS MOVED POSPTR SMA JMP LVE JMS MOVED POSPTR+1 SMA JMP LVE JMS MOVED POSPTR+2 SMA JMP LVE CLA CLL TAD KVALVE DCA VALVE TAD KSAMFG DCA SAMFLG TAD KSAMET DCA SAMET TAD POS DCA SPMAX OPEN JMP I EXIT MOVED, 0000 CLA CLL TAD I MOVED DCA MOVED1 TAD I MOVED1 ISZ MOVED CIA /SUMS POSITION-PREV POS TAD POS /-THRESH TO CHECH TAD POSTHR /FOR STOP JMP I MOVED MOVED1, 0000 LVE, CLA CLL TAD POSPTR+1 DCA POSPTR+2 TAD POSPTR DCA POSPTR+1 TAD POS DCA POSPTR JMP I EXIT SAM, ISZ SAMET /TIME TO SAMPLE JMP I EXIT /NO SAMNTR, CLA ISZ RR DCA SAMFLG TAD SAMO2 JMS I SAMPLE DCA FO2 TAD SAMCO2 JMS I SAMPLE DCA FCO2 TAD SAMN2 JMS I SAMPLE DCA FN2 CLA CMA DCA I FGASPT JMP I EXIT FGASPT, FGASFG BELOW, CLA CLL TAD VALVE SNA JMP I EXIT CLOSE CLA DCA VALVE DCA POSPTR DCA POSPTR+1 DCA POSPTR+2 TAD SAMFLG SNA JMP I EXIT JMP SAMNTR SPIRO, 0006 /SPIROMETER AD CTRL WD POS, 0000 THRESH,-15 /BE OPENED SAMO2, 0100 /AD CTRL WD FOR O2 FO2, 0000 /SAMPLED O2 VALUE SAMCO2, 0204 /AD CTRL WD CO2 FCO2, 0000 /SAMPLED CO2 SAMN2, 0102 /AD CTRL WD FOR N2 FN2, 0000 /SAMPLED N2 POSTHR,-1 KSAMET, -12 /WAIT 12 INTERVALS TO SAM GASES SAMET, 0000 /TIME TO SAMPLE? KSAMFG, 1111 SAMFLG, 0000 /HAVE WE SAMPLED? KVALVE, 1111 VALVE, 0000 /IS VALVE OPEN POSPTR, 0 0 0 SPMAX, 0000 EJECT *1400 MESAGE, 0000 DCA LTRPTR TAD I LTRPTR BSW JMS DECODE /PRINT LEFT HALF TAD I LTRPTR /GET AGAIN JMS DECODE /PRINT RIGHT HALF ISZ LTRPTR /INCREMENT POINTER JMP MESAGE+2 DECODE, 0000 AND C77 SNA /RIGHT HALF=0? JMP I MESAGE /YES TAD M37 /ADD MINUS 37 SNA /EQUAL? JMP CRLF /YES SPA /NO,GREATER THAN 37 TAD CS100 /NO,ASCII CHARACTER IS 3XX TAD C237 /FORM ASCII CHARACTER JMS TYPER JMP I DECODE CRLF, CLA CLL TAD C215 JMS TYPER CLA CLL TAD C212 JMS TYPER JMP I DECODE TYPER, 0 TSF JMP .-1 TLS CLA JMP I TYPER C77, 77 M37, -37 CS100, 100 C237, 237 C215, 215 C212, 212 LTRPTR, 0