100 XLOAD, .-. /LOAD DATA SUB-ROUTINE 110 CAM /CLEAN UP 120 TAD I XLOAD /GET ARGUMENT ADDRESS 130 DCA ADDR /STASH IT 140 DLD; ADDR, .-. /GET THE ARGUMENT VALUE 150 DST; DBLTMP /STASH IT 160 LSR; 7 /%200 170 MQA /GET REQUESTED BLOCK 180 DCA NEWBLK /SAVE IT 190 TAD NEWBLK /GET IT BACK 200 TAD BLKLIM /COMPARE TO RESIDENT BLOCK 210 CLL /CLEAR LINK FOR TEST 220 TAD [BUFLEN] /ADD ON RESIDENT LENGTH 230 SNL /SKIP IF PRESENT NOW 240 JMP NOTHERE /JUMP IF NOT 250 BSW /MOVE UP RELATIVE BLOCK 260 CLL RAL /FORM PAGE ADDRESS 270 DCA ADDR /SAVE IT 280 TAD DBLTMP /GET ORIGINAL REQUEST 290 AND [177] /JUST PAGE BITS 300 TAD ADDR /NOW HAVE RESIDENT ADDRESS 310 DCA ADDR /SAVE IT 320 STA /-1 330 TAD ADDR /GET STARTING ADDRESS 340 DCA XR7 /STASH IT 350 CDF BUFFLD /GOTO BUFFER FIELD 360 TAD I XR7 /GET X-WORD 370 DCA XWORD /SAVE IT 380 TAD I XR7 /GET Y-WORD 390 DCA YWORD /SAVE IT 400 TAD I XR7 /GET TIME-WORD 410 DCA TMWORD /SAVE IT 420 TAD I XR7 /GET MODEM-WORD 430 DCA MDWORD /SAVE IT 440 TAD XWORD /GET X-WORD AGAIN 450 CDF 00 /BACK TO FIELD 0 460 ISZ XLOAD /BUMP PAST ARGUMENT 470 JMP I XLOAD /RETURN 480 EJECT 490 NOTHERE,JMS DUMPIT /DUMP OUT THE BUFFER 500 TAD DIRECT+1 /GET DIRECTION 510 SMA CLA /SKIP IF BACKWORDS 520 TAD [-20] /BACKUP IF FORWARDS 530 TAD NEWBLK /ADD ON LATEST BLOCK 540 AND [7760] /JUST BUFFER BITS 550 DCA NEWBLK /SAVE FOR LATER 560 TAD NEWBLK /GET IT BACK 570 TAD [BUFLEN] /ESTABLISH NEXT LIMIT BLOCK 580 CLL CIA /INVERT FOR TESTING LATER 590 MQL /SAVE IT 600 MQA /GET IT BACK 610 TAD HIBLK /COMPARE TO DATA LIMIT 620 SNL CLA /SKIP IF OK 630 JMP I DONE /EXIT IF NOT 640 MQA /GET VALUE BACK 650 DCA BLKLIM /SAVE AS NEXT RESIDENT LIMIT 660 TAD NEWBLK /GET LATEST BLOCK NUMBER 670 DCA OLDBLK /SAVE FOR OTHERS 680 JMS I [SYSIO] /CALL I/O ROUTINES 690 0 /READ INTO BUFFLD 0000 700 BUFFLD+UNIT /40 PAGES 710 NEWBLK, 0 /LATEST BLOCK 720 JMP XLOAD+1 /TRY IT AGAIN, IT'LL WORK THIS TIME! 730 740 INPUT, .-. /INPUT ROUTINE 750 CAM /CLEAN UP FIRST 760 DKSF /FLAG UP? 770 JMP I INPUT /NO, RETURN 780 DKRB /YES, GET THE CHARACTER 790 AND [177] /JUST SEVEN-BIT 800 DCA CHAR /SAVE IT 810 NL7775 /-3 820 TAD CHAR /COMPARE TO INPUT 830 SPA SNA CLA /SKIP IF <^D> OR GREATER 840 JMP QUIT /FORGET IT! 850 TAD CHAR /GET THE CHARACTER 860 JMP I INPUT /RETURN 870 880 QUIT, JMS DUMPIT /MAKE SURE LAST BUFFER IS WRITTEN 890 JMP I [SBOOT] /BYE, BYE! 900 EJECT 910 DUMPIT, .-. /BUFFER DUMP ROUTINE 920 CLA /CLEAN UP 930 ISZ DIRTSW /DID WE WRITE? 940 JMP NOWRITE /NO 950 JMS I [SYSIO] /YES, CALL I/O ROUTINES 960 0 /WRITE OUT BUFFLD 0000 970 WRITE+BUFFLD+UNIT /40 PAGES 980 OLDBLK, 0 /BLOCK TO DUMP 990 NOWRITE,DCA DIRTSW /INDICATE CLEAN BUFFER 1000 JMP I DUMPIT /RETURN 1010 1020 STORE, .-. /STORE ROUTINE 1030 CDF BUFFLD /GOTO BUFFER FIELD 1040 DCA I ADDR /STORE A WORD 1050 CDF 00 /BACK TO FIELD 0 1060 STA /INDICATE 1070 DCA DIRTSW /DIRTY BUFFER 1080 JMP I STORE /RETURN 1090 1100 DOLITE, .-. /LIGHT DISPLAY ROUTINE 1110 TAD MDWORD /GET MODEM WORD 1120 SPA CLA /SKIP IF NOT IN JUMP REGION 1130 TAD (4^20) /SETUP OFFSET FOR JUMP 1140 /TAD BIAS /ADJUST VERTICAL POSITION 1150 JMS I [DSPLA] /OUTPUT A BIT 1160 JMP I DOLITE /RETURN 1170 1180 PAGE 1190 EJECT