100 DCA CURY /SAVE THEM 110 DLD; LCTEMP /GET Y POINTER 120 DAD; L2 /POINT TO MODEM WORD 130 DST; LCTEMP /STASH IT 140 LOAD; LCTEMP /GET MODEM WORD 150 XLIST OFF 160 IFNZRO MODEM < 170 XLIST ON 180 AND [400] /JUST MODEM CHARACTER BIT 190 SNA CLA /SKIP IF PRESENT 200 JMP NOMODEM /JUMP IF NOT 210 LOAD; LCTEMP /GET MODEM WORD AGAIN 220 AND [377] /JUST THE CHARACTER BITS 230 DCA MTEMP /SAVE IT FOR OTHERS 240 TAD MTEMP /GET IT BACK 250 JMP I MODNXT /GOTO WHOMEVER 260 270 NOMODEM,LOAD; LCTEMP /GET THE MODEM WORD 280 XLIST OFF > 290 XLIST ON 300 AND [4000] /JUST SLOW-PHASE BIT 310 DCA LCTEMP /SAVE IT 320 NL2000 /SET MAXIMUM VELOCITY BIT MASK 330 AND CURY /ISOLATE IT 340 TAD LCTEMP /ADD ON SLOW-PHASE BIT 350 DCA LCTEMP /SAVE COMPOSITE 360 NL4000 /SET END MASK 370 AND CURY /ISOLATE END BIT 380 RAR;RTR /MOVE TO BIT[3] 390 TAD LCTEMP /ADD ON COMPOSITE 400 DCA LCTEMP /SAVE IT BACK 410 NL2000 /SET BLINK BIT MASK 420 AND CURX /ISOLATE THE BIT 430 RAR /MOVE TO BIT[2] 440 TAD LCTEMP /ADD ON COMPOSITE 450 DCA LCTEMP /SAVE IT BACK 460 EJECT 470 NL4000 /SET BEGIN BIT MASK 480 AND CURX /ISOLATE IT 490 RTR;RTR /MOVE TO BIT[4] 500 TAD LCTEMP /NOW HAVE COMPLETE COMPOSITE 510 XLIST OFF > 520 XLIST ON 530 DCA CURVAL /SAVE IT 540 TAD CURVAL /GET IT BACK 550 AND [7600] /ANYTHING INTERESTING? 560 SZA CLA /SKIP IF NOT 570 JMP I LOCATE /RETURN IF SO 580 XLIST OFF 590 IFNZRO CHAN < 600 XLIST ON 610 LOCNEXT,DLD; L2 /GET BUMP FACTOR 620 XLIST OFF > 630 IFZERO CHAN < 640 XLIST ON 650 LOCNEXT,DLD; L4 /GET BUMP FACTOR 660 XLIST OFF > 670 XLIST ON 680 DAD; CURPTR /UPDATE POINTER 690 DST; CURPTR /STASH IT 700 JMP LCNEXT /TRY AGAIN 710 720 TIMFRC, .-. /GET FRACTIONAL TIME ROUTINE 730 CLA /CLEAN UP 740 TAD I TIMFRC /GET THE ARGUMENT 750 DCA TIMAR1 /SET IT UP 760 NL0002 /GET THE OFFSET 770 TAD TIMAR1 /NOW POINTS TO DESTINATION 780 DCA TIMAR2 /STASH IT FOR LATER 790 ISZ TIMFRC /BUMP PAST ARGUMENT 800 XLIST OFF 810 IFNZRO CHAN < 820 XLIST ON 830 LOAD; TIMAR1, .-. /GET THE FRACTION 840 XLIST OFF 850 IFZERO EAESET < 860 XLIST ON 870 LSR; 7-1 /MOVE DOWN 880 XLIST OFF > 890 IFNZRO EAESET < 900 XLIST ON 910 LSR; 7 /MOVE DOWN 920 XLIST OFF > 930 XLIST ON 940 XLIST OFF > 950 IFZERO CHAN < 960 XLIST ON 970 DLD; TIMAR1, .-. /GET ARGUMENT ADDRESS 980 DAD; L2 /UPDATE TO SPIKE WORD 990 DST; FNDTMP /STASH IT 1000 LOAD; FNDTMP /GET THE TIME 1010 AND (3777) /JUST TIME BITS 1020 XLIST OFF 1030 IFZERO PDP12 < 1040 IFNZRO EAESET < 1050 XLIST ON 1060 MQL DVI;(144) /DIVIDE BY 100 1070 XLIST OFF > 1080 IFZERO EAESET < 1090 XLIST ON 1100 MQL DVI;144 /DIVIDE BY 100 1110 XLIST OFF > > 1120 IFNZRO PDP12 < 1130 IFNZRO EAESET < 1140 XLIST ON 1150 MQL DVI;(50) /DIVIDE BY 40 1160 XLIST OFF > 1170 IFZERO EAESET < 1180 XLIST ON 1190 MQL DVI;50 /DIVIDE BY 40 1200 XLIST OFF > > 1210 XLIST ON 1220 CLA MQA /GET THE RESULT 1230 XLIST OFF > 1240 XLIST ON 1250 AND [17] /JUST TIMING BITS 1260 MQL /MOVE TO LOW-ORDER 1270 DST; TIMAR2, .-. /STORE IN FRACTIONAL DESTINATION 1280 CAM /CLEAN UP 1290 JMP I TIMFRC /RETURN 1300 1310 PAGE 1320 EJECT