system debug - 26 august 66 5001/ define init a,b law b dap a termin define index a,b,c idx a sas b jmp c termin define item a flexo a a terminate cop=low 1 cad=low 3 c7=low 5 /jda clw=low 7 ci=low 11 cdi=low 13 low, item opr /)opr, add, jda, law used as constants item add /)i, dio also used as constants item jda /)they must not be killed item law /) item i /) item dio /) tpt, jda top /constant 0 /ditto item adm item and item dac item dap item dip item dzm item idx item ior item iot item isp item jdp item jmp item jsp item lac item lio item sad item sas item sft item skp item sub item xct tp, item xor 6651/ top, flexo .a ac, 0 flexo .b bk1, -0 flexo .i io, 0 flexo .m msk, -0 flexo .q lw, 0 flexo .f pf, 0 flexo .e be, 0 flexo .l ll, 70000 flexo .u ul, 70000 low-1 flexo . loc, 70000 est, jda low len=top-tp start /tsddt part 2 define disp lc,uc ucx1000 lc-ev4x1001 termin define tsn iot 6177 iot 5177 terminate define tsf iot 6277 iot 5277 terminate 6676/ /services X xe1, hlt /X ins placed here jmp lis lis, dac ac /entry to program jdp ovf /saves io, pf,be,seq br mode, resets bkpts /leaves seq br mode, saves state of ext ff /and overflow ff lse, jsp lcc lss, lac ll /set ul to core of ll dip ul clf 6 /flag 6 is 1 when a char has been typed in /since last typeout or car ret lsp, dzm wrd /numerical quantity being assembled lac cad /add ssn, dip sgn /sgn init add dzm syl /octal number being assembled n2, dzm sym /alpha symbol being assembled clf 2 /flag 2 is 1 if letter in symbol lsr, lio sk1 /sza dio wea /init searches for W or E clf 1 /flag 1 set when char typed in szf i 1 jmp .-1 /wait till char typed tyi ps1, dio ch /stores character typed law dtb /beginning of dispatch table add ch dap . 1 lac . /get entry in disp tab szf 5 /flag 5 is 1 if in uc rar 9s and c10 /c(c10)=777 add tls /c(tls)=jmp ev4 dap lsx /set up exit sub cdl /c(cdl)=jmp del, the last no-eval routine spq jmp lsx /no-eval routine, leave law syl /set up sgn for number szf i 2 /skip if letter in symbol jmp ev4 1 lac est jdp evl /evaluate symbol tls, jmp ev4 /set up for eval exit law 7424 /undefined symbol - U jdp tys jmp lse /eval exit ev4, idx ev2 /set up for eval exit dap sgn lac wrd sgn, add . /add or sub symbol value or number dac wrd /put back in wrd szf i 6 /skip if typein since last cr or typeout lac lw lsx, jmp . /dispatch exit /evaluate symbols evl, 0 evc, dap ev2 ev2, lac . sad sym jmp i evl idx ev2 idx ev2 sas pev 1 jmp ev2 idx evl jmp i evl /no-eval routines /numbers and letters n, rir 3s /digit in io bits 15-17 lac syl /number assembled in syl rcl 3s dac syl jmp l1 l, stf 2 /flag 2 on if letter in symbol l1, lac sym rcl 6s ior ch dac sym stf 6 /flag 6 on if letter or no. typed jmp lsr /in since last car. or tab /case shifts uc, stf 5 /set flag 5 in uc jmp lsr lc, clf 5 /clear flag 5 in lc jmp lsr /define symbol cpr, szf i 2 /) jmp err lac stp jdp evl jmp df2 lio sym dzm sym kl2, lac stp jdp evl jmp df3 jmp tls+1 df3, lem df1, dio i ev2 /used as constant df2, lem idx ev2 lio wrd dio i ev2 dio lw /update last word typed eem jmp lse /kill symbols kil, cli /K szf 2 /go to error routine if no letter in symbol jmp kl2 /error routine err, law 7421 jdp tys jmp lse /delete del, jmp bax /x /eval routines smb, law pi /S jmp cns+1 cns, law opt /C dap pns jmp lse /equals eql, dac lw /= jsp lct lac lw jdp opt cdl, jmp del /used as constant /plus pls, jmp ssn-1 /minus min, clc>>05<>05<upper limit /verify, page 2 lai /get word read in vf4, t /dio i t or sad i t jmp vf2 vf3, jsp pac /print routine for verify jsp lct lac t2 /get word read in jdp lwt jsp lcc / lower case , car. ret vf2, lac t2 /get word read in adm chi /add word to cksum index t,t3,vf1 /done check rpb /readin checksum from tape lai sas chi /test checksum hlt>>05<>04<< disp n, err /5,>>05<< disp n, err /6,^ disp n, err /7,< disp n, err /8,> disp n, err /9,^ bki, 0 /breakpoint instruction wrd, 0 /value of typed-in expression t3, 0 /temp storage sym, 0 /alpha symbol being assembled ch, 0 /character - also temp storage cjd, jda tr /constant disp n, err /0,. disp bar, err //,? disp l, smb /s disp l, tbl /t disp l, err /u disp l, vfy disp l, wds /w disp l, xec /x disp l, rd /y disp l, zro /z syl, 0 /syllable disp err, eql /,= t, 0 /temporary storage t2, 0 /temp storage disp err, err /tab c10, 777 /constant disp err,ub /_ ,. disp l, err /j disp l, kil /k disp l, err /l disp l, err /m disp l, nws /n disp l, err /o disp l, pra /p disp l, err /q disp l, err /r chi, 0 /temp storage bpp, flexo .a /constant for bkpt print disp min, pls /-,+ disp cpr, err /),] disp l, err /.,| disp err, err /(,[ stp, tpt 2 /constant disp l, err /a disp l, err /b disp l, cns /c disp l, err /d disp l, eas /e disp l, err /f disp l, bgn /g disp l, err /h disp l, err /i disp lc, lc /lower case disp l, del /.,x disp uc, uc /upper case disp bs, bs /backspace csd, sad i /constant disp cr, cr /carriage return foo, a=720077 psf=a bef=a+0100 bff=a+0200 rpf=a+0300 rpn=a+0400 rcn=a+0500 lar=a+0600 lrd=a+0700 psn=a+1000 ben=a+1100 bfn=a+1200 lpf=a+1300 spn=a+1400 scn=a+1500 ad1=a+1600 ad2=a+1700 rsb=a+2000 bpt=a+2100 arq=a+2200 dsm=a+2300 wat=a+2400 sbr=a+2500 srw=a+2600 sei=a+2700 sps=a+3000 sbe=a+3100 sbf=a+3200 sti=a+3300 sdl=a+3400 siw=a+3500 sxw=a+3600 rbe=a+3700 rsn=a+4000 rsf=a+4100 srs=a+4200 lqn=a+4300 soq=a+4400 lei=a+4500 lea=a+4600 rer=a+4700 la2=a+5000 nmn=a+5300 nmf=a+5400 lbe=a+5500 usn=a+5600 usf=a+5700 ldc=a+6000 isb=720052 eem=724074 lem=720074 start lis