/JSB 15/1/71 SCP6P1, /GAIN AND SHIFT /CALL GET WITH BEAM TABLE ADDRESS IN NEXT LOC / GET / ATAB / ..... /ATAB, ADR / ROT /-1 FOR SIGNED NUMS /-2 FOR SLAVE / MLT /100 FULL SCREEN /BMTBL ADDR OF MASTER / SHFT /100 FULL SCREEN / OLD /STORE FOR DSCHN *SCP6P1 GETSR, 0 CLA MQL TAD I GETSR DCA DSPNT TAD I DSPNT DCA GETEM /ADDRESS GTRDLP, ISZ DSPNT TAD I DSPNT /ROTATE ISZ DSPNT IAC SNA JMP SIG /ROT=-1 SO SIGNED NO CMA SZA JMP UNSIG TAD I DSPNT DCA DSPNT /ROT=-2 SO SLAVE JMP GTRDLP UNSIG, IAC TAD I GETEM CLL IAC JMP GETIN1 SIG, TAD I GETEM SPA CIA CML GETIN1, DCA MULR DCA GETEM /SIGN FLAG TAD I DSPNT SPA CIA CML SZL ISZ GETEM MQL MUY MULR, 0 DCA TMHI TAD GETEM RAR TAD TMHI SZL CMA DCA TMHI MQA SNL JMP DSPOS CLL CIA SZL ISZ TMHI /OVERFLOW NOP DSPOS, DCA GETEM /LOW END MQL ISZ DSPNT /SHIFT TAD I DSPNT ASR 1 DCA SHFTHI CMA TAD I GETSR ISZ GETSR TAD DCMVNM /LEAVE DSPNT AT OLD DCA DSPNT MQA CLL TAD GETEM MQL RAL TAD TMHI TAD SHFTHI ASR 3 SNA /ANYTHING LEFT IN AC? JMP .+4 SMA CLA /LIMIT TO 0000 CMA /OR 7777 SKP MQA JMP I GETSR GETEM, 0 TMHI, 0 SHFTHI, 0 DSPNT, 0 /........................... /DISPLAY CHANNELS /CALL: / JMS DSCNIN /INITIALISATION /DSCEN, 0 /RE-ENTRY ADDE/RESS / ... / JMS I DSCEN /DISPLAY DSCNIN, 0 /INITIALISE CLA TAD FSTLNP DCA LRNGI DCPTPN, NOP /OR SKP FOR PLOT JMP DSCNSR-1 JMS DSCNSR /DO FLYBACK FSET /PENDOWN TCHAR TCHAR JMS I DSCNIN DSCNSR, 0 /MAIN ROUTINE CLA TAD BMTBAD DCA CHANAD DCA CHANO DCIN, SWSKBT CHANO, 0 JMP DCLOP JMS GETSR CHANAD, 0 DCA Y2 TAD I DSPNT DCA Y1 TAD Y2 DCA I DSPNT JMS I LRNGI /LRANGL OR FSTLN DCLOP, TAD CHANAD TAD DCMVNM DCA CHANAD ISZ CHANO TAD CHANO CIA TAD CHANUM SZA CLA JMP DCIN TAD LRANGA DCA LRNGI JMP I DSCNSR Y1, 0 Y2, 0 BMTBAD, BMTBL CHANUM, 14 DCMVNM, 5 SWSKBT=JMS I . SWSBSR FSTLNP, FSTLNS LRANGA, LRNGSR LRNGI, LRNGSR *SCP6P1+200 /RECTANGULAR INTERPOLATION SR /CALL PERPERP / LOC /ADDRESS OF FIRST NUMBER,FOLLOWED BY SECOND /PRPEN, 0 /RE-ENTRY ADDRESS / DAX /OR WHATEVER / JMS I PRPEN /GO BACK FOR MORE PRPRSR, 0 CLA CLL TAD I PRPRSR ISZ PRPRSR DCA C2 TAD I C2 ISZ C2 DCA C1 TAD I C2 DCA C2 TAD C1 CIA TAD C2 SNA JMP LAST+1 /SAME SNL CIA DCA MOD /MOD:=MOD(C2-C1) TAD STEPSZ SNL CIA DCA STEP /STEP:=SGN(C2-C1)*STEPSZ TAD MOD MQL DVI STEPSZ, 14 DCA RMDR MQA CMA DCA STPCNT TAD STEPSZ DCA CNTNUM JMP PRPIN PRPLOP, TAD C1 TAD STEP DCA C1 TAD C1 JMS I PRPRSR 0 CLA PRPIN, ISZ STPCNT SKP JMP LAST JMP PRPLOP LAST, TAD RMDR DCA CNTNUM TAD C2 JMS I PRPRSR LSTRTN, 0 JMP I LSTRTN C1, 0 C2, 0 MOD, 0 STEP, 0 RMDR, 0 STPCNT, 0 CNTNUM, 0 /FOR USE BY PLOT SR /EDIT PAGE4 /LRANGL DRAW AN ANGLE FROM X1Y1 TO X1Y2 TO X2Y2 LRNGSR, 0 CLA TAD I PRPENX-1 /X1 DAX JMS I PRPRPI Y1 PRPENY, 0 DAY JMS I DSPTI JMS I PRPENY JMS I PRPRPI X1 PRPENX, 0 DAX JMS I DSPTI JMS I PRPENX JMP I LRNGSR PRPRPI, PRPRSR DSPTI, DSPTSR DSPTSR, 0 SFSF JMP .-1 CLA SIP JMP I DSPTSR /DISPLAYING THE FIRST LINE OF A SWEEP FSTLNS, 0 TAD I Y2I DAY CLA JMS I PRPRPI X1 FLPRPE, 0 DAX JMS I DSPTI JMS I FLPRPE JMP I FSTLNS Y2I, Y2 PSC1, SWSBSR, 0 /SKIP ON GIVEN SWITCH WORD BIT DCA SWTM TAD I SWSBSR ISZ SWSBSR DCA SWSBSH TAD SWTWRD SHL SWSBSH, 0 CLA TAD SWTM SZL ISZ SWSBSR JMP I SWSBSR PSC2, SWTM, 0 SWTWRD, 0 PSPTSR, 0 /PLOT A POINT FSKP SKP JMS DSPTSR /ONLY BRIGHTUP IF PEN IS DOWN CLA TAD CNTNUM /LEFT BY PRPRP CMA /MAY BE 0 DCA PSC1 JMP PSIN PSLP, TAD PSDLNM CIA DCA PSC2 ISZ PSC2 JMP .-1 PSIN, ISZ PSC1 JMP PSLP MODSR JMP I PSPTSR PSDLNM, 1000 PAUSE *U*'1 *SCP6P1+400 BOT, BTEND TOP, 5000 BOTBOT, BTEND TOPTOP, 7577 BOTM, BTEND TMBSR, 0 /TOP-BOT CLA CLL TAD BOT CMA TAD TOP SNL JMP TPBLBT IAC JMP I TMBSR TPBLBT, TDC 274 /< JMS STTAB JMP TMBSR+1 STTAB, 0 /SET TOP TO TOPTOP,BOT TO BOTM CLA TAD BOTM DCA BOT TAD TOPTOP DCA TOP JMP I STTAB SWPINT, 0 /FOR SWPSR JMS TMBSR /TOP-BOT CIA DCA P3C1 TAD BOT CMA TAD BOTM DCA P3C2 TAD BOTM JMP I SWPINT P3C1, 0 P3C2, 0 RCBINT, 0 /FOR RECBUF TAD BOTBOT DCA BOTM JMS STTAB JMS SWPINT JMP I RCBINT /WITH BOTBOT /.......... /WINDOW CONTROL DIF, 0 DIFSR, 0 JMS TMBSR DCA DIF JMP I DIFSR MVBSR, 0 TAD DIF CLL RAR CIA CLL TAD BOT DCA BOT TAD BOTM CIA TAD BOT SNL CLA JMP I MVBSR TAD BOTM DCA BOT TDC 207 JMP I MVBSR MVTSR, 0 TAD DIF CLL RAR CLL TAD TOP DCA TOP TAD TOP CIA TAD TOPTOP SZL CLA JMP I MVTSR TAD TOPTOP DCA TOP TDC 207 JMP I MVTSR WNDWMV, 256 /. MOVE SIGNAL RIGHT JMS DIFSR JMS MVBSR TAD DIF TAD BOT DCA TOP 5777 254 /, MOVE SIGNAL LEFT JMS DIFSR JMS MVTSR TAD DIF CIA TAD TOP DCA BOT 5777 255 /- MINIFY JMS DIFSR JMS MVBSR JMS MVTSR 5777 273 /; MAGNIFY JMS DIFSR TAD DIF CLL RAR CLL RAR DCA DIF TAD DIF TAD BOT DCA BOT TAD DIF CIA TAD TOP DCA TOP 5777 240 /SPACE DISPLAY 5777 274 /< FIX BOTM AT BOTBOT TAD BOTBOT DCA BOTM 5777 276 /> FIX BOTM AT BOT TAD BOT DCA BOTM 5777 5777 *SCP6P1+577 EXKBEX /............ *SCP6P1+600 /SCOPE6 KEYBOARD CONTROL /JSB 71/2/12/08.45 /EXECUTE SINGLE KEY OPERATIONS /CALL (ASCII CODE IN AC) / JMS EXKBSR / TABLE / /TABLE, 301 / MACHINE CODE FOR 'A' / 5777 / 302 / MACHINE CODE FOR 'B' / 5777 / 5777 EXKBSR, 0 DCA EXKBT2 TAD I EXKBSR ISZ EXKBSR DCA EXKBT1 JMP EXKBIN EXKBBK, TAD EXKBT2 CIA TAD I EXKBT1 ISZ EXKBT1 SZA CLA JMP EXKBLP KCC JMP I EXKBT1 /CODE FOUND EXKBLP, TAD I EXKBT1 ISZ EXKBT1 TAD EXKBNM SZA CLA JMP EXKBLP /NOT 5777 EXKBIN, TAD I EXKBT1 TAD EXKBNM SZA CLA JMP EXKBBK ISZ EXKBSR TAD EXKBT2 EXKBEX, JMP I EXKBSR /EXIT ON DOUBLE JUMP EXKBNM, -5777 /JMP I ENDOFPAGE EXKBT1, 0 /TABLE POINTER EXKBT2, 0 /GIVEN CODE /TIME BASE SR /ENTER WITH NUMBER OF POINTS STTBSR, 0 /SET TIME BASE DCA NMPNTS TAD NMPNTS DCA DVSR1 CMA /WORK OUT DP INCREMENT FOR X MQL DVI DVSR1, 0 DCA DVSR1 /REMEMBER REMAINDER MQA DCA XINCHI TAD DVSR1 DVI NMPNTS, 0 CLA MQA DCA XINCLO DCA X2 /START TMBS AT 0 DCA X2+1 TAD X1FST DCA X1 /FOR PLOTTER JMS I STTBSR DOTMSR, 0 /INCREMENT X CLA CLL TAD X2 DCA X1 TAD X2+1 TAD XINCLO DCA X2+1 RAL TAD X2 TAD XINCHI DCA X2 SZL ISZ DOTMSR /SKP IF X OVERFLOW JMP I DOTMSR X1, 0 X2, 0 0 XINCHI, 0 XINCLO, 0 X1FST, 700 /.......... /CONTROLLING A SWEEP SWEPSR, 0 /SWEEP, WITH CODLOC AND SWITCHWORD ARGUMENTS CLA TAD I SWEPSR DCA TEM2 TAD I TEM2 DCA CODLOC ISZ SWEPSR TAD I SWEPSR DCA TEM2 TAD I TEM2 DCA I SWTWDP ISZ SWEPSR JMS I TMBSP /GET (TOP-BOT) JMS I STTBSP /SET TIMEBASE DTMBEN, 0 JMS I SWPINI DCA STRPNT JMS I CODLOC CODIN, 0 JMP SWPIN SWPLP1, JMS DOCOD MODSR SWPIN, ISZ I P3C2I JMP SWPLP1 JMS I DSCNIP /INITIALISE DISCHAN DSCNEN, 0 SWPLP2, JMS I DTMBEN JMS I DSCNEN JMS DOCOD MODSR ISZ I P3C1I JMP SWPLP2 JMP I SWEPSR TEM2, 0 SWTWDP, SWTWRD DOCOD, 0 /DO CODEC TAD I STRPNT DCA INPUT TAD INPUT JMS I CODIN ISZ STRPNT DCA OUTPUT JMP I DOCOD STRPNT, 0 CODLOC, 0 INPUT, 0 OUTPUT, 0 DSCNIP, DSCNIN SWPINI, SWPINT STTBSP, STTBSR TMBSP, TMBSR P3C2I, P3C2 P3C1I, P3C1 PAUSE x*U*  *SCP6P1+1000 /PAGE 5 CODADR, 2200 CMND=JMS I . EXKBSR SETSWP, 0 SFSF SKP SONE MODSR SFSF JMP .-2 LAS CLL RAR DCA SWTWD1 JMP I SETSWP MODA, 0 KSF JMP I MODA KRS CMND WNDWMV JMP ASWP TOOLSR JMP I MODA MODE, MODSR JMP .-1 ASWP, JMS SETSWP SWEEP CODADR SWTWD1 MODGO SWEEP=JMS I . SWEPSR MODSRP=34 MODSR=JMS I MODSRP MODGO=JMP MODE MODB, 0 LAS RTR SZL CLA JMP RECBUF KSF JMP I MODB KRS CMND WNDWMV JMP BSWP TOOLSR JMP I MODB BSWP, JMS SETSWP SWEEP NULCOD SW4000 /DISPLAY INPUT ONLY MODGO NULCOD, NULINT SWTWD1, 0 SW4000. 4000 NULINT, 0 /NULL CODEC JMS I NULINT NULRET, 0 JMP I NULRET MODAGO, CLA TAD MODAA DCA 34 SIP MODGO MODBGO, CLA TAD MODBA DCA 34 SIP MODGO MODAA, MODA MODBA, MODB SW4000, /............... /RECORD MODE DS4000, 4000 /USED AS SW4000 ALSO /RECBUF RECBUF, CLA DCA XCD SOFF ADRB ISZ XCD JMP .-1 /WAIT RCBLP1, GETSAM DISSIG TOOLSR LAS RTR SZL CLA JMP RCBLP1 DCA XCD JMS I RCBINI TAD NRM1 DCA 10 RCBLP2, GETSAM DCA RCBTM TAD RCBTM DCA I 10 TAD RCBTM DISSIG ISZ I P3C1RI JMP RCBLP2 SFSF JMP .-1 JMP BSWP RCBINI, RCBINT P3C1RI, P3C1 RCBTM, 0 NRM1, -1 XCD, 0 XINC, 20 GETSAM=JMS I . GTSMSR DISSIG=JMS I . DSSGSR GTSMSR, 0 ADSF JMP GTSMIN TSF SKP TLS ADRB GTSMIN, ADSF JMP .-1 CLA ADRB JMP I GTSMSR DSSGSR, 0 TAD DS4000 DAY CLA CLL TAD XCD DAX SIP TAD XINC SZL CLA DCA XCD JMP I DSSGSR /............ /PLOTTER CONTROL *SCP6P1+1200 /PLMDGO* TO PLOT THE CURRENT PICTURE PLMDGO, CLA TAD PSPSA DCA I DSPSPA /PLOT POINTS TAD CSKP DCA I DSCNSA /CHANGE DSCHN TO DO FLYBACK DCA MSKWD TAD I SWTWPP DCA SWTWSV /SAVE THE SWTWD USED LAST TIME TAD MODSRP DCA MODSAV /SAVE MODE TAD MODPA DCA MODSRP /SET PLOT MODE CLA STL JMP PLMIN1+1 PLMLP1, TAD SWTWSV AND MSKWD SNA JMP PLMIN1 DCA PLMSW SWEEPP CODLOC /SAME CODEC AS LAST TIME PLMSW /SPECIAL ONE-BIT SWITCHWORD FCLR TCHAR TCHAR PLMIN1, CLL CLA TAD MSKWD RAR DCA MSKWD SNL JMP PLMLP1 JMP PLTOFF KCC PLTOFF, CLA /EXIT FROM PLOT MODE FCLR TCHAR TCHAR CLA CMA /PARK PEN IN TRH CORNER DAX DAY TDC 207 CLA TAD DSPTSP DCA I DSPSPA /RESET DISPLAY POINT TAD CNOP DCA I DSCNSA /RESET DSCHN TAD SWTWSV DCA I SWTWPP /RESTORE SWITCH WORD TAD MODSAV DCA MODSRP /RESTORE MODE JMP I MODIP /GO TO MODE MODSAV, 0 SWTWSV, 0 MSKWD, 0 PLMSW, 0 DSPSPA, DSPTI DSPTSP, DSPTSR PSPSA, PSPTSR CSKP, SKP CNOP, NOP DSCNSA, DCPTPN SWTWPP, SWTWRD MODIP, MODE SWEEPP=JMS I . SWEPSR MODPA, MODP MODP, 0 /PLOT MODE SR KSF JMP I MODP JMP I SRC SRC, NEWLN+2 /OR SLASH JMP I MODP NEWLN, LINE JMS SRC KRS CHECK 257 // JMP SLASH CHECK 203 /CONT. C JMP PLTOFF-1 LAS RAR SNL CLA /CLEAR KB F IF SR11 DOWN KCC JMP NEWLN+1 JMS SRC SLASH, RTCHAR CHECK 215 JMP NEWLN JMP SLASH-1 /IGNORE UNTIL NEXT CR /BEAM TABLE *.+10 BTZ, 0 /ZERO FOR BEAMS TO LOOK AT BMTBL, INPUT /BEAM ZERO -1 /SIGNED 20 /SCALE 40 /MID SCREEN 0 /FOR OLD BM1, INPUT -1 10 60 0 BM2, OUTPUT -1 10 40 0 BM3, BTZ -1 10 34 0 BM4, BTZ -1 10 32 0 BM5, BTZ -1 10 30 0 BM6, BTZ -1 10 26 0 BM7, BTZ -1 10 24 0 BM8, BTZ -1 10 22 0 BM9, BTZ -2 /SLAVED BM11 /TO BM11 20 0 BM10, BTZ -2 /SLAVED BM11 /TO BEAM11 16 0 BM11, BTZ -1 /SIGNED 40 20 0 BTEND, /TOOL TABLE TAGTAB=577 ER=631 *TAGTAB BM1 /A BM2 /B BM3 /C BM4 /D BM5 /E BM6 /F BM7 /G BM8 /H BM9 /I BM10 /J BM11 /K ER /L MODAGO /M ER /N ER /O ER /P ER /Q MODBGO /R ER /S ER /T ER /U ER /V ER /W ER /X ER /Y ER /Z $$$$$$$$$$V