Digital PDFs
Documents
Guest
Register
Log In
MAINDEC-12-DAFPA-A-D
2000
26 pages
Original
1.4MB
view
download
Document:
FPP-21 Data Exerciser
Order Number:
MAINDEC-12-DAFPA-A-D
Revision:
0
Pages:
26
Original Filename:
http://bitsavers.org/pdf/dec/pdp12/diagnostics_set2/MAINDEC-12-DAFPA-A-D.pdf
OCR Text
,./ I "/ I '"" A IDENTIFICATION PRODUCT CODE: MAINDEC-12-DAFPA-A-D REPLACES: MAINDEC-12-DOQA-D PRODUCT NAME: FPP-12 DATA EXERCISER DATE CREATED: JULY 15, 1972 MAINTAINER: DAIGNOSTIC GROUP AUTHOR: W. MANTER 0 oaS (!..-f .. ,' I ' j -1 \" ' l'\i.. r IDENTIFICATION PRODUCT CODE: MAINDEC-12-DAFPA-A-D REPLACES: MAINDEC-12-DOQA-D PRODUCT NAME: FPP-12 DATA EXERCISER DATE CREATED: JULY 15, 1972 MAINTAINER: DAIGNOSTIC GROUP AUTHOR: W. MANTER \ .. ..' .... ..... ~ ,,,_.. f' \ I 4'· '* \ . ' 1 t~ 1·J1) ·r. I ; / /.~ _.._ I I I I I I I I I JOtNTIF'lCATJON PRODUCT OOCEI PRODUCT NA~EI DATE CREATEDI MAI NTA I NtlU AUTMOAI ~AINOEC 12•0IMC•O F'PP•U I NSTRUCTl ON TEST 2A OCTOBER 1, 1971 OtAGNOSTtC GROUP WALTER MANTER 1(,S<.4,J -::. ooo o 1 IV'OD~ T/u Pr<.£: ~-&.T $TART COPYRIGHT© 197 f DIGITAL EQUIPMENT CORPORATION ';;to '' /,, j ~· ' ~. (_ ... PDP-12 LIBRARY OANDA c AN INTERACTIVE SUBROUTINE USING THE VR12 DISPLAY Order DEC-12-FISA-D from Program Library, Digital Equipment Corporation, Maynard, Mass. 01754 Price $1.00 Direct comments concerning this document to: Software Information Service Digital Equipment Corporation Maynard, Massachusetts 01754 0 aur. JUIJhAlllJIW 9&4?. 04Wii#F44&&P,f_ µ, ¥P ... .. 0 ( '• .. Specification for QANDA Subroutine. ABSTRACT QANDA is a PDP-12 subroutine written in LINC mode which allows a user to display textual information on the scope, ask questions of the viewer# allow editing of the input, and receive responses thereto. PRELIMINARY REQUIREMENTS QANDA will operate on a PDP-12 computer equipped with a VC12 LINCscope control and VR12 CRT display, and Teletype. The subroutine is called by the following forntQt: . +1 . +2 . +3 .+4 JMP QAINIT TXTSTR /POINTER TO TEXT STRING (HALF WORD ADDRESS) ANSWER /POINTER TO ANSWER BUFFER (HALF WORD ADDRESS) REFRESH return DONE return The calling sequence must be in LINC mode. A JMP to QAINIT will initialize the subroutine and fill the answer buffer with the underline character ( ) . The subroutine must be initialized at least once. QAINIT is located at the relative address 0 with respect to the beginning of the routine. .+1 Points to the first character of the textual information to be displayed on the scope • Characters in the text string which have special meaning are: c Character Code RETURN 43 Endl of a line of display. Place next character on nel(t line. < 74 Interpret the decimal number immediately following < as the ,number of characters in ·the question field (Range 1-9) . \ 34 End of text string F 06 Treated as a special character only if it appears at the beginning of a line. If present / the entire line will be displayed in full-size character format. F wi H not "Op.pear on the scope • Meaning •' .. Character Code Meaning H 10 Treated as a special character only if it appears at the beginning of a line. If present, the entire line will be displayed in half-size character format. H wi II not appear on the scope. If neither F nor H is present at the beginning of a line, half-size is assumed, and the first character of the line wi II appear on the scope. Intermixing of half and full-size characters between lines is legal. 0 The 6-bit character string must conform to the character set accepted by DIAL. (See Table I.) The "TEXT" pseudo-op in DIAL may be used to create the text string. For example, to display the following message on the scope in full-size character format: DATA AT BLOCK UNIT the text string may be coded as: TXTSTR, TEXT ...... ZFDATA AT BLOCK <3 FUNIT <1 \Z and would be assembled as: TEXT I 0 0604 0124 0140 0124 4002 1417 0313 7463 4306 2516 1124 7461 3400 NOTE that the character "Z" before and after the text string is a delimiter for the assembler and does not appear in the assembled text string. (Any character not appearing in the text string may be used as a delimiter). 2 () '\ '• .. Note also that the character "TAB", if typed within the text string, wil I appear in the assembled string and will not be interpreted as a special character by DIAL. The use of "TAB" within the text string should, therefore, be avoided. The subroutine will automatically place a space before all question fields on the scope. The text string wi 11 not be changed . . +2 Points to the first character of the answer buffer. The answer buffer need not be set up in any special way; it must be in length at least the number of half words equal to the sum of the number of characters in each question field plus one for each question field plus one. In the example above, 7 half-words long: 4 for the total number of characters in all question fields plus 2 for the numberrof question fields plus 2 for the number of question fields plus 1 for the terminator. Upon entry, QANDA will initialize the answer buffer as follows (see example above). All characters in each answer field are initialized to the underline character (00): ANSWER, 7400 0000 7400 3400 Code 74 precedes each answer field. Code 34 is the terminator. These codes are placed in the answer buffer by QANDA upon initialization. Characters, as they are received by QANDA from the Teletype, replace code 00 from left to right in each answer field. Conditions wi II always be such that the presence of a nul I value (00) in an answer field wi II guarantee that all remaining characters in that field will be set to 00. Note that an all-null field is possible. If the typist responds to the questions with the block number 43 and the unit 1, when the "DONE 11 return is token, the buffer wi 11 show: ANSWER, 7464 6300 7461 3400 If the responses to questions are dealt with as received, the same answer buffer may be used with various text strings in sundry calls to QANDA, since it will be initialized by QANDA upon each initialization entry; the area reserved must, of course, be of sufficient length to accommodate the requirement among the text strings. 3 ,; .. .+3 QANDA will refresh the scope once and then will return to this address, provided a LINE FEED has not been typed. This return is provided so that the calling program may periodically check external conditions: e.g., a sense switch may be checked or; the program may display a message while awaiting completion of a tape instruction which it may check following each refresh. Examining a partial answer buffer, however, is not recommended, because the answer buffer can be edited at any ti me by the typist. To maintain the display on the scope, QANDA has another entry point, QARFSH, which will not reinitialize the answer buffer. QANDA must be entered at this point each time it is to be refreshed. It is located at the relative address QAINIT +53. QANDA wi 11 a !ways return to . +3 or . +4 following the instruction JMP QAINIT, regardless of the address of the instruction JMP QARFSH. A common situation is to place the instruction JMP QARFSH at . +3 fol lowing JMP QAINIT . . +4 QANDA will return to this location only if either 1. 2. LINE FEED is struck, or RETURN is struck and no question fields exist. A return to thi~ address signals that the typist has completed his input. INPUT Input is received from the Teletype keyboard. Legal keyboard characters are converted to their 6-bit equivalent and displayed on the scope. Legal characters are shown in Table I. The following input characters are not displayed, but are treated as special characters. Character Meaning Code \ 34 Ignored on input ALT MODE 36 The scope display is reinitialized. All answer fields are reinitialized to the underline character (j. RUBOUT 37 A cursor wi 11 a Iways appear on the scope in front of the next character to be typed (unless there are no question fields). 4 0 Character Code Meaning Typing RUBOUT will delete the character preceding the cursor and will move all characters following the cursor one character to the left, unless the cursor is initially at the beginning of a question field. RETURN 43 The cursor is moved to the beginning of the next question field. If the cursor is currently in the last field, it will be moved to the beginning of the first field when RETURN is typed. If there are no question fields, RETURN wi II have the same effect as LINE FEED. LINE FEED 45 Causes QANDA to exit to the "DONE" return. TAB 47 Ignored on input. < 74 Moves the cursor left one position. Subsequent typing of another lega I character wi II cause the present character on the scope to the right of the cursor to be replaced by the character just typed. > 76 Moves the cursor right one position unless that character is the underline character (j. OUTPUT Al I output is to the scope, as described above. USAGE OANDA is written in LINC code. Along with ·the keyboard input subroutine, GETKBD, it occupi-es two blocks (512 words) of binary LINC tape. It may be assembled with the calling program by adding the source to the program. If this is done, remove *1000 at the beginning of the subroutine. It may also be called by reading the binary of the program into LINC location 1000 (memory blocks 2 and 3) and executing an effective JMP 1000 and JMP 1053 to refresh. Two blocks of the binary must be read into core memory. PROGRAMS CALLED A LINC Teletype input subroutine, GETKBD, is called by QANDA and begins at location l21 of the second block of the binary. 5 ·c It can be used independently of QANDA. GETKBD will accept ASCII input from the Teletype and convert it to 6-bit code as shown in Table I. 0 Its calling sequence is: JMP GETKBD RETURN address GETKBD returns with the 6-bit code in the accumulator. If the accumulator equals zero, a key was not struck, and no input was received; or an i I legal character was typed. GETKBD uses the LINC instruction IOB followed by a PDP-8 Teletype IOT instruction to perform the Teletype input/output functions. The following instruction sequence is issued in the subroutine QATPE to echo a character: QATPE, IOB QATLS /EQUATED TO PDP-8 IOT TLS LDA 0 STC . +4/SAVE RETURN IOB QATSF JMP /WAIT FOR FLAG. PDP-8 IOT TSF .-2 JMP /EXIT This routine prints the ASCII character in the accumulator then waits for the printer flag to rise. The routine can be made more efficient by first waiting for the flag, then printing the character by changing the above routine as shown below: QATPE, STC QAACUM /SAVE AC ADD 0 STC QARETR /SAVE RETURN !OB QATSF /WAIT FOR FLAG JMP .-2 LDA QAACUM, /GET CHAR 0 IOB 6 QATLS /PRINT IT CLR QARETR,JMP /EXIT I AC =O Subsequently, less flicker wi 11 appear on the scope while characters are being typed. However, the cal ling program must initially cause the Teletype flag to raise when the program is first started. This may be accomplished by the following instruction sequence at the beginning of the program: IOB 6032 /PDP-8 IOT KCC /PDP-8 IOT TLS fOB 6046 Whatever method is used, the ca Iii ng program must, of course, also conform to the same convention throughout the program whenever it is driving the Teletype. RESTRICTIONS QANDA must reside in the same LINC lower memory segment as the calling sequence. It uses, without restoring, index registers 1, 2, 3, 4, 5, 6. Further, these registers cannot be used by the calling program between the refresh return and the next call to the refresh entry unless they are first saved and then restored. The text string and answer buffer are separate from each other and from the calling sequence and may therefore be in upper memory. However, the text string may not start in the left half of LINC location 2000 (e.g. the left half of the first word of the upper memory segment) unless the pointer to the text string is coded as 2 \2000, or 2 \TAG, where TAG =2000. QANDA will display a maximum of 44 10 half-size characters horizontally on a line before scope "wrap-around" will occur. Likewise, a maximum of 22 10 full-size characters per line may be displayed. A maximum of 13 10 lines of text (either half-size of full-size) may be displayed vertically on the scope without wraparound. The initial Y-coordinate setting is coded as 2778 at location QARFSH+l. This initial Y-coordinate setting may be changed by incrementing or decrementing this number by a 7 c number which is a multiple of 408 . Thus, to raise the initial Y-coordinate one line and therefore increase the maximum number of lines to 14 10 , the number 2778 may be changed to 3378 at location QARFSH+l. 0 Table I PDP-12 Character Set Character 6-bit Code Comments @ 00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37 40 41 42 43 44 45 46 Illegal A B c D E F G H I J K L M N 0 p Q R s T u v w x y z [ \ ] ALT MODE RUBOUT SPACE II RETURN $ LINE FEED & 01 VI Shift/K Shift/M Illegal 8 f) .. Table I (Cont) PDP-12 Character Set 0 Character 6-bit Code Comments TAB Control/I + 47 50 51 52 53 I 55 56 57 0 60 ( ) * 54 l 2 3 4 5 6 7 8 9 < (1 > ? 61 62 63 64 65 66 67 70 71 72 73 74 75 76 77 9 c LI GJANDA, I *' ?(1 i;100 0 VJ 1~0 I 000? /REMOVE *1000 RELOW IF /INSERTING SOURCE DIRECTLY /INTO YOUR PROGRAM SOURCE *1000 /REMOVE.IF DESIRED 0003 ril00 ii (!)(l)l15 000(, 0007 0010 / l 001? / 1000 0 (11 1 00] 4 1001 lfll0? !0?0 000? ?.000 00!5 l.0Cil3 1060 0 01 6 1004 0000 7 100 5 3?00 /T1J (;i(IJJ ~H,11 vrn?n HERE TO I NI TI ALI ZF: THF: lWUTI NF: OAINIT, LOA /SAVE JMP RETURN ? ADD 0 STA 1 OAB, /JMP 0 STC /PTR TO FIRST PARAM LnA /GFT l IZJ0 (, 4001 1007 1001 0(1?? H1! Vi IOI! 1n1 '' ! f'I l ~l l Vi I 11 1?6/J 1 I ADf) ()Af)+ 1 50 ~' 7 J I~'.'' J ST!': (\Af~-1 UJI\ I ') ;'i cl~; STC OARF":H-l '.1 ~ j ',? /1 c'i i'l ~· '1 H0?(, (l)Vi?7 STC 6 11MVi (, JFLn, 8 (\(', (\, FIR~~T PAEAM /PTR TO HALFWORn-1 I /Xf~(, IJSFO AS A SvJI TCf-1. =0111 =1777 I F YFS 001,1 0\1:1 I l 0 I') 1 Vi l (, lfll l 7 OViLJl1 :; F:T 1 /XR'.'\ f:lARFSH-1 SF.T /j vl f,1 'l? l VJ?V! l Vl c, 7 (JA G-1 0Wl0 +3 ADD QAL+8 VH.ri~) 1 [11 Yj~)~ 0 /OANDA SUBROUTINE FOR THE IPDP-12 lVi ')? 0wn /XR4 TO PTR TO OUFST!ONS !TO HFRF IF FIRST T!MF TH• Cf,: VJ 0~~ /1 (cl\711 (, l '~ ~· l l Vi?? 10?3 li10'.l7 10:?4 &~03 "• 0 0 Lj(ij llHl/i l C')[7)L1? 00L11 0 0Li4 00<'15 R046 132/i 7?.31 0050 rm s l l r;,3 '.'> ViVl 511 ViVl')') JMP OAT l02S r)0/17 f,)0 5? f/) fJj L) :1 4 72 70 00 I f:i 10?6 !027 1030 1031 10'.l? 1033 10311 1036 I Vl17 l 401 SET 00L>l 000/J NOP LOH I OAD, 7035 70 50 1460 !71043 7026 7021 4 /H. JMP OAO JMP • + 6 JMP OAE SAE I / 74 /34 J 3LJ3 l 32 4 I ! ?VJ - 6Vl 00 I 7 COM STC XSK l (i1 /~ c) 70 .11:1 JMP I 0 /1 (, I vl47 13?1 L DH J 7Vl? f, Pl0(,') J(1') 0 0 0 6A 10 s l I 3 Li :1 !1f'1 Al RUFR A fl A I 7717 STH r<· /CR? JMP OAD IN') UACA+4 I F:X ,C\M Ji'J E NEXT CHAR /INITIALIZF ANS\•IFH STH 3 / 7 4 TO ANSvJFRS /NEXT HALFWORD LDH I 4 I 1 A1 Vl?? f, r,-1 r1 F JMP /100 (, (1)0 'i 7 00 (,VJ (1)0 (,j RUMP PTF< IF H rm 0, '0 43 l 0 I! l 1 Vl .t1? ! VJ /j :1 1 "1.!J /1 (,) C1 ',(, /F (, 1 6 "-Y 1 JMf, (lf\ fl ViPJ(,/1 /0 Pl AC /HIJMf' PTR TIJ AN ~~ v!F I< '~ I f\N cj VIFl< Uf\F, (110 (,/J STH 3 SET I 4 Fl!JFI~ I ~; I ~JI Tr /\Tf.~fl / xf</j TO PTR T0 LA~:T TYPF:Dll F:R FlLWR 00 67 Vl 0 70'.I 10 S? 0000 007 l ! 0 53 I 020 0 /----RE-F:NTER ~F:RF: TO REFB /I 'JI TI AL y POSITION OARFSH, LDA 10 l,j I .. vl VJ 7? cl 007'.1 007/J !•H'17S ·~ •17 r. Mfl77 0 I I 1()I 1l I V1 J J !7154 Hl55 Hl'iA H'J'i7 I V!Ml f/J'?.77 5113 !710t<.3 f/Jf/J(IJ(i? 0Ci?45 1Vlfd 1 (II(,;> Hl">? Vltilld tiltilCll'.l 7~' 7 (!) 70 7 11 I 3'?'.'1 !(IJ?VJ l St<.!71 5 J Vl3 3 51 '? 71'11 1323 1 or.:1 t' J n;' 11~ f.11 1llW'I tl 1 t-1/1 I ~l ,<,c; 1n l "1 (,7 1070 1071 )1·17? I Cl71 1V'l711 l Cll75 107f J :: 7·1 l I VJVJ I trA I I ICll'-' I IWl r~ J OS [i} 1 (1 ("'\ >11 rn (~ 1 1 (,) r'1 1 I 1 r1, 1 I Y n I 1 'l 1 111 (' l l '1 011 f, !11 I 7 (I) l '?(;1 V1 I '? I "r. '? 7 7 STC QAH-1 5F:T I 3 />( P3 TIJ PTR T!l 11\L F '·10 RI) 1 (II SF:T 5 S WF. f~ RUFk 01\RFSH- I OA r,, SF:T I 1 JMP 01\T .JMP • + 7 Lf)H I 3 LOA I llCL I STC: CJAM+?. Af)D OAW JMP OAM LDH I 3 / Xf<S TIJ 0• PTfx TO LAST rJISPL• /F /H. RIJMP PTf< /"JF:I THF:R. ASS! JMF: HALF SI Z F /SF:T /NIJP I f\JSTR TO IN AC />1{ l"'IP C:L EAf< FF F08 PTf~ J 0?~J I r.?. C'I U)A R;r. SH'l'.1 '.IS I ~l 5?4S 0W>IJ 1 A'? Vl :>TC QAM+2 1\0[) QAW+ I STC QAP+3 /SET INSTF< TO /Af)O 9U IN AC MSC I /FAD r.0NTP0L RFr:I ST•~ /THIS INSTR CHANGF.S. F:l THI f-ll\M, /j RSF. SET FF FO f< ll ?, V11 ?~ V\ I? '.I (1 1 '"'' (> 0 J ?', r,; I '? (, 111? 7 [·1 l 'l 11 V. I ~ll 'I l 1~' '" J 1:1 (1111~ I I V'l 11 110"> I IC'1 r. 1 IV.7 1 I ICll I 11 l I I 1 ~-' 111 '.1 1114 l I Jc; I I Ir, i'?J?(!)(I) VJ llJ (II /J VlVJAl VJ 1Vl Vl 1 0?0 77'.',7 I I hf1 0000 13:?3 7?3?. 7'.1 VJ I QAH, :'>00 MSC /j SF:T l 100 LOA -40 ADM 0 LOH 3 JMP OAf)+l JMP OAZ /AC Tl) CONTr<OL RF.GI '.'TFJ; /Xf< I Tl) INITIAL x POSI TI f)"J /'( Cl)l)r-<nI~lA1F /'( COIJl<DI Nl\TJ:' Ml!L TT Pu- /74 RIJMP PTR Tl) c r111 c; 111 '1 (, :; 117 () 1 /1'.1 Vi I -'l 1 111 7 1 1 :? Vl 1191 1 1 ?.'? 11?3 '1111? l l:? 4 (f, l /1'.I I I ?5 0} /J/I I I?. 6 713t<. I 11?.0 11100 7vll'i? 7242 71 14 1? Lt'? 1520 JMP OAJ SH rJ I f\JFXT CHAF<• /3/1 / 'JF I THF:R 4~:-10 JMP JMP JMP JMP SRO QAG QAP QAH OAP I x /CR. MOVE AND y CO() Rn I NIE / I SPLAY CHAR /PICK UP NEXT c:-!AR /TO 1-(J:'PJ:' IF DI SPLAYI "JG A'lll /SWITCH Tl) DISPLAY CURSOR. F.ITHF.RH 7777 ~i I LI 'i I I:? 7 1 I :>iO \?) llJl'?JVJ 0 75),<, JMP QAF 1131 J 13" 11 '.1'1 1 1 'l /1 1 1 'l ') 11 '.Ir. 1 I :1 ·1 1 1 /1(' !:>,? c; ·11 111 7 I?. c; 7S91 0117f;J 7(1(1/1 1 'I] •Or. fil I Al J l 11? (11 /)~;:, I 1111 l I 1111 l ) /1'1 1/j1? 1 IJCIJ 2 71 l I I 11?? V. I 116 (111117 VI I '10 q I '11 ri 1 '1? f·IJ 'i'.1 t l 1 c; /J '1 I 5'i r1 1 'i (, '1 •,7 ,~ 1 r. , Vi 1 63 (1 I r,11 cl /I FXR4=XR5, THF.N St..1! TCH=77 /OUFSTI f)N M0DF I Of\ I, 7'.°'3'? ·r J I '' OA.J, LnH JMP .JMP .JMP .JMP .JMP f\l F: ,JMP "iF:T I 5 QA0+1 QAH OAI-( Of\ I - /1 G"T>< ~rn / 74 /'.1/1 / ·JF:T THF:f<. DISJJJJ\i IT /T'I HFRF: IF OlSl'LAYJ:'D H' 1FR I Of\11 /NOTH I Nr; T(PFD I . F.X f T ? OAY SH D ? JMP (11\K + 4 SH[) I ? 11 /LF? /YFS. /Cf~? FXI T '1 I r,c, Vl I r, r-, (jj 167 0170 0171 0 I 7? 0173 0174 0175 0176 0177 0200 0?C~ I 0?0? '1?03 Vl~'f14 O?W1 Vl?C1(, VJ?07 til?!Vl 0? I I 0?12 0213 02 J 4 0215 0216 Pl21 7 022"11 0221 0?22 0223 0224 0225 0226 0227 0230 0231 (,1232 0?.33 023.ti 0235 0236 0237 0240 0241 17J242 0243 0?44 0245 0246 0247 Vl2 5V'l 0251 17J252 0253 0254 '12<;5 0256 17J2"i7 0260 Vl261 02 f,2 .. I I46 I l .lf7 I I "iril t 1 51 1152 1153 1154 1155 t I 56 11 57 t I 60 1161 1 I 6? 1163 1 1 r-,4 I I 6S I I r,r, 1 I r, 7 1170 I I 71 I I 7'? 11 73 1174 11 75 11 76 11 77 1200 1201 1202 1203 1204 1205 1206 1207 1210 1211 1212 1213 1214 1215 121 6 1217 1220 1221 1222 517? 7?31 7?, (,3 7263 102C'l 000C'l 1344 7053 1304 7232 7053 177") 1302 1460 0037 7263 0045 0004 0043 0004 7213 1325 1823 7232 V'l01 6 0011 1345 0450 7212 7263 1223 1224 1225 1226 1227 0206 731 l 7231 7053 7051 1230 7225 1231 1232 1233 1234 1235 1236 1237 1240 1241 1324 1420 7400 6000 1460 Ci:l034 0220 0220 6(1)00 7223 0206 7053 1422 7175 1422 7305 1422 7015 1422 7053 1422 7175 1422 705~l JMP OMI XSK 6 /IS THERE AN ANSWER FIELD? JMP QARFSH /<? SJ-ID I 2 JMP QAL />? SHD I 2 JMP QAK SHD I 2 /ALT? JMP OACA /RF:INI TI ALI ZE SHD I 2 /BACK SLASH? JMP QARFSH /IGNORE SHO I 2 /RUBOUT? JMP OAL II GNORE SHO I 2 /TAB? JMP QAHFSH /IGNORF: STr; .+ 5 /Ar;CF.PTARLF: CHAR JMP 01\0 ITF.ST NEXT CHAR JMP OAO /74 RACK PTH lJP RY 1 JMP QAQ /34 ' LOA I /OK. STORF: IT 0 STH 4 JMP QARFSH /REDISPLAY QAL, LOH 4 ITO HERF: IF RUBBOUT OR < JMP QAO+ 1 J:>1P QARFSH /74 IGNORE -6002 LOH 2 /1'EST THE CHAR SAE I /RUBOUT? 37 JMP QAO /NO. BACK PTR UP BY 1 SET s 4 SET 3 4 JMP .+2 LOH I 5 /RUMP PTR LDY I 3 I GET NEXT CHAR JMP QAO+l NOP /IF 74 OR 34, REPLACE: CUR8 CLR STH 5 AZE /WAS IT 74 OR 34? JMP • -7 /NO. CO:-.ITINUE JMP QAQ /RACK PTR UP BY ITO HERF. IF CR QAN, XSK 6 JMP QAK+4 /EXIT ROUT I NF. IF NO ANSWE8 JMP QAO JMP QARFSH 174 MOVE PTR TO NEXT QIJF:S8 JMP QAE+l /34 END OF sum. MOVE PTR8 ESTION Fl ELD JMP QAN+2 QAO, LOH I 4 SHD I 7400 JMP 0 SAF.: I 34 XSK I 0 XSK I 0 JMP (I) 0 0 ") /S\R I I I +1 74 RF.GIN FI ELD +2 34 END RUFR +3 NF.I TH ER 74 NOR<t 12 ( J1 ( ·~~~~-----------~------------- ------ "-" .. .. 0 0263 0264 1242 0241 0265 0266 0:::'67 1243 1244 1245 3430 4002 3506 0270 0271 12116 1247 I :?.50 l 251 1252 1253 1254 1255 1256 I?. 5 7 1260 1261 1262 1263 1264 1265 1266 1267 3506 :?.001 4001 2005 0017 20lil4 0'150 001 l 5127 31 13 1742 1 762 6000 1020 3777 1I40 0004 7053 1270 I 271 OAT. QAP, ABLE ROL /S\R TO DI SP LI NC CHAR IN9 /MUL T ElY 2 F'OR INDEX TO A• ADD QAX+4 STC 2 ADD QAU /ADDRESS OF' CHAR TO DISP • /THIS INSTR CHANGES. EITH8 9U 0?7? 0273 0274 0275 ~J276 V'J?TI 111300 0801 0302 0303 0304 03fll5 0306 0307 0310 031 I 0312 0313 0314 c cl QAQ, ADD QAU ADD 1 STC 1 ADD 5 COM ADD 4 AZF.: CLR STC QAI-2 ADD QAH-1 DSC 2 DSC I 2 JMP 0 LOA I -4000 ADM 4 JMP QARF'SH 0::115 1?7? 0316 0317 0320 1?73 1274 l?.75 1276 1?77 1300 1301 1:1Vl2 1303 1304 1323 1020 Vl040 7125 QAZ, LOH I 3 LOA I -40 JMP QAI-4 1305 1306 1307 1310 1324 0470 7263 7424 QAK. LOH AZE JMP JMP 131 1 131? 1313 I 3 14 I '.H 5 1020 0001 I 1 4f7l 100-'! 7004 131 (, 131 7 l 3?Cll VJ 1 (il 1 q~~p~ {7i :1?. /j 03?5 0:1?"1 0:1?7 0330 0331 0332 fil333 Vl 334 0335 0336 0337 034fil 0341 0:-l4? (il :111'.} 03/14 0'.}L15 031l6 (/) 347 [)J '10 0351 '13 52 0351 03S.ti 0355 0356 0357 TO SPACE CHR / GF.T ADDRESS OF' ANSWER RUR /SWITCH=0 OR 7777 /Y COORDINATE IN AC /DISPLAY CHAR /BACK UP PTR BY /REDISPLAY / 1321 1420 0600 6000 1460 0010 0220 0220 6000 vn?t Wl??. /ADD 4 TO XRl LOH I SHD I 0600 JMP 0 SAE I 10 XSK I 0 XSK I 0 JMP 0 /S\R / / / + l F' +2 H +3 NF.I THER / /TO HERE IF 13~1 13?.? 1323 13214 1325 1326 1327 1330 (il 1fil 1 4477 7'144 5177 2651 4136 2241 4177 3641 4577 I 4 I QAQ QAX > /IS CURRENT CHAR BLANK? /YES. IGNORE /MOVE DOT FORWARD /TO HF.RE TO EXIT \.JI TH SKIP LOA I l ADM QAA JMP QAR QAV. l?J 101 ~ 101 4477 77114 5177 2651 4136 2241 4177 /CHARACTER PATTERNS /KRD 17), ILLEGAL. IJSF:D AS R /I: A /2:8 /3:C /a: D 3641 4577 13 /5:E ----·---·~~· .~ .. .. 0360 0361 0362 0J6J 03 64 0365 0366 0367 0370 03 71 [,)372 0373 vl'.l 7 4 fil37(, 1331 1332 1333 I 33 LJ 1335 1336 1337 1340 1341 13'12 I 3111 1344 1345 J 3116 1347 w:n7 I 3 SC~ M40Vl I 3 SI 13 ~)? 1353 13')4 1 3 ') c, I 3"i6 ! 357 l 360 l 3 61 l 3 fi? l Jf,3 I 36Li l 3 fiS 1366 13 67 1170 137! 1372 l 3 73 117 /j 1375 I37A 1377 I 400 l .!;0 l J L10?. I L103 J 40L1 l 40 s 4477 4044 4136 2645 l 077 7710 7 7 LJ I 0041 4142 4076 1077 4324 0177 0301 3f~ 7 7 773(/J 3077 7706 4177 7741 4'177 10'14 427(, 0376 4477 3 1 Mi 51?! 4651 4040 4077 c11 77 7701 0176 7402 0A77 7701 i 463 f,31 4 0770 7007 4543 6151 4177 0000 140 6 1407 l 4Hl l 41 l. 0000 000(1) 0000 7741 L1543 7476 3 63LJ 3747 0000 0000 7500 0000 7000 0070 QAY, (~1154 J/112 1413 l LJ I 4 I LJ I 5 I LJ l 6 1'11 7 1420 1421 14?? 14?3 0 L1'1S 0 /15fi l ti?4 7?32 OAX, n:ns i'J 4(·11 0411!? ('>403 i/'ll1(1L; 011W) 0 LJ0 f, VJ L; (.')7 (/J/jJ (1 0111 I V:l 41 ;) rJ Li! 3 0 41 Ii 0 L!l 5 04I6 flL!l7 Vl4?.0 VJ 1i21 vJ 4??. (14?.1 0424 0 4?. 5 0L126 0 4? 7 0430 0 /;31 [143'?. 04:11 01134 0435 0436 0437 0440 f144 l 0442 0443 0444 0445 0446 0447 0450 (~ 451 0 45? 04S3 4145 4145 4477 4044 4136 2645 1077 7710 7741 0041 4142 4076 1077 4324 0177 0:101 3077 7730 3077 7706 4177 7741 4477 3044 4276 0376 4477 31 4 f, 5121 4651 4040 4077 0177 7701 0176 7402 0 677 7701 1463 6314 0770 7007 4543 6151 4177 0000 0 0 0000 7741 4543 71176 3634 3747 0000 0000 7500 0000 7000 0070 / 6: F 0 /7:G /l0:H / l I: I /12:J /l3:K /l4:L /I 5: M / 16: N /1 7:0 /20:P /21: 0 /22:R /23:S /24:T /25:U ,, /26: v .. ~ /'?.7: w ,__; / 30: x / 31: y /32:Z /33:/ /34: RACK SLASH /NOT USED /NOT USED / 35: J I GNORF:D ON " /CODF:S 3 6: ALT, /LF.CR 37:RUROIJT 1111 /<,> /ALT, RACK SLASH /RUBOUT. TAB /40:SPACE /4l:X! / 42: .. /CODF:S 43:. 44:, 45: LF NOi JMP QAO+I 14 ( ,'; 14 i ,, i 1 I - -- - ---~- --~----- - ~---------~ --~•>••----~-----.-----· - ~-- "~--- - .. *• 0 7?63 7?. 63 7053 1316 0000 5166 0526 JMP QAQ JMP QAO JMP QARF'SH QAV 0 5166 0526 0000 0000 3600 0041 41 fi'J(i) 0036 2050 0050 0404 0437 0500 0006 0404 0404 00~ 1 cm vi 0 0 0 0\ ')lil 7 1434 1435 1436 1417 1440 1 441 1 44?. 1441 1444 1445 1446 l 447 1451/J 1451 145?. 11153 I 115/l [1 51 '1 1 LJ55 40'"l' 0 51 l 1456 1457 1460 1461 1462 1463 1464 1465 1466 1467 1470 1471 1472 I 473 1474 1475 1476 1477 453 f, 3651 2101 0177 4523 21 51 4122 2651 2414 0477 5172 0651 1506 4225 4443 6050 5126 15li10 15(111 150? I '.iVJ 1 l 504 150') 51?? 36')1 ?200 VJ ~Hll(ll 4601 c:lli100 150 6 1507 1510 151 1 0002 0000 1212 1212 QAU, 2 0 1212 1212 1512 1 513 1514 1515 0016 3506 4020 2055 QAW, NOP ADD QAU 4020 2055 1 51 f, 1517 1760 f,000 (ll4S7 ~j 4 f,(ij V14AI 046? 04f,1 0464 0465 (•J 4 6 f, !il4f,7 0470 (I) LJ 71 047? Vl471 0474 (~ 475 0476 0'177 05Vi0 VJ 501 0 S0~ 1,1 S\ll'"l 0SV')l1 ViSW; 0 C)G1 {1 c Vl 512 1215 t 3 0 514 0515 0516 0517 0520 0521 0522 0523 0524 0 5?.5 0S26 0 S?.7 0530 !?1531 (II r;~;?. M"i3:1 fli ')14 f•l '• 3 ') vl'-i 3 6 Vl 53 7 ~) 540 0541 0542 0543 0544 0545 0546 0547 0550 0551 0552 0553 0554 05'35 111? ') 1426 1427 1430 1 431 1432 1433 3600 0041 4100 0036 2050 0050 0404 0437 0500 0006 0404 0404 0001 0000 0601 4030 4536 3651 2101 0177 4523 2151 4122 2651 2414 0477 5172 0651 1506 4225 4443 6050 5126 2 65 l 5122 3651 2200 '~6n 1 ~651 0000 4tWJ1 0000 /CODE 47:TAB NOT DISPLAYED Ir-JOT USED /NOT USED I 50: C / 51: ) /52: * /53: + 154:, 155: - /Sf.: • / 57: \ / 60: 0 / 61: 1 / 62: 2 163: 3 /64:4 165: 5 / 66: 6 / 67: 7 /7(1}: 8 / 71: 9 /72:: / 73: J /CODE 74:<NOT DI SPLAYED /CONSTANT /NOT USED 175: = /CODE I QAF' • DSC I 6000 15 C: /NOT USED / 46: & /77:? 76:> NOT DI SPLAYED '. . ' 0556 0557 0560 0 561 0562 0563 0564 0565 1520 JMP QAI 7131 / /END Q+A 0 / / / / /KEYBOARD INPUT ROUTINE 0 566 / 0 56 7 0570 0571 0 S7';' QAKRB= 6036 QA TS f::: 60 41 QATLS=6046 0')71 0"i711 0 5 7'i 0576 0577 0 600 0 60 l 0 602 0 603 0604 0605 0 606 0 607 0610 0 61 I 0 612 VI 61 3 0 614 0 (, l 5 0 61 6 0 61 7 0620 l7J 621 0 622 0 623 0 624 0625 0 626 0 627 0 630 0 631 0 632 0633 f:) 634 0635 0 636 0 637 0640 0 641 0 642 0 643 0 644 0 645 0 646 0 6117 0 650 0 651 0652 0 653 0 654 /PDP-8 IOT KBD /TSF' /TLS / I 52 l l S2?. I 5?1 I 5? 11 1525 1000 GF.TKRO, LDA 0000 5643 0 QAF.XIT+6 l 526 2002 1527 5642 5636 041 5 6000 STC ADD STC ADD STC STC KST JMP 0500 108 612136 QAKRB STA I 1530 I 531 I 532 I 533 l 534 1535 1536 1537 l 540 1541 I 542 2001 5640 1060 0000 1 120 OATY, l /SAVF: RF:TURN /SAVE XRS 1 ANO 2 QAEXIT+3 2 QAEX!T+S QAEXIT+l /WAS SOMETHING TYPED? 0 /NO: EXIT /GET TTY CHAR, CLEAR FLAG /SAVE IT 0 ADA I 7540 -237 0451 7604 APO JMP QACNTR /RETWF.EN 200 AND 237? /CONTROL CHAR. CHECK FOR I / I 543 0061 1544 1545 1546 l 547 I 654 SET I 1 /NO QACHAR-1 SET I 2 -7 LDA QATY SAE I JMP .+2 JMP QAEXIT /ILLEGAL CHAR. DONT ECHO XSK I 2 /CHECKED THEM ALL? JMP .-4 0062 7770 11210 0 1550 I 53 6 1551 1552 1461 7554 l 553 I 554 7635 0222 1555 7551 1556 J 120 1557 I 560 1 56 ! 7440 0 451 l 562 l 563 1 564 l 4 61 / ADA I -337 APO JMP QALEGL 7575 /BETWEEN 240 AND 337? /YES. LEGAL CHAR / I 565 1566 1567 I 570 1571 SAE JMP LOA 334 JMP LOA 757?. 1020 0334 7644 1020 0037 7637 I 1 .+7 I /NO. CHECK FURTHER. QATPE I /ECHO BACKSLASH /RUBOUT 37 JMP QAF.XIT+2 /LEGAL F:XIT I 1572 1461 1571 7635 I 57 4 7 63 7 SAE I l JMP QAEXIT JMP f)AEXIT+2 I 16 /ILLEGAL /ALT /EXIT, DONT ECHO ----~~··-·~·~-~·--,____c,-.,~--"·~·--·~-~ '• '· c· I~': 0 6S5 Vi 6[)6 frl(,'17 0 660 0, 6 61 0A62 0663 0 664 (i) 665 Vi66A 0 66 7 (!) 6 70 0 (,7 l Vl r, 7 '? {-1f17~~ (lj 7 /1 0 (,"/') fil (, 7 h (,\ f, 7 7 Vi '/(~(1 7VJ i Vi 71,) ;:> (,j 7913 7V'J4 0 7C'J5 1r1 r:, vnrn (/) 71 u 11 l 712 {17 l 1 vn 1 4 ?17 l 5 17; 71 6 1575 I S 7 (, 1577 1600 1 60 l 1 602 I 603 1000 I S3 6 761.14 3536 1 560 7700 7637 1604 1605 l 4 60 7755 762 l 1020 0043 ') 63 (, 1617l6 1 60 7 l 610 I (, 1 l J 61 '? I fd :i J f, l L1 1 61 c; 1 61 (, l 61 7 1 (\? ~1 1 f,0 j 1622 l 623 1 1)2 4 1 62S l 62fo I 6'? 7 I 1)3 0 I 63 l l 632 1 f,33 l 63 ,, llfJ 2 0 0215 7 f.,Lj/J J02Vl 021? 7644 7635 l 116!/1 ·1752 7627 I C120 0045 7 611 14 60 (1) 7~)0 I 63 5 I 61 I'. (1) 7~c1 7?6 0 7?. 7 fl 710 (>) 73 l 0732 (ij 733 0 73.ll 0735 9173 6 0737 0740 i(j 7 41 0 742 0 743 0744 0745 0 7 Lj 6 0 747 :ll 7S0 7'.') l 'J 7S? 0 7 ')3 212 JMP OATPE JMP QAEXIT I Ci!\r'<LF, SAE 7752 JMP • + 4 LOA ' /LF 45 JMP QACNTR+5 SAE I 7751 JMP QAEXIT LDA I 47 JMP QAEXIT+?. Hl20 12H2l47 7637 I 617 ! 6/iV'I l 641 1642 I 6L13 H'.120 0('.)00 QAF:XIT, 0061 0000 0062 0000 6000 /ILLEGAL /EXIT, DONT ECHO 05(i)0 6((14 (, 1000 0000 565/J 0500 6041 7 651 6000 l 655 1656 l 657 l 660 l 661 l 662 l 663 l 664 l 66') 0243 0244 0245 02LJ7 0300 0336 0337 0040 003 6 j(,/1/i I GET 6-BIT ASCII /RF.STORE Xf~S 2 i?J JMP /S\R l (,,~ 5 1646 l 6L! 7 1 65(1) 1 651 1652 I 653 1654 LDA 0 SF.T 0 SF:T /FXIR TO PRINT C:<AC> OATPE, IOG QATLS /POP-8 IOT TLS LOA 0 STC • +Li /SAVE RETURN IOB QATSF /WAIT FOR FLAG JMP .-2 JMP /EXIT I QACHAR, 243 /HASH 244 /DOLLAR SIGN 2Li5 /PER CENT 247 /APOSTROPHE 300 /AT SIGN /UP ARRO\.J 336 337 /BACK ARR()~; 40 /RUROIJT 36 /ALT /END OF S\.R GFTKBD 17 C' 6-BIT I [i) 7? l 0 7?L1 LDA OATY JMP QATPE /ECHO CHAR ADD QATY BCL I /STRIP IT TO 7700 JMP QAEXIT+2 ITO HERE IF CONTROL CHAR QACNTR, SAE I 7755 JMP OACKLF LDA I /CR 43 STC QAFXIT+l LDA I 215 JMP QATPF. LDA I 7751 7635 0 7l 7 [71722 07?'.l OALEGL. S'd~ GETK8D ------·-. i'"I ·--·~-~--"---"--'-··-~"·~- \ ·~ •• ~I 'I I 0000 GF:TKBD QAB QACA QACHAR QACKLF QACNTR GAD OAE OAFXIT OAF OAG OAH DAI OAINIT QAJ OAK OAK RB F:RRORS ~ ... 5521 5004 5015 5655 5621 5604 5026 5050 S635 0 5 "i I 6 506? 51 I 4 5 I 31 5000 5 l '.16 5305 6036 UAL 5175 OALEGL 5575 OAM 5H:ll OAN 5223 QAO 5?11 OAP 5242 QAQ 5263 QARFSH 50 53 OAT 5270 QATLS 6046 OATPF: 5644 OATSF · 6041 OATY 5536 OAIJ 5506 OAV 5316 (JA VI 5512 OAX 5424 OAY 5412 QAZ 5301 ,-..,,.\ ".,>'' 18
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies