Digital PDFs
Documents
Guest
Register
Log In
XX-63F5F-08
2000
24 pages
Original
2.0MB
view
download
Document:
FOCAL Seminar Notes 19720805
Order Number:
XX-63F5F-08
Revision:
Pages:
24
Original Filename:
http://bitsavers.org/pdf/dec/pdp8/focal/focalj/FOCAL_Seminar_Notes_19720805.pdf
OCR Text
/FOCAL SEMINAR NOTES . /FOCAL SEMINAR NOTES · /FOCAL SEMINAR NOTES / / / / JIM CRAPUCHETTES . FRELAN ASSOCIATES P!O. . ·-· BOX 298 MENLO PARK, CALIF. 94025 / ;, / / ,1· / THESE NOTES ARE PROPRIETARY AND ARE NOT TO BE COPIED WITHOUT THE WRITTEN APPROVAL or THE AUTHOR. THEY ARE FURTHERMORE TO BE USED ONLY BY THE PARTY TO WHICH THEY ARE SOLD AND TO THEIR IMMEDIATE CO-WORKERS. ·. 1 :, -·. -i ~: . .~ . ... '.;"' -· /FOCAL SEMINAR NOTES PAL8-V7 PAGE·2 B.15/72 . /DEFINITIONS FROM FOCAL: /. THE FOLLOWING METHOD OF' DEFINITION WILL WORK / FOR THE FOLLOWING ASSEMBLERS~ MACR0-81 PAL-Di PAL-D / CSK VERSION> AND PALS. / / ./ FOR THE VERSIONS OF THE-PAL-lII ASSEMBLER,,ONE . ; ,i (.! .. ;.· ; • OF ·THE FOLLOWING MUST BE DONE: '·' / / . : ·> . ,· .. I., 1. IF THE ASSEMBLER ALREADY HAS FLOATING-POINT· /' INSTRiJC.TIONS DEFINED FOR .THE' STANDARD F"LOATING-;' / / POINT PACKAGE, THEY·MAY BE SIMPLY RE-DEFINED FOR THE PROPER OP-CODES. 1~ '.·'~·-:· ·~ ,-. - ,- / -/ ; OTHERWISE, THE 0 EXPUNGE 11 PSEUDO-OP MUST Bl;: USED . ; l : ' FOLLOWED BY THE DEFINITION OF ALL MEMORY-REF . ··INSTRUCTIONS CAND, TAD, ETC ... ), THE FLOATitilG-' · POINT INSTRUCTIONS <BELOW),· AND THE 11 FIXMRI" '. -. ' . ·' PSEUDO-OP. FOLLOW I NG TH IS, ALL THE REST OF THE.- : . PDP-8 INSTRUCTIONS MUST BE DEFINED!! t· UN-. . ... FORTUNATELY, THIS IS THt ONLY WAY~,; F'IXMRI F"IXMRI FIXMRI FIXMRI F'IXMRI FIXMRI FIXMRI F'GET= FADD= FSUB= FDIY= FMUL= FPOl.J= FPUT= FNOR= FEXT= F'INT= 700€; ·000e JMS I '7 ·/ 2. ; .. / / ·._ : i/. !'. . 0000 1000 ·2000 3000 ·:4000 ·5000 6000 7000 .. 0000 4407'' j IF'NDEF" P13 11 XRT= XRT2= 12 PDLXR= 13 FLTXR= 14 FLTXR2= 15 17 0017 AXOUT= i3020 XCT= 20 ':)•".'.. .,_,,:; 0022 PC= . 0023. THISLN= 23 .0025 LASTLN:o= 25 30 0030 PT1= 32 0032 T1= 33 0033 T3= '0035 BOTTOM= 35 '0040 EX1= 40 EX1+1 ' . ·0041 AC1H= EX1+2 0042 AC1L= 0043 . OYER1= EX1+3 44 . '0044 FLAC= FLAC 0044 . EXP= 0010'3 100e . 200e 3009 4000 .. 5006 6006 •.--. /PSEUDo~r.P.·IHSTRUCTIONS ... · ' ,, . ·.. .. ?:O. ;·.,: ;,· ,- . .i <P13!:!:: ·0011 0012 ·0013 ~- 0014 0015 5> IF'OR DEBUG.UNDER OS/S'ODT ·· .. ' ; . . ~ -,· .!·,·. . . . ·.. _·· .• . ·-,.: /F'. P. OPERAND .• ' -~ ... ! .: ;f". P. AC ~ · '· .• ' i. \·. ... . .: I . ,I " L PAGE 2-1 /FOCAL SEMINAR NOTES 0045 13046 0047 i3t151 01352 0053 (1054 0057 HORD= LORD= OVEF.:2= FISl.iJ= 52 c-7 ItHEGE= ._1._. SORTCN== 54 5..., CNTR= -' /F'ORMAT DESCRIPTION WORD (1(163 0064 OUTDEV= 63 I t-rnEV= 64 /POINTER TO OUTPUT SUBROUTINE . /POINTfiR TO INPUT SUBROUTINE Mit~SKI= FLAC+1 FLAC+2 FLAC+3 51 13[165 NAGSl1J= 6t:'..J 131366 CHAR= 66 01367 LHlENO= 67 (1070 GH~C= 70 0071 T2= 71 0077 CCR= .77 1(12 01(12 PEF.:= 0104 .P7600= 1.i34 105 0105 M2i3= 01136 P177= 106 1[17 0U37 P17= [1111 M2= 111 [1112 MINUSA= 112 [1113 C260= 113 13114 M24i3= 114 0115 MPER= 115 117 0117 MFLT= 1.-, .-, 13122 P77= .::..:::. i~1123 123 C2t.:W= (1127 DOUBLE= 127 ~~1133 CFRS= 133 13136 EFUt-BI= 136 13166 EF.:RPT= 166 0177 04213 13611 0614 0756 1136 1377 141313 1437 1613 1743 1754 2725 5667 5712 ·5713 5715 5733 6623 START= DCI= PROC= PC1= INPUT= MCOr·1= GLIST= TL I ST= /ERROR ROUTINE ADDRESS 177 4213 611 614 -t:::" .- ( ._1t1 1136 1377 /SF•ACE (+ JiLISTJ>~ 141313 / I I J 11 I I , II , + C.R. G::; 1 = i 'l37 EVAL= 1613 1743 1754 EFUt-~= /C.R. CODE EFUr42= ERROF.:5= CI' .:.,.._1 MULT10= 5667 REMAIN= ·5712 DIGIT=. 5713 MULT2= 5715 DU BLAD::: 5733· ALIGN= 6623 .-,-:i·-:s~ + ~I /FOCAL SEMINAR NOTES 7335 7503 7335 LI BF.:ARY=75C13 Dt~Of:.:M= /r~El.1J 4540 1413 5541 4542 4543 4544 4545 4546 4547 455[1 4551 4552 4553 4554 4555 4557 .4560 4561 4562 4563 4564 4566 PAGE 2-2 . I NSTF.:UCT I 01'1!3: PU:::HJ= ..JM::: I 14(1 POPA= TAD I PDLXR POP.J= .JMP I 141 PU:3HA= .JMS I 142 PUSHF= .JM::: I 143 .JM::: I 144 POPF= ._IMS I 145 GETC= PACKC= .JM:; I 146 SOf<:T.J= .JMS I 147 :30F.:TC= .JMS I 15(1 PF.:INTC= .JMS I 151 F.:EADC= .JM::: I 152 PF.:tHLN= .JM::: I 153 GETLH= JMS I 154 FI t·HIU4= JM::: I 155 .:.JMS · I 157 fHL6= SPt·WF.:= ~IMS I 160 TESTt-4= .JMS I 161 TSTLPF.:= .JMS I 162 TSTGRP= .JM::; I 163 TESTC= .JMS I 164 ERROR2= JMS I ERR PT /RECURSIVE SUBROUTINE CALL /f<:E:3TORE AC /SUBF.:OUTINE RETURN /SAVE AC /SAVE GROUP OF DATA /RESTORE GF.:OUP OF DATA /UNPACK A CHARACTER /PACK A CHARACTER /SORT AND BRANCH ON AC OR.CHAR /SORT CHAF.: /PRINT AC OR CHAR /READ DATA INTO CHAR AND PRINT IT· /PRINT C(LINENO> /UNPACK AND FORM A LINENUMBER /SEARCH FOR A GIVEN LINE /ROTATE LEFT SIX /IGNORE SPACES AND LEADING ZEROS /PERIOD; OTHER; NUMBER /SKIP IF L-PAR: (., C OR < /SKIP IF CCAC) = C<LINENO) /TERM; NUMBER; FUNCTION; LETTER /CALL ERROR SUBROUTtNE I' .··PAGE 3 /tOCAL SEMINAR NOTES . /rREE LOCATIONS IN FOCAL (1969): / LOC(S) COMMEtHS / . 2 / 4 USED ONLY BY PDP-5 INTERRUPT HANDLER. USED BY DEBUGGERS. IF TH IS LO CAT I OH IS USED, THEN ODT CANNOT BE USED IN DEBUGGING; AUTO-INDEX REG I STE RS 'XRT ·', 'XRT2', 'FLTXR' & 'FLTXR2'. THESE ARE USED ON A TEMPORARY BASIS BY FOCAL ROUTINES, AND CAN BE USED CON A TEMPORARY BASIS) IF NO CONFLICTS ARISE WITH THESE.ROUTINES [USE THE CREF LISTING TO DETERMINE THISl. 'T 1' , ·' T3' & 'T2' . TEMPORARY WORK I NG LOCATIONS FOR FOCAL ROUTINES. SEE THE COMMENTS ABOVE ON THE AUTO-INDEX ~EGS. •HI t·rnuF •, SEE NOTE 1. 'P4000'. USED ONLY AT TWO LOCATIONS. SEE PAGE 4 OF THIS LISTING. 'PTCH', SEE NOTE 1. MUST OVERLAY 3001 AND 3002 WITH "NOP"S TO USE. SEE FOCAL LISTING. USED BY 8K PATCH, FREE IN 4k VERSION; USED BY "MODV" <SK) PATCH, OTHERWISE FREE~ 'MCOM', SEE NEXT LINE ... · 1 "FDIS" FUNCTION, SEE NOTE 2.. IF' THIS FUNCTION IS OVERLAID, 'MCOM' ABOVE CAN· ALSO BE USED. 11 F'ADC 11 F"UNCTION, SEE NOTE 2. 'OUTL' SUBROUTINE, DIRECTLY FOLLOWING· 11 FADC 11 COIIING. SEE NOTE 3. ' RANO', SEE NEXT LI NE ... 11 F"RAN 11 FUNCTION, SEE NOTE 2. IF THIS· rut-KT I ON Is OVERLAID, , RANO / ABOVE CAN·· ALSO BE USED. ' I 33 1 SUBROUTINE. SEE NOTE 3. FREE ONLY IF ALL F'UNCTIONS ARE KEPT!! OTHERWISE PART OF THE TEXT~VARIABLE p. I1. L. AREA. BE CAREF'UL 1.rJHEN YOU USE THIS AREAi FREE ONL~ IF hrsxMtt & ~rcos~ ARE KEPt .. OR Ir 'BOTTOM' IS SET UP CORRECTLY, OTHERWISE PA~T or THE STORAGE'. ·ARE'.A; FREE: / / 1b 12, 141 15. / / / / / / 32,33,71 / / / 37 / 124 / / 126 / / ./ / / / 167 174 175 1136 1142 - 1157 / / / 1343 1353 / 1354· .... 1362 /. / / 1530 1553 1532 1562 / 2414 2424 I' / / 5167 ... 5177 / / / . J' 5352 5377 ./ ; 'I 51(4 "" 67(( t.::111 "/ 6311 - 6377 ;I 61613 / 7037 - 7062 / / / / / 7322 - 7334 / /. USED In' SK PATCH, F"RE:E> I H 4k VE~S I ON. H.S. READER ROUTINE, SEE NOTE 1. PART OF THE MULTI PL 'y' ROUT I NE, I DMUL TI, NOT USED IN THE 3-WORD F'LOATING-POINT PACKAGE. THIS AREA SHOULD BE USED ONLY. IF IT IS KNOWN THAT THE 4-WORD PACKAGE · WILL NEYER BE USED; PART OF THE DIVIIIE ROUTINE, 'DUBDIV' / NOT USED IN THE 3~WORD FLOATING-POINT PACKAGE. NOTE THE RESTRICTION ABOVE. PAGE 3-1 /FOCAL SEMINAR NOTES E.JECT / / /· / / / / / / / / / / / / / / / / / / NOTE 1: IF NO HIGH-SPEED READER IS USED, THn4 LOCAT I Ot~S 37, 126, 3000, 3001 At·HI 6311 - 6377 CAN BE USED FOR OTHER CODING. IF THIS IS DONE, LOCATION 1201 ("*"ROUTINE IN COMGO') MUST BE CHANGED TO 177. THIS WILL CAUSE AN "*" AS A COMMAND TO DO THE EXACT SAME THING THAT THE "Q" COMMAND DOES. 1 NOTE 2: THESE TWO FUNCTIONS <AND PERHAPS "FSQf ", LOCATIONS 7400 - 7467) CAN BE OVERLAID WITH OTHER CODING. IN THIS CASE, THE ADDRESSES OF THESE ROUTINES IN 'FNTABF' (STARTING AT LQC 374) MUST BE CHANGED TO "ERROR5" SO THAT THEY CAt~NOT BE CALLED. , , r 33' At-rn / ouTL, lrJERE SET uP To ALLc11.~1 EASY NOTE 3, DEBUGGING OF FOCAL WITH THE INTERRUPT OFF, AND WITH THE HELP OF A DEBUGGER. THIS CAN BE DONE AS SHOWN IN THE "DEBUG" PATCHES. IF THE SPACE IS r~EEDED, 1 ~'!.!33 1 At~D 1 XOUTL 1 COULD BE OVERLAID WITH ROUTINES EQUIVALENT TO 'I33' AND 1 0UTL', AND THE REST OF THE DEBUGGING PATCHES IMPLEMENTED TO RUN WITH IOF. ' /FOCAL SEMINAR NOTES PAGE 4 /PATCHES TO USE "OPR 1" INSTRUCTIONS TO GENERATE · / CONSTANTS IN THE AC RATHER THAN USE "TAD"S. THE / "TAD"S WERE NEEDED FOR THE PDP-5 COMPUTER. IF / YOUR PATCHES WILL NOT BE RUNNING OH A PDP-5, THESE / PATCHES WILL SIGHTLY INCREASE EXECUTION SPEED AND / FREE LOCATION 124 FOR OTHER USES. . 0245 00245 01017 *245 7330 STL CLA RAR 1017 . *1017 /OVERLAY "TAD M2 11 7344 CLL STA RAL 1631 . >1o1631 /OVERLAY 01631 ·. 7344 ·2052 11 /= /= *2052 ·' . . /OVERLAY "TAD p311 - ONLY R.EF' .. STL CLA IAC RAL /= /OVERLAV "TAD M2 11 7344 CLL STA RAL 07127" ·7330 -2 TAD .M.,2" .. 3111 . *3111 '.71~7 4000 CLL STA RAL 02052. 7325 03111 /OVERLAY "TAD P4000"·- ONLY 2 REFS *7127 3, . PDP-a I, ..:.eL •&·;..SE· ONLV /OVERLAV "TAD P4000" - ONLY 2 REFS .•.· STL CLA RAR /N'OTE: THERE ARE ONL V 2 REFERENCES TO 'P4000' ( LOC / 124). WITH THE PATCHES ABOVE, THIS LOCATION ON / PAGE 0 IS FREED FOR OTHER USES. . -: . /rOCAL SEMINAR NOTES PAL8-V7 8/5/72 PAGE 5 / INPUT FROM AND OUTPUT TO CHARACTER ORIENTED DEVICES · / OTHER THAN THE TELETYPE, AND ADDING DEVICES / TO THE INTERRUPT SERVICE ROUTINE. . / TlJO LOCATIONS ON PAGE 0, 'OUT DEV' [ LOC. 63 J AND ./ · 'INDEV' CLOC. 64J, tONTAIN THE ADDRESSES OF THE OUTPUT ., . . AND INPUT SUBROUTINES, RESPECTIVELY. IF IT IS DESIRED / TO DO l/O TO OTHER DEVICES, THESE LOCATIONS SHOULD BE / CHANGED TO THE ADDRESSES OF THE NEW I/O SUBROUTINE($), / CHANGING THESE LOCATIONS UNDER PROGRAM CONTROL, PERHAPS / WITH A MODIF.ICATION TO THE "L" COMMAND COR PERHAPS WITH· / AN ADDITIONAL COMMAND), WOULD ALLOW FOR VERY VERSATILE · / l/O TO/FROM A FOCAL PROGRAM. / AN EXAMPLE OF ·THE WAY THIS IS DONE IS SHOWN IN THE / LISTING, THE HIGH-SPEED READER ROUTINE1 THIS IS A GOOD ~ ENAMPLE NOT ONLY or HOW TO DO IT; BUT ALSO OF THE , PROBLEMS THAT CAN OCCUR. THE PROBL~M WITH IT IS. THAT ; THE READER CAN EASILY OVER-RUH THE 1 CHARACTER INPUT I eu~rERj AT WHICH TIME THE lNPUt STOPS AND AH ERROR JS ; GIVEN. THIS WOULD OBVIOUSLY BE LESS or·~ PROBLEM WITH / A HIGH-SPEED OUTPUT DEVICE, BUT. THE POINT IS THAT YOU . / ·. SHOULD GI YE SOME THOUGHT TO WHAT YOU ARE DO I NG, F' I RST .. / /. IF NEW DEVICES ARE ADDED, A MODIFICATION SHOULD ./ ALSO BE MADE TO THE ERROR HANDLER <STARTING AT 'RECOYR'i'. / LOCATION 2740) TO STOP ANY INPUT DEVICES IN MOTION AND / RESET 'INDEY 1 AND 'OUTDEY' TO THE TELETYPE I/O ROUTINES.' / · 'OUTDEY' SH9ULD BE RESET BEFORE THE ERROR MESSAGE IS / OUTPUT SO THAT THE MESSAGE WILL BE TYPED ON THE TELE/ 1· TYPE. ADMITTEDLY, IT IS NOT ABSOLUTELY NECESSARY THAT ·· .. / THIS RESETTING BE DONE, BUT'IT WILL HELP ANYONE WHO IS / USING YOUR MODIFIED VERSION OF FOCAL <PERHAPS YOU), AND·~ f / MAY SAYE YOU SOME FRIENDS. IF THE ADDED I/O DEVICES REQUIRi SERVICE BY THE INTERRUPT ROUTINE, A FEW LOCATIONS ARE PROVIDED AT THE END OF THE ROUTINE, BEGINNING WITH 'EXIT' CLOC. 2646). THESE LOCATIONS ARE CURRENTLY USED BY THE H.S. / .. READER, BUT THEY CM~ EITHER BE REMOVED <IF' NOT USED> OR /' MOYED SOME PLACE ELSE. ... /. AS WITH CHARACTER ORIENTED DEVICES AS DESCRIBED / . ·ABOVE, IT IS SUGGESTED TH.AT A MODIFICATION BE MADE TO / THE ERROR HANDLER TO RESET ANY ItHERRUPT-DRIYEN l/O ...,.< ·. , . . · DEVICES AT THE TIME THAT AN ERROR OCCURS. / NOTE: IF AN 8K VERSION OF' F'OCAL ·IS USED1. T,HE. / "RMF" INSTRUCTION CURRENTLY AT LOCATION 2652 SHOULD ./ BE MOVED TO LOCATION 2654. IF AN 81< VERSION IS NOT ' / USED, THIS INSTRUCTION IS NOT NEEDED. '/' / / ; /FOCAL SEMINAR NOTES / / PAL8-V7 8/5/72 PAGE 6 THESE PATCHES. WHICH ARE WORKING EXAMPLES, DO THE FOLLOWING: / / PROVIDE CHARACTER INPUT AND OUTPUT THROUGH F H~ AND FOUT FUt·~CT IONS. 1. / II II II II / / PROVIDE BCD INPUT AND OUTPUT AS WOULD BE USED FOR INSTRUMENT INTERFACE THROUGH "FBI" AND FBO FU~lCT I Clt~S. 2. / / II II / / 3. GIVE AN EXAMPLE OF ARRAY OR COMMON STORAGE THROUGH At1 11 f AII FIJNCT I ON. 4. USE A MODIFICATION TO THE 11 L11 COMMAND, INCLUDING CHANGING IT TO THE 11 0 11 COMMAND, TO SHOW HOW A FOCAL LINE OR GROUP CAN BE EXECUTED FROM WITHIN A FOCAL MODIFICATION. 5, PROVIDE THE FOLLOWING CORRECTIONS TO FOCAL: / / / / / / / / /· / / A. PATCH THE 11 L11 ROUTINE TO CONTINUE IN THE CURRENTLY EXECUTING FOCAL PROGRAM <DON'T GO / / / / B. PATCH THE FLOATING-POINT OUTPUT ROUTINE TO , ROUND CORRECTLY, FLOAT THE SIGN TO THE IMMEDIATE LEFT OF THE MOST SIGtHFICANT DIGIT T't'PED, !' AND REMOVE THE AUTOMATIC OUTPUT OF ~= 11 · /MISCELLANEOUS PATCHES: 0035 *BOTTOM 00035 ·. 5123 .1004 01004 01173 :+:1004 /CHANGE ·11L11 TO 11011 IN COMMAND LIST · 110 :+:1173 /OVERLAY OLII 11L11 ROUTINE ADDRESS :+:1201 /OVEF.:LA'1' II )j.: II ROUTINE ADDRESS START 0177 /PATCHES TO THE FUNCTION NAME & ADDRESS TABLES: 0377 00377. 1343 ., OCOM 6311 1201 01201 DATA-1 0317 · 1173 BOTTOM OF P. D. L. ~-F.:ESET :+:377 ~REMOVE SOME FUNCTIONS, CHANGE OTHERS XA / 11 FA 11 - WAS 'XDYS' 'I . /FOCAL SEMINAR NOTES (10400 00401 2725 004(12 2725 EF.:ROR5 EF.:F.:OR5 ERFWl':5 (H3403 5204 ·><BI 0~3404 C'.·-··-,""' .Jr::..::. ( 00405 00406 1553 ::<BO :>:: I t·l ::<OUT 2725 5774 2170 0217~Z1 PAGE 6-1 /l.1.IAS 'XRAW /l,JAS ·'~,~ADC I ARTH·' FBI - l.1.IAS 'FE>{P' / 11 FB0 11 - 1.~IAS 'FLOG' / 11 FIH 11 l1JAS 'FSIN-' FOUT - l~IAS 'FCOS'. /!;.IA!:: / 11 / 11 I 11 11 - /CHAHGE NAMES OF FUNCTIONS 0301 2174 ~321 1115 ~321 76 1123 1140 02177 2672 74 02175 *2170 9,.-5,.-72 PAL8-V7 *2174 8-t·2+ I E:-t·2+ 0 I·t·2+ t·l 11 O·t·2+ II U·t·2+ II T / ,; ,I "' / 11 11 11 11 11 11 /BI /BO /IN ··-'OUT NOTE 1 ~' -t· 11 IS THE MULTI PLY OPERATOR IN PALS. IT . DOES NOT USE ANY HIERARCHY D~ PRECIDEMCE> BUT JU$1 MULTIPLIES THE VALUE ON TH~ LEFT SY THE VALUE ON THE RIGHT, THUS A•2+8•2+C ~ CA*2+8)~~+C IN NORMAL ALGEBRAIC REPRESENTATION. / .I / / / / / ,,, / ALL OF THE "E:>::TENDED FUNCT I mis A~rn SOME OF THE OTHER FUNCTIONS HAVE BEEN REMOVED TO MAKE ROOM FOR THE PATCHES THAT ARE TO BE ADDED. NO PARTICULAR REASONING WAS USED TO DETERMIHE THE ORDER OF THE NEW FUNCTION REFERENCES EXCEPT THAT THE "FA" FUNCTION WAS PUT AS CLOSE TO THE BEGINNING OF THE TABLE AS WAS POSSIBLE TO MIHIMIZE THE TIME IN THE SORT8 SUBROUTINE WHEN LOOKING IT UP. Ii 11 11 /FOCAL SE.MINAR NOTES ·1142 *1142 / / / / / ./ ·/ / / 01142 01143 01144 01145 01146 01147 1066 1336 7640 5541 4540 PAGE 7 /OVERLAY OLD "FDIS" FUNCTION. THIS SUBROUTINE, CALLED BY "PUSHJ; CHKCOM", CHECKS TO SEE IF TERMINATOR OF THE LAST EXPRESSION. <I.E., THE CONTENTS OF 'CHAR') IS A ", 11 IF" IT IS NOT, CHKCOM EXITS TO THE WORD FOLLOWING THE CALL. IF IT IS, CHKCOM EVALUATES THE NEXT EXPRESSION AND EXITS TO THE SECOND WORD FOLLOWING THE CALL. CHKCOM NEEDS TO BE A RECURSIVE SUBROUTINE BECAUSE THE CALL TO 'EVAL' MAY END UP CALLING THIS SUBROUTINE AGAIN. CHKCOM; TAD CHAR TAD MCOM SZA CLA POPJ PUS HJ /IS C(CHAR) EVAL-1 1612 = ' . II II? /HO, EXIT NOW TO CALL+1 .. /YES, EVALUATE NEXT ARGUMENT /(SKIP THIS CHAR) / / /. / THE FOLLOWING .CODE COULD BE REPLACED BY CLA IAC; POPJ" IF IT IS DESIRED TO USE THE MINIMUM SPACE AND THE "JMS I INTEGER" IS NOT USED. 11 / •POPA DCA FLTXR2 ··01150 .1413 01151 3015 /GET RETURN ADDRESS / & STORE IT HERE / IF IS IS DESIRED TO F"I~ THE F"LAC AND RETURN / WITH THE INTEGERIZED YALUE1 REMOVE THE FIRST 11 / 11 / . FROM THE FOLLOWING LINE OF CODE: / 01152 . 1343 /FIX FLAC & RETURN WITH VALUE /EXIT TO CALL+2 / JMS I INTEGER JMP I FLTXR2 *1343 /OVERLAY OLD "FADC" F"IJNCTION & ··ouTL' ROUTINE . 5415 / / / / / / / r / ,.., NEbJ "FA" Fut·~CT I ON, ACCESSES DATA STORED I~~ AN ARRAY. IT IS EQUIVALENT TO THE WAY ARRAYS ARE HANDLED BY HIGH-LEVEL COMPILER LANGUAGES, I.E., THE INDEX lNTO THE ARRAY IS MULTIPLIED BY THE NUMBER OF WORDS PER ITEM AND ADDED TO THE BASE ADDRESS OF TH~ ARRAY TO GET THE ITEM ADDRESS. THIS IS AN ADAPTATION TO THE "FHEW" FUNCTION FIRST WRITTEN BY JOHN ALDERMAN. CALL, ... FA (I). .. · GET I TH VALUE . ... FA< I, V>... PUT V IN ITH LOCATION / / / ./ 01343 ·.. 4453 01344 7104 01345 1046 XA, 1.i.IHERE I WI LL BE TAKEN TO BE AN INTEGER IN THE·. . • , RANGE 0.LE. I.LT.C<'LIM') AND VIS ANY VALUE <INCLUDING ANY EXPRESSION). JMS I I NT EGER CLL RAL . ·TAD LORD /FIX FLAC /MULTIPLY BV 2 = N*2 ; & ADD = N*2+N : N*3 /FOCAL SEMINAR NOTES PAL8-V7 8/~V72 01346 01347 01350 01351 ·01352 01353 01354 01355 01356 01357 01360. 01361 1361 4542 1045 7650 1362 7141 1046 7630 4566 5760 6160 5124 BASE, TAD BASE PU SHA TAD HORD SNA CLA TAD LIM CIA CLL TAD LORD SZL CLA. ERROR2 JMP I . +1 XA1 DATA 01362 ·0020 LIM, DSI2E . 1553 *1553 /OVERLAY OLD "FRAN" FUNCTION. / / / / / / / ./ 01553 01554 4552 /ADD BASE ADDRESS OF ARRAY / & SAVE ITEM ADDRESS /TEST INDEX FOR PROPER RANGE: ·/(BAD IF HORD.NE.0} /(BAD IF LORD.GE.LIM) /SORRY, CHARLIE! /OK, GO TO REST OF ROUTINE /BEGINNING OF DATA ARRAY' /LENGTH OF ARRA¥ NE~J "F' IN" FUNCTION, INPUTS A SINGLE CHARACTER 'FROM THE INPUT DEVICE AND RETURNS IT AS A NUMBER (INTEGER). CALL: ... FINO... ANY ARG IS IGNORED TO READ THE CHARACTER WITHOUT ECHOING IT, REPLACE THE "RE ADC" WI TH "JMS I I NDEV". THE CHARACTER CAN THEN BE READ & ECHOED BY . , .FOUTCFINO> .. , ::.<IN, 1066 i 01555 3045 01556 3046 01557 ~047 01560 1005 01561 3044 01562 . 5536 2414 RE ADC TAD CHAR AND P177 tiCA HORD DCA LORD .DCA OVER2 tAD P13 ·DCA EXP . 'JMP I EFUN3I *2414 /READ & ECHO CHARACTER /GET THE CHAR ITO lGNORE PARITY BIT IPUT IN HlGH WOR~ CMAW 9 BitS) . VSET REST Ot fLAC iO e· 1 & se:r LIP £)(PONENT. /OVERLAY. OLD 'I33' SUBROUTINE. ; . /LISTS FOR THE NEM "O" COMMAND: 02414 0314 02415 '0304 02416 7777 02417 02420 PAGE 7-1. OCL IST:.o 7503· OBL I ST I 6326 "L "D -1 LIBRARY ODO /TERMINATOR IS NEG #· /FOCAL SEMINAR NOTES PAGE B /DEFINE PARAMETERS FOR DATA ARRAY: 05124 0020 DSIZE= 0060 Dl.~IORDS= 20 /CHANGE THIS ONLY FOR DIFFERENT SI2E DS I ZE·t3 ;3 WORDS PER F. P. ITEM 5124 *5377-173-DWORDS 5124 DATA= 0000 ZBLOCK DWORDS /BEGINNING OF DATA ARRAY ;INITIALIZE ALL LOCS TO 0 / THE 11 173 11 ABOVE IS THE HA~rn-COUNTED NUMBER OF' LOCATIONS THAT THE FOLLOWING CODING TAKES. THIS / . IS THE ONLY WAY THAT THE ORIGIN CAN BE SET .1 PROPEF.:LY . · .1 .1 / .1 / .1 .1 / ,,.. .1 ,,.. / / / THE FOLLOWING TWO FUNCTIONS 11 FBI 11 AND "FBO", · FOR "BCD IN" AND "BCD OUT", ARE GIVEN AS ~XAMPLES OF POSSIBLE TECHNIQUES FOR INTERFACING FOCAL WITH BCD I.10 DEVICES. THE ACTUAL IMPLEMENTATION AS GIVEN. DOES NOTHING EXCEPT SHOW AND TEST THE TECHNIQUES. NEl.~1 "FBI 11 FUNCTION. THE ARGUMENT I 8 CONVERTED FROM FLOATING-POitH TO PACKED BCD AND ,THEN BACK TO FLOATING-POINT. ONLY THE INTEGER PART OF THE ARGUMENT IS USED. CALL: ... FBI ('n ... WHERE V IS ANY EXPRESSION, THE INTEGER PART OF WHICH IS CONVERTED TO BCD & BACK. / ./ / .1 052(14 (15205 4262 1363 ~352(16 4235 (152i37 3047 05210. 3046 0521.i 3~345 i35212 3737 (15213 ,3736 ~35214 4740 05215 474~3 05216 05217 (1522(1 05221 4235 3737 1364 4 74(1 1226 05223 3044 05224 ·4742 05225 5536 ~35222 IN ACTUAL USAGE, THE EXPRESSION MIGHT BE A COMMAND TO AN INSTRUMENT, AND THE VALUE RETURNED MIGHT BE THE READOUT FROM THE INSTRU~ENT. !>:!BI, 8 I t·~2BC TAD DIGS1 JM8 BCD2E:N DCA OVEF.:2 DCA LORD DC:A HORD DCA I DIG! It CA I F.: EM I .JM:3 I M10I .JM!3 I MHJI TAD DI G:::2 .JMS BCD2BN DCA I DIGI .JMS I M1~3 I TAD ~"<P43 DC:A EXP JMS I DNORI JMP I EFUN3I .JM:3 ,. . cmWERT ARG TO PACKED BCD /GET FIF.:ST 3 DIGITS. /CONVERT TO E: HlAR'r' / ~!: STORE rn LOl~EST WORD /SET F.:EST OF FLA CJ 'DIGIT·' .. ·'REMAIH) TO 0 /MULTIPL"i' E:Y 10 / ~!: AGA It4 ;GET 2t·rn .....7 ItIGITS ,,, IJ, CO~lVERT THEM /S:TORE RESULT IN 'I•IGIT' / E1ST 3 DIGSJ:+!1000+C2ND 3 DIGSJ / /SET UP EXPONENT /MORMALIZE 8EF'CtRE OVER2 CLEARED .;, /FOCAL SEMINAR NOTES 05226 0043 XP43, PAGE 8-1 43 / NEW "FBO" FUNCTION. THE ARGUMENT IS CONVERTED / FROM FLOATING-POINT TO PACKED BCD AND THEN UNPACKED /. AND SENT TO THE OUTPUT DEVICE <TELETYPE>. AS ABOVEi / THE PRIMARY PURPOSE IS TO SHOW TECHNIQUES. / CALL: ... F'BO<V> ... /. WHERE V IS AS F'OR "F'BI" ABOVE. / / / / I / 0s227 05230 4262 1363 SINCE THIS F'UHCTION IS NOT SET UP TO RETURN ANY VALUE, IT MI~HT JUST AS WELL HAVE BEEN CALLED BY ANOTHER MODI~ICATION TO THE "L" <OR "O"> COMMAND, I. E. "0 OUT EXP; [WHERE OUT l.rJOULD BE .. THE OPTION TO CALL THIS. ROUTINE, WHICH WOULD HAVE. HAD TO CALL 'EVAL' TO EVALUATE "EXP"J. xeo, II JMS BIN2BC TAD DIGS1 II II /CONVERT ARG TO PACKED BCD /GET F'IRST 3 DIGITS / /' I/O INSTRUCTIONS WOULD BE ·INSERTED HERE TO / SEND DATA TO A DEVICE, UNDER NORMAL USAGE. / 05231 05232 05233 05234 4343 1364 4343' ·5536 .JMS UPACKD · TAD DIGS2 JMS UPACKD JMP I . EF'UN3 I ~UNPACK & PRINT DIGITS' /SAME AS ABOVE ~FOCAL PAGE 9 SEMINAR NOTES ~ , 3 DIGIT PACKED BCD TO BlHARV COHVERSI~N BY RADI~ nErLATlOH. / FROM: CARL LOl,JENSTEIN, U. C. S. D., "DECUSCOPE 11 1 / VOL. Ht, t~O. 3. 05235 0000. BCD28N, 0 3044 DCA TEM1 05237 1044 TAD TEM1 05240 0260 AND C7400 05241 7110 CLL RAR 05242 3040 DCA TEM2 05243 1040 TAD TEM2 05244 7012 RTR 05245 1040 TAD TEM2 05246 1044 TAD TEM1 05247 0261 AND C7760 05250 . 7012 RTR 05251 3040 DCA TEM2 TAD TEM2 05252 1040 RAR 05253 7010 TAD TEM2 05254 1040 CIA 05255 7041 05256 1044 TAD TEM1 JMP I 8CD2BN 05257 5635 ~35236 05260 05261 7400 7760 C7400, C77601 7400 7760 0044 0040 TEM1= TEM2= EXP EX1 /= 256*H + 16*M + L.CDECIMAL> / 400*H + 20*M + L / 400*H / 200*H / / / ./ / 40*H 240*H 640*H + 20*M +'L 640*H + 20*M 150*H + 4*M / 74*H +. 2*M / 234*H + 6*M / -234ot<H - 6*M / 144*H + 12*M + L /= 100*H + 10*M +·L·(DECIMAL> /USE PACE 0 TEMPORARIES : ·;:··. /CONVERT F.P. ARG TO PACKED BCD 05262 0000 BIN2BC1 · 0 TAD HORD 05263 1045 05264 ·. 77:10 SPA CLA ERF.:OR2 05265 ·4566 /NEGATIVE ARGS ARE ILLEGAL FitH 05266 4407 /ENTER F.P. PACKAGE /ADD 0.5 TO ROUND UP 05267 1330 FADD FHALF •· FMUL SCALE 05270 4333 /MULTIPLY BY 1.0E-6 FEXT 05271 0000 TAD EXP /IS THE RESULT < 1? 05272 1044 SMA SZA CLA 05273 7740 .JMP B It~ERR /NO, ARG IS > 999999; TOO BIG! 05274 5301 IAC 05275 7001 DCA OVER1 /YES, MAKE OPERAND NON-0. • 05276 3043 ·.. DCA EX1 /ALIGN BINARY POINT TO THE LEFT · 05277 3040 . (15300 4741 .JMS I ALHH / OF THE MOST SIGNIFICANT BIT. /COULDW T ALIGN--ARG WAS TOO SMALL!:> 05301 4566 BI NERR1 EF.:ROR2 .JMS I DOUBLE . /NOW SHIFT 1 LEFT TO END OF WORD 05302 4527 DCA I REMI /SET 'REMAIN' TO 01 05303 3736 DCA I DIGI / SET 'DIGIT' TO 0, 05304 3737 TAD DCCON / & SET UP THE "DCA" 05305 1327 DCA 8IN283 05306 3322 . /= -2 CLL STA RAL 05307 7344 ·Ja.· 1 ....-FOCAL SEMINAR NOTES (15310 3€132 ~35311 7346 PAL8-V7 f15324 2~332 t15325 5311 05326 5662 DCA Ti BIN281, CLL STA RTL DCA T2 BIN2821 CLL IHL fHL DCA T.,._, .JMS I M10 I TAD T3 I ~:;z T·-:o '.JMP 8H~2B2 BIN283, HLT I,.... ..., 8IN283 ·=- s::.. ISZ Ti .JMP BHi281 ._IMP I BIN2BC 05327 3363 DCC ON, DCA DIGSi (15330 05331 ~3(1 (1(1 FHALF 2~:rno 05332 (1000 (1 20(10 0 05333 7755 2061 5737 05312 i:15313 3~371 (15314 7H16 7(106 ~35315 3•333 (15316 ~3531 7 i~1532f1 4740 1033 2071 (15321 5313 iJ5322 05323 7402 ~35334 05335 2322 I SCALE, -23 8/5/72 PAGE 9-1 /USE PAGE 0 TEMPORARIES -3 "'/= /SHIFT DIGITS 4 BITS '~~: SAVE RESULTS /POP OUT A IIIG IT / ~!; MERGE l.JITH THE OTHERS. /DONE 3? /NO /hi ILL BE A 11 DCA 11 TO STORE DATA ,... BUMP THE INSTRUCTION /DOt~E 2 GROUPS? /t·iO /VES, EXIT / /DUMM1' INSTRUCT I 01-i F.:OurrnING CONSTANT ../ = o. 5, /= 1. 0E--6 2061 5737 / / THE SCALING OF THE NUMBER FOR OUTPUT IS DONE AS FOLLOl•.IS: / / 1. 0.5 IS ADDED TO THE NUMBER TO ROUND UP ANY FRACTIONAL PART. THIS IS NEEDED DUE TO THE FACT THAT 0. 1 CANNOT BE REPRESENTED EXACTLY BY A FIXED-LENGTH BINARY FRACTION . 2. THE NUMBER IS MULTIPLIED BY 1.0E-6. THIS CONVERTS ALL NUMBERS LESS THAN 11000.000 TO' A FRACTION (1(1(1, ~3~30 => [I. 1 .. 1 => ~3. 0000~31). 3. THE RESULT IS THEN UN-FLOATED TO A FIXEDPOINT FRACTION WITH THE BINARY POINT TO THE LEFT OF THE MOST SIGNIFICANT BIT. THIS PLACES THE BINARY POINT BETWEEN 'REMAIN' CTHE OVERFLOW FROM THE FLAC WHEN 'MULT10' IS CALLED) AND 'HORD' CTHE HIGH ORDER WORD OF THE FLAC> . / ..... ,. ··,. ... / / ... ..... / ...·· / / ..... / ·"' . / / / 4. EACH OF THE DIGITS IS NOW DEVELOPED BY SIMPLY CALLING 'MULT10' TO MULTIPLY THE FLAC BY 10. AFTER EACH MULTIPLICATION THE NEXT DIGIT WILL HAVE "POPPED" OUT OF THE FRACTION IN THE FLAC, AND WILL BE RETURNED H~ THE AC. ·~ /FOCAL SEMI NAF.: NOTES 05336 (15337 (15340 05341 (15342 5712 5713 REML DIGI, 5667 6 b.:...·-' .... MHH, .~-::. 7335 (1(100 05343 05344 05345 7346 (15346 304~) 05347 0535(1 (15351 1(144 71 ~36 05352 05353 3044 1044 31~M4 7~3t)6 (15354 7i~n34 05355 0U37 05356 . 1113 (15357 4551 05360 2040 ~35361 5347 05362 ·. 5743 05363 0000 ALHU, t1NOR I, 00~30 75H1 (15367 5375 3343 05370 05371 05372 1566 7440 4551 05373 3566 05374 1·343 05375 1113 4551 5764 05376 05377 PAGE· 10 F.:EMAIN DIGIT MULT10 ALIGN DNORM UPACKD, 0 /UNPACK & OUTPUT PACKED BCD . DCA TEM1 · /SAVE DIGITS /= -3 CLL STA RTL DCA .TEM2 /NOTE: CANNOT USE T11 T2 OR T3! · ·UPACK1, TAD TEMi /GET DIGITS CLL RTL /ROTATE HIGH ONE TO AC 8-11 F.:TL IICA TEM1 TAii TEM1 · F.:AL AND P17 /MASK TO 1 DIGIT TAD C260 /MAKE A CHARACTER PRINTC /DONE? . ISZ TEM2 .JMP · UPACK 1 /NO .JMP I UPACKD DI GS1, DIG82, / / / / / (15364 (15365 05366 PAL8-V7 ·e/5/72 0· . /USE / DPR I ~ff / ROUTINE TO FLOAT THE SIGN OF THE FLOATING-POINT NUMBER BEING OUTPUT TO THE IMMEDIATE LEFT OF THE MOST SIGNIFICANT DIGIT. THIS ROUTINE AND THE TWO PATCHES AT LOCATIONS 5532 AND 6007 ARE ALL THAT IS · NECESSARY TO ADD THIS FEATURE. /PRINT ItIGIT &: SIGN UF -NEEDED) SPA /PRINTING A ::SPACE? /'T'ES, .JUST r10 IT .JMP DPf<:I t-H /NO, MUST BE A DIGIT.; SAVE AC DCA UPACf<II ...-·GET THE SIGN CHARACTER TAD I EF~RPT SZA .PHINTC ./PfHNT IF tlOT PRINTED 'v'ET ,, ·.1 & RESET CHAR TO 0 DCA I EF.:RPT /RESTORE AC: TAD UPACKD /MAKE AN ASCII. CHARACTER DPRIN1, TAD C260 PRitHC 1. ...IMP I DPRHH · DPRINT1 I) /FOCAL SEMINAR NOTES 5525 05525 *5525 0004 5532 >1<5532 >1<5774 / / 06001 06007 /DIGIT & SIGN PRINTER /USE THE SMALL HOLE NEW "FOUT" FUNCTION, OUTPUTS THE ARGUMENT AS A CHARACTER TO THE OUTPUT DEVICE. ALLOWS CHARACTERS TO BE OUTPUT. CALL: ... FOUT('.J) ... WHERE V IS ANY EXPRESSION IN THE RANGE 1.GE.V.LE.4095. NOTE THAT THE NUMBER IS ACTUALLY OUTPUT MODULO 256 (8 BIT CHARACTER). TO OUTOUT A NULL TO THE TELETYPE, USE ... FOUT< 256). . . TH IS MUST BE DONE BECAUSE 0 IS THE EMPTY FLAG FOR THE TTY OUTPUT BUFFER. 4453 7440 4551 5536 XOUT1 . 6001 >1<6001 JM:=; I INTEGER SZA PRINTC JMP I E:F'UN3I /FIX THE F'LAC /CANNOT USE 0! /OUTPUT IT /REMOVE OUTPUT OF "=" IN F.P. OUTPUT' CLA SKP 7610 6007 /OVERLAY 'OPUT'; PART OF FLOATING SIGN DPRINT / / / / / / / / / 0577'4 057'75 05776 05777 /CORRECT THE ROUNDING CONSTANT 4 05532 . 5364 .5774 PAGE 11 >1<6007 /OVERLAY "PRIHTC"; PART OF·F'LOATIHG SIGN DCA I ERRPT 3566 /SAVE SIGN CHARACTER 6160 >1<6160 /REST OF "FA" FUNCTION 06160 06161 06162 06163 06164 06165 06166 06167 06170 06171 06172 4540 1142 7332 1373 3370 1413 3030 4407 00(10 0000 5536 XA1, PIJSHJ 06173 6430 FPCON, XAOP, /CHECK F'OR & EVALUATE 2ND / ARG, IF ANY /ONLY L ·AC = 2000 => FGET / 2 ARGS => F'PUT /SET UP OPERATION CHKCOM STL CLA RTR TAD FPCON DCA XAOP POPA ./SET UP ADDRESS DCA PT1 FINT ,., FGET OR f"PUT FEXT FEXT JMP I Ef"UN3I FPUT I PT1 . /FOCAL SEMINAR NOTES 6311 >1<6311 / / , I ) PAGE 12 /OVERLAY OLD H.8. READER ROUTINE MODIFIED 11 L 11 , "t~OW 11 0 11 , COMMAND. CAN STILL BE USED TO OUTPUT LOCATIONS USED BY ~OCAL, AND HAS AN ADDED ACTION TO ALLOW THE EXECUTION or A LINE OR GROUP IN A rocAL PROGRAM. 1 sUecoMMANDSi / L LOCATIONS: D DO EXP: AS WITH OLD "L" COMMAND / / / / / 06311 €16323 4560 1066 4542 4545 4550 1376 7410 5314 1413 4547 2413 ~36324 ~3003 ~36325 4566 06312 (16313 06314 06315 06316 (1631? 0632(1 (16321 06322 THE EXPRESSION IS EVALUATED AND.THEN MADE ItHO THE FORM OF A LINE #. THIS L H~E (OR GF.:OUP, IF THE STEP PART IS 0) IS THEN EXECUTED AS WITH THE "DO" . COMMAND. TH IS IS GI VE~~ FOR AN E:i<AMPLE OF HOW TO CALL A FOCAL LINE OR GROUP FROM A PATCH. SP MOR / TAD CHAR PU:3HA OCOM 1, . GETC ::rnF.:TC 11 0 11 COMMAND HANDLER· /SAVE CHAR /GET ~~EXT CHAR /LOOK FOR TERMINATOR GLIST-1 8KP OCOM 1 /NOT FOUtrn POPA SORTJ /GO DO SUB-COMMAND OCLIST-1 08L I ST-OCLI !:::T ERROR2 /ILLEGAL CHARACTER .JMP / ~36326 4540 (16327 ~:16332 16.12 4453 7450 5337 iJ6333 ~]373 06334 i36337 (16340 06341 06342 7450 1 ~345 7640 45.66 1046 4557 7004 i~16343 3f167 06344 06345 i36346 06347 (16350 06351 06352 4451 4407 7€100 1430 4374 000i3 4453 €1633~:1 ~~16331 ~36335 ~36336 ono~ · PUSHJ EVAL-1 JMS I INTEGER St·4A JMP ODERR At·lD P7740 · 8t-rn TAD HORD :=;;zA CLA TAD LOF.:!1 F.:TL6 /EVALUATE THE EXPRESSION /(SKIP CHAR) /FIX THE FLAC /TEST RAt·H~E: 1. LE. #, LE. 31 ,... = 0, BAD ,... . GE. 31.· BAD / . t-~E. t.::1.1 BAD /ILLEGAL NUMBEF.: /QK, GET GROUP PART & MOVE ·,... TO PROPER BITS F~AL DCA LH~ENO .JM::; I MIN8KI FINTFNOR FADD I PT1 FMUL F100 FEXT JMS I INTEGER /!:;AVE GF.'.OUP PART /l-4EGATE FLAC /RE-NORMALIZE ~LAC <NEGATIVE) /SUBTRACT OFF INTEGER PART · /MULTIPLY BY 100(10> /FIX THE STEP PART /f"OCAL SEMINAR NOTES 06353 06354 PAL8-V7 TAD LINENO. DCA LI t·~ENO TAD LORD SZA CLA STL RAR DCA NAG SW TAD CHAR PUSH A TAD CCR DCA CHAR PUS HJ D0+1 POPA DCA CHAR JMP I .+1 PROC 06356 (16357 06360 06361 06362 06363 06364 06365 06366 06367 06370 06371 06372 1067 3067 1046 76413 71'30 3065 1066 4542 1077 3066 4540 0421 1413 3066 5772. 0611 06373 7740 p7740, 7740• 06374 06375 06376 0007 3100 0000 F' 100, . 7 3100 . 7522 *7522 06355 07522 /= 8/5/72 PAGE 12-1 /MERGE IT lr.IITH THE GROUP /,.LINE NUMBER ... . /f.JAS THE STEP PART = 0? /NO, AC = 4000; DO 1 LINE · '/ OTHERWISE = 0; DO GROUP /MUST SAVE CHAR / & SET IT TO A C.R. .,.. FOR PROPER EXIT /NOW GO 11 D0 11 ; • • /RESTORE SAVED CHAR /NOW GO DO NEXT COMMAND 100.0 ~· 0 ·/DON'T GO TO SVSTEM AF'TER "L" POPJ 5541 $$$ ; /CONTINUE WITH NEXT' LINE .. /tOCAL SEMINAR NOTES ~3041 AC1H AC1L 0042 ALIGN 6623 ALitH 5341 AXO UT 0017 BASE 1361 8CD28N 5235 BINERR 5301 8IN28C 5262 8 It~281 5311 BIN282 5313 8 It~283 5322 BOTTOM 0035 CCR 0077 CF"RS . 0133 CHAR 0066 CHKCOM '1142 CNTR 0057 C200 0123 C260 0113 C7400 5260 C7760 5261 DATA 5124' DCC ON 5321 DIGI 5337 1UGIT 5(13 DIG81 5363 DIGS2 5364 Dt~OR I 5342 DNORM 7335 DO 0420 DOUBLE 0127 DPRHff 5364 DPRitH 5375 DSIZE 0020 DUBLAD 5733 Dl.JORDS 0060 1743' EFLIN EF"UN2 1754 EFIJN3I 0136 ERROR2 4566· ERRORS 2725 ERRPT 0166 EVAL 1613 EXP 0044 EX1 0040 FADD 1000· 3€10~3 F"DIV 0(100 F"EXT FGET 0000 F"HALF" 5330 FINDLN 4555 FINT 4407 FISW 0052' F'LAC 0044 PAL8-V7 FLTXR 0014 F"LTXR2 0015 FMUL 4000 nwR 700~3 FPCON 6173 .· F"POlJ 5~30i3 FPIJT 6000 F"SIJB 2000 F100 6374 '4545 GETC · GETLN 4554 GINC 0070 GLIST 1377 GS1 1437 HORD 0045 INDEV 0064 Itff'IJT 0756 HHEGE 0053 LASTLN 0025 LI BRAR 7503 · LIM 1362 LINENO 0067 LORD 0046 MCOM 1136 MFLT 0117 Mit~SKl '0051 MINUSA 0112 MPER 0115 MULT10 5667 MIJLT2 5715 M10I 5340 M2 t:H 11 M20 0105 M240 0114 NAG%J 0065 OBLIST 2417 OCLIST 2414 OCOM 6311 OCOM1 6314 ODERf': 6337 ODO 6326 OUT DEV 0~363 · OVER 1 0(143 OVER2 0(147 PACl<C 4546 0022 PC PC1 0614 PDLXR 0013 0102 PER POPA 1413 POPF 4544 POPJ 5541 PRINTC 4551 PRNTLN 4553 0611 PROC 8/5/72 PT1 0030 PUS HA 4542 PUSHF" 4543 PUSHJ 4540 P13 0005 P17 0107 P177 0106 P7600 0104 P77 0122 P7740 6373 RE ADC 4552 REMAIN 5712 REMI 5336 RTL6 4557 SCALE '5333 SORTC 4550 SORTCN 0054 SORTJ .4547 SP NOR 4560 START 0177 TEM1 0044 TEM2 0040 TESTC 4564 TES TN 4561 THISLN 0023 . · TLIST 1400 TSTGRP 4563 TSTLPR 4562 Tl 0032 T2 0071 T3 0033 IJPACKD .5343 ·UPACK1 5347 XA 1343 XAOP 6170 XA1 6160 XBI. 5204 XBO 5227 XCT 0020 .· 1553 XIN XOUT .5774 XP43 5226 XRT 0011 !>c:RT2 0012 ·PACE 12-2 . ! . ~ : /FOCAL DEBUG PATCHES #1 PAL8-V7 EVS/72 PAGE 1 /FOCAL DEBUG PATCHES #1 /DEBUGGING PATCHES FOR RUNNING FOCAL WITH (1063 *63 .2732 02732 02762 *2732 f5342 2762 /CHANGE I,O ROUTINE POINTERS /ERROR HANDLER PATCHES FOR IOF JMP 2742 /HO WAITING FOR OUTPUT NOP ~REMOVE *2762 7000 /ADDlTI0~4AL 0001 00001 00002 *1 0013 . p 13, 0100 Ci 00J /NOl•J 1462 01462 02277 02545· :+:1462 *2277 13 1(10 CHANGE ALL REFERENCES TO THEM. / 11 GS2+1 11 / 11 UTE+1 11 TAD C100 ·2545 ·*2545 / 3044 ··:+:3044 03044 . 1002 . 5065. . :+:5065 05065 /MOVE HIO Cot~STAtHS FROM ·Lacs 5 & 6 ·b302 1001 1001 THE "TLS" PATCHES TO ALLOW THE USE OF OS/9 ODT:' TAD P13 1001 2277 / 11 0UTL 11 / 11 I33 11 1354 2414 00063 1354 00064 .. 2414 "IO~": 11 PCK1+7 11 . TAD P13 / 11 RU82+2 11 TAD c: 10(1 / 11 STARTL+l 11 . TADP13 ... PAGE 1. /FOCAL DEBUG PATCHES #2. /FOCAL DEBUG PATCHES #2 /DEBUGGING PATCHES FOR RUNNING FOCAL WITH "IOF" / WITH THE STANDARD "IOF" ROUTINES OVERLAID: 0063 0i3063 00(164 *63 DOUTL 2676 27134 DI33 :+:2732 2732 132732 /DEBUG LOW-SPEED OUTPUT /DEBUG LOW-SPEED INPUT /ERROR HANDLER PATCHES FDR IOF .JMP 2742 5342 /NO WAITING FOR OUTPUT >1<2762 2762 02762 /CHANGE I/O ROUTINE POINTERS /REMOVE THE "TLS" 7000 . /ADDITIONAL PATCHES TO ALLOW THE USE OF 06/8 ODT: 0001 013001 0013 00(102 . 01013 *1 /MOVE TltJO cm~STANTS FROM LOCS 5 t 6. p 13, 13 c1130, HH3 I. /NOlJ CHANGE ALL f':EFERENCES TO THEM. 1462 :+:1462 01462. 1001 2277 02277 02545 1001 / 11 UTE+1" TAD CH10 >1<2545 /II PCK 1.+7 11 TAD P13 :+:3044 /II F.:UE:2+2 11 TAD c 10(~ 1002 . 5(165 05065 *2277 1001. 3i344 03044 TAD P13 101!'.12 2545 /"GS2+1" :+:5(\65 / 11 S:TAF.~TL+1 11 . TAD P13 /FOCAL .DEBUG PATCHES #2 PAGE 1-1 E.JECT 02676 ~32677 1327(1(1 E127E11 132702 ~327ft3 2676 *2676 /OVEf':LA'r' 'XOUTL' 001ZH3 6046 DOU TL,. 0 TL~3 T:3F /SLOlJEST WAY .JMP . -1 CLA .JMP I DOU TL 61~141 5::~:i:~n3 7200 5676 DI33, (127(14 [127(15 027136 (113 (1 (1 6(131 53~35 ._I MP ~:::12707 6(136 0H16 7450 53135 1123 5704 k: !<: 8 AHD P177 02710 02711 02712 02713 02714 0 f<SF . -1 St·~A .JMP DI33+1 TAD C200 JMP I DI33 /IGNORE PARITV1 NULLS
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies