/SCOPE JSB 15/1/71 CDN 6/9/72 *1000 SCP6P1, /GAIN AND SHIFT /CALL GET WITH BEAM TABLE ADDRESS IN NEXT LOC / GET / ATAB / ..... /ATAB, ADR / FIELD / 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 ISZ DSPNT TAD I DSPNT /FIELD CLL RAL RTL TAD N6201 DCA GTFLD1 TAD GTFLD1 DCA SIG GTRDLP, ISZ DSPNT TAD I DSPNT /ROTATE ISZ DSPNT IAC SNA JMP SIG /ROT=-1 SO SIGNED NO CMA SZA JMP UNSIG CLA IAC TAD I DSPNT DCA DSPNT /ROT=-2 SO SLAVE JMP GTRDLP UNSIG, IAC GTFLD1, CDF 0 TAD I GETEM CLL CML IAC JMP GETIN1 SIG, CDF 0 TAD I GETEM SPA CIA CML GETIN1, DCA MULR DCA GETEM /SIGN FLAG N6201, CDF 0 TAD I DSPNT SPA CIA CML SNL ISZ GETEM MQL MUY MULR, 0 DCA TMHI TAD GETEM RAR TAD TMHI SZL CMA DCA TMHI CLA SWP SNL JMP DSPOS CLL CIA SZL ISZ TMHI /OVERFLOW NOP /OVERFLOW PROTECTION DSPOS, DCA GETEM /LOW END ISZ DSPNT /SHIFT TAD I DSPNT ASR 1 DCA SHFTHI CMA TAD I GETSR ISZ GETSR TAD DCMVNM /LEAVE DSPNT AT OLD DCA DSPNT JMP I GTSRAI GTSRRT, JMP I GETSR DCMVNM, 6 GETEM, 0 TMHI, 0 SHFTHI, 0 GTSRAI, GETSRA 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 SWBA JMS DSCNSR /DO FLYBACK 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 SWSKBT=JMS I . SWSBSR FSTLNP, FSTLNS LRANGA, LRNGSR LRNGI, LRNGSR NULINT, 0 /NULL CODER JMS I NULINT NULRET, 0 JMP I NULRET *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, 3 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 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 PRPRSR Y1 PRPENY, 0 DAY JMS I DSPTI JMS I PRPENY RO1 /PLOT: PEN DOWN IF NOT DOWN AND N4000 TAD I PLTSWI TAD PLTCHK SZA CLA JMP NOPEN TAD N4000 SO1 TCHAR TCHAR NOPEN, JMS XLINE JMP I LRNGSR XLINE, 0 JMS PRPRSR X1 PRPENX, 0 DAX JMS I DSPTI JMS I PRPENX JMP I XLINE DSPTI, DSPTSR N4000, 4000 PLTSWI, DCPTPN PLTCHK, -SKP DAX=JMS I . DAXSRI, DAXSRS DAY=JMS I . DAYSRI, DAYSRS /DISPLAYING THE FIRST LINE OF A SWEEP FSTLNS, 0 TAD I Y2I DAY JMS XLINE 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 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, 500 /-PLOTTING SPEED *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 "/ /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 GETSRA, MQA CLL TAD I GETEMI MQL RAL TAD I TMHII TAD I SHTHII ASR 3 SNA /ANYTHING LEFT IN AC? JMP .+4 SMA CLA /LIMIT TO 0000 CMA /OR 7777 SKP MQA JMP I GTSRTI GTSRTI, GTSRRT GETEMI, GETEM TMHII, TMHI SHTHII, SHFTHI /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, 500 /FLYBACK POINT /.......... /CONTROLLING A SWEEP SWEPSR, 0 /SWEEP, WITH CODLOC AND SWITCHWORD ARGUMENTS CLA TAD I SWEPSR DCA TEM2 TAD I TEM2 DCA CODLOC ISZ TEM2 TAD I TEM2 DCA CODLOC+1 TAD CODLOC+1 CLL RAL RTL TAD N6202 DCA SWPINS TAD SWPINS DCA SWPIN2 ISZ SWEPSR TAD I SWEPSR DCA TEM2 TAD I TEM2 DCA I SWTWDP ISZ SWEPSR JMS I TMBSP /GET (TOP-BOT) JMS STTBSR /SET TIMEBASE DTMBEN, 0 JMS I SWPINI DCA STRPNT SWPINS, HLT JMS I CODLOC CODIN, 0 CDF 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 DOCOD JMS I DSCNEN MODSR ISZ I P3C1I JMP SWPLP2 JMP I SWEPSR SWTWDP, SWTWRD TEM2, DOCOD, 0 /DO CODEC TAD I STRPNT DCA INPUT TAD INPUT SWPIN2, HLT JMS I CODIN CDF 0 ISZ STRPNT DCA OUTPUT SWBA JMP I DOCOD CODLOC, 0 0 INPUT, 0 OUTPUT, 0 STRPNT, 0 DSCNIP, DSCNIN SWPINI, SWPINT TMBSP, TMBSR N6202, 6202 P3C2I, P3C2 P3C1I, P3C1 *SCP6P1+1000 /PAGE 5 CODADR, NULINT /ADDRESS OF CODER CODFLD, 0 /FIELD OF CODER CMND=JMS I . EXKBSR SETSWP, 0 SRF JMP .+4 CLA TAD FORMT1 EXC MODSR SRF JMP .-2 LAS CLL RAR DCA SWTWD1 JMP I SETSWP FORMT1, 1004 FORMT2, 1001 MODA, 0 KSF JMP I MODA CLA 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=40 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 0 SWTWD1, 0 MODAGO, CLA SWBA TAD MODAA MDBRET, DCA MODSRP TAD FORMT2 EXC CLA MODGO MODBGO, CLA IAC SO1 CLA SWBA TAD MODBA JMP MDBRET MODAA, MODA MODBA, MODB SW4000, /............... /RECORD MODE DS4000, 4000 /USED AS SW4000 ALSO /RECBUF RECBUF, CLA DCA XCD ADCV RCBLP1, GETSAM 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 ISZ I P3C1RI JMP RCBLP2 SRF JMP .-1 JMP BSWP RCBINI, RCBINT P3C1RI, P3C1 RCBTM, 0 NRM1, -1 XCD, 0 XINC, 20 GETSAM=JMS I . GTSMSR GTSMSR, 0 ADSF JMP .-1 CLA CLSK JMP OK TSF SKP TLS CLSA OK, CLSK JMP .-1 ADRB DCA GETTEM CLSA CLA TAD GETTEM JMP I GTSMSR GETTEM, DAYSRS, 0 TAD DS4000 RTR SRF JMP .-1 LDY JMP I DAYSRS /............ /PLOTTER CONTROL *SCP6P1+1200 /PLMDGO* TO PLOT THE CURRENT PICTURE PLMDGO, CLA SWBA TAD DAXP DCA I DAXPOI TAD DAYP DCA I DAYPOI 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 CLA CLL CML RAR CO1 /PEN UP TCHAR TCHAR PLMIN1, CLL CLA TAD MSKWD RAR DCA MSKWD SNL JMP PLMLP1 JMP PLTOFF KCC PLTOFF, CLA CLL CML RAR /EXIT FROM PLOT MODE CO1 /PEN UP TCHAR TCHAR CLA CMA CLL RAR /PARK PEN IN TRH CORNER DAC3 /DAX DAC4 /DAY TDC 207 TAD DAXS DCA I DAXPOI TAD DAYS DCA I DAYPOI 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 DAXPOI, DAXSRI DAYPOI, DAYSRI DAXP, DAXSRP DAYP, DAYSRP DAXS, DAXSRS DAYS, DAYSRS 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 250 /( JMP SLASH CHECK 217 /CONT. O 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 DSPTSR, 0 SRF JMP .-1 CLA TAD FORMT3 EXC CLA JMP I DSPTSR FORMT3, 1001 DAXSRS,0 CLL CML TAD REVER1 RTR RAR SRF JMP .-1 LDX JMP I DAXSRS REVER1, 4000 *SCP6P1+1400 /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 DAXSRP, 0 TAD REVERS CMA DAC4 JMP I DAXSRP DAYSRP, 0 TAD REVERS DAC3 JMP I DAYSRP REVERS, 4000 MODRGO, CLA TAD GAIN ADSC CAM SWBA TAD RATE CIA CLAB CLA TAD ENABLE CLOE JMP I MODBGI GAIN, 0 MODBGI, MODBGO RATE, 320 ENABLE, 5640 /BEAM TABLE BTZ, 0 /ZERO FOR BEAMS TO LOOK AT BMTBL, INPUT /BEAM ZERO 0 /FIELD -1 /SIGNED 20 /SCALE 40 /MID SCREEN 0 /FOR OLD BM0, INPUT /A 0 -1 10 60 0 BM1, OUTPUT /B 0 -1 10 40 0 BM2, BTZ /C 0 -1 10 34 0 BM3, BTZ /D 0 -1 10 32 0 BM4, BTZ /E 0 -1 10 30 0 BM5, BTZ /F 0 -1 10 26 0 BM6, BTZ /G 0 -1 10 24 0 BM7, BTZ /H 0 -1 10 22 0 BM8, BTZ /I 0 -2 /SLAVED BM10 /TO BM10 20 0 BM9, BTZ /J 0 -2 /SLAVED BM10 /TO BEAM10 16 0 BM10, BTZ /K 0 -1 /SIGNED 40 20 0 BTEND, $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$