Previous File   Multiple Pages   Next File

* ????-???-???? (O$AL) 3C NO. 189005000 REV. B PAGE 1

0001 * ????-???-???? (O$AL) 3C NO. 189005000 REV. B 0002 * 0003 * 0004 * 0005 * COMPUTER: DDP-116, DDP-516 0006 * 0007 * 0008 * PROGRAM CATEGORY: INPUT/OUTPUT 0009 * 0010 * 0011 * PROGRAM TITLE: O$AL 0012 * TO PRINT AN ASSEMBLER LISTING ON THE ASR WHEN IT IS ALSO 0013 * BEING USED FOR SOURCE INPUT 0014 * 0015 * 0016 * 0017 * 0018 * 0019 * 0020 * 0021 * 0022 * 0023 * 0024 * 0025 * 0026 * APPROVAL DATE 0027 * 0028 * 0029 * PROG---------------------- ------------- 0030 * 0031 * 0032 * SUPR---------------------- ------------- 0033 * 0034 * 0035 * QUAL---------------------- ------------- 0036 * 0037 * 0038 * NO. OF PAGES ------------- 0039 * 0040 * REVISION 0041 * 0042 * REV. B 0043 * REV. A 0044 * 0045 * AUTHOR 0046 * 0047 * HONEYWELL INC., COMPUTER CONTROL DIVISION 0048 * 0049 * 0050 * PURPOSE
* ????-???-???? (O$AL) 3C NO. 189005000 REV. B PAGE 2

0051 * 0052 * TO PRINT AN ASSEMBLER LISTING ON THE ASR WHEN IT IS ALSO 0053 * BEING USED FOR SOURCE INPUT 0054 * 0055 * 0056 * RESTRICTIONS 0057 * 0058 * THIS PROGRAM WILL OPERATE ON ANY DDP-116 OR DDP-516. 0059 * 0060 * 0061 * STORAGE 0062 * 0063 * 0211 (OCTAL) 0064 * 0137 (DECIMAL) 0065 * 0066 * 0067 * USE 0068 * 0069 * O$AH CALL O$AH 0070 * DAC HEADER BUFFER 0071 * RETURN 0072 * (THE X REGISTER IS PRESERVED) 0073 * 0074 * O$AL CALL O$AL 0075 * DAC LISTING BUFFER 0076 * RETURN 0077 * (THE X REGISTER IS PRESERVED) 0078 * 0079 * 0080 * METHOD 0081 * 0082 * THE ASR CARRIAGE IS POSITIONED 28 CHARACTERS FROM THE LEFT, 0083 * ON THE LINE THAT HAS JUST BEEN LISTED, BEFORE EACH SOURCE 0084 * LINE IS READ FROM THE ASR PAPERTAPE READER. THE SOURCE RECORD 0085 * STARTS WITH A LINE FEED CHARACTER WHICH MOVES TO THE NEXT 0086 * LINE (STILL 28 CHARACTERS FROM THE LEFT) AND THE SOURCE CODE 0087 * IS PRINTED AS IT IS READ IN. 0088 * SUBSEQUENTLY, O$AL IS CALLED TO LIST A LINE. IF THE BUFFER INCLUDES 0089 * A SOURCE LINE NUMBER THEN THIS MUST BE THE SOURCE LINE NUMBER, 0090 * PRECEDED BY ANY ERROR FLAGS, AND FOLLOWED BY THE LOCATION COUNTER 0091 * AND OBJECT CODE, BELONGING TO THE SOURCE LINE JUST READ. SO THE 0092 * CARRIAGE IS RETURNED TO THE LEFT, ON THE SAME LINE, AND THESE 28 0093 * CHARACTERS ARE PRINTED. 0094 * IF THE BUFFER PASSED TO O$AL DOES NOT INCLUDE A SOURCE LINE 0095 * NUMBER THEN THIS MUST BE ADDITIONAL OUTPUT DUE TO THE PREVIOUS 0096 * SOURCE LINE WHOSE LISTING LINE HAS ALREADY BEEN COMPLETED, SO 0097 * CARRIAGE-RETURN, LINE-FEED IS ISSUED TO MOVE TO THE START OF THE 0098 * NEXT LINE BEFORE THE LINE IS PRINTED. 0099 * 0100 * AFTER EACH LINE IS PRINTED A CHECK IS MADE ON HOW MANY LINES HAVE
* ????-???-???? (O$AL) 3C NO. 189005000 REV. B PAGE 3

0101 * BEEN PRINTED ON THE PAGE. IF THE PAGE IS FULL THEN A NEW PAGE 0102 * IS STARTED, ON WHICH THE HEADING IS PRINTED. THE CARRIAGE IS 0103 * POSITIONED 28 CHARACTERS FROM THE LEFT IN READINESS FOR THE 0104 * READING OF THE FIRST SOURCE LINE ON THE NEW PAGE. 0105 * 0106 * O$AH IS CALLED TO SET THE HEADER LINE. THE BUFFER PASSED IS 0107 * A COMPLETE 35-WORD, 70-CHARACTER, LISTING LINE, BUT IT IS ONLY 0108 * THE 42 CHARACTERS STARTING AT COLUMN 28 (THE SOURCE LINE ITSELF) 0109 * THAT ARE SAVED IN THE HEADING BUFFER. THE ASR IS MOVED TO THE START 0110 * OF THE FIRST LISTING PAGE, THE HEADER IS PRINTED AND THE CARRIAGE 0111 * POSITIONED READY FOR THE SECOND SOURCE LINE TO BE READ. 0112 * 0113 ************************************************************************ 0114 EJCT
* ????-???-???? (O$AL) 3C NO. 189005000 REV. B PAGE 4

0115 * NOTES ON RECOVERY FROM DISASSEMBLY 0116 * 0117 * THE SOURCE IS DERIVED FROM THAT RECREATED BY THEO ENGEL 0118 * (THEO.ENGEL@HETNET.NL) BY DISASSEMBLING DAP. 0119 * 0120 * ADDITIONAL WORK BY ADRIAN WISE TO MATCH THE VERSION COMPILED 0121 * INTO DAP16-M2 (REV. B). LABELS 'PX' AND 'EXIT' MOVED AFTER THE 0122 * 'SHFT' ROUTINE - IT IS NOT KNOWN WHY THIS CHANGE WAS MADE. 0123 * PERHAPS TO AVOID AWKWARD DESECTORIZING IN THE ORIGINAL 0124 * DAP APPLICATION? 0125 * 0126 * THE 3C NUMBER IS KNOWN BECAUSE AN ORIGINAL OBJECT TAPE EXISTS 0127 * FOR THIS MODULE. IT IS CLEAR FROM THE STYLE OF THIS NUMBER 0128 * THAT THIS IS A VERY OLD PIECE OF CODE, PREDATING DAP-16M2. 0129 * OTHER INDICATIONS ARE THAT LDX/STX AND CHARACTER MANIPULATION 0130 * INSTRUCTIONS ARE NOT USED - SO THIS DDP-116 CODE. 0131 * 0132 * ACCORDINGLY, THE STYLE OF THIS SOURCE CODE IS COPIED FROM 0133 * DUMY-X16 - A MODULE OF SIMILAR VINTAGE. ALSO, THE 0134 * ROUTINES 'ASR' AND 'SHFT' ARE TAKEN VERBATIM WITH THEIR 0135 * COMMENTS FROM DUMY-X16, SINCE THEY HAVE THE SAME SEQUENCE 0136 * OF OPERATIONS. 0137 EJCT
* ????-???-???? (O$AL) 3C NO. 189005000 REV. B PAGE 5

0138 * 0139 * 0140 SUBR O$AH 0141 SUBR O$AL 0142 REL 0143 * 0144 * 0145 00000 0 000000 O$AH DAC ** INITIALISE THE HEADING BUFFER 0146 00001 0 02 00000 LDA 0 0147 00002 0 04 00141 STA SVX SAVE INDEX REGISTER 0148 00003 -0 02 00000 LDA* O$AH FETCH BUFFER ADDRESS 0149 00004 0 06 00210 ADD ='40043 POINT ONE BEYOND BUFFER, SET TAG BIT 0150 00005 0 04 00143 STA HPTR INDEXED HDR POINTER (SOURCE) 0151 00006 0 02 00207 LDA =-21 21 WORDS/42 CHARS 0152 00007 0 04 00000 STA 0 0153 00010 -0 02 00143 P1 LDA* HPTR MOVE 21 HEADER WORDS/42 CHARS TO 0154 00011 1 04 00172 STA HBUF,1 HDR BUFFER (DESTINATION) 0155 00012 0 12 00000 IRS 0 0156 00013 0 01 00010 JMP P1 0157 * 0158 00014 0 10 00117 JST ASR SET OUTPUT MODE 0159 00015 0 10 00124 JST PAGE SKIP TO NEW PAGE 0160 00016 0 10 00105 JST PHDR PRINT HEADER 0161 00017 0 02 00141 LDA SVX 0162 00020 0 04 00000 STA 0 RESTORE INDEX 0163 00021 0 12 00000 IRS O$AH TALLY RETURN ADDRESS 0164 00022 -0 01 00000 JMP* O$AH RETURN 0165 * 0166 * 0167 00023 0 000000 O$AL DAC ** 0168 00024 0 02 00000 LDA 0 0169 00025 0 04 00141 STA SVX SAVE INDEX 0170 00026 0 10 00117 JST ASR SET TTY IN OUTPUT MODE 0171 00027 -0 02 00023 LDA* O$AL BUFFER ADDRESS 0172 00030 0 06 00206 ADD ='40016 POINT AT 1ST CHARACTER OF SOURCE LINE 0173 00031 0 04 00140 STA LPTR WITH TAG BIT (INDEXING) SET 0174 00032 0 02 00205 LDA =-12 POINT AT SOURCE LINE NUMBER 0175 00033 0 04 00000 STA 0 0176 00034 -0 02 00140 LDA* LPTR PICK UP SOURCE LINE NUMBER 0177 00035 0 05 00204 ERA =A TWO BLANKS 0178 00036 100040 SZE IS THERE A LINE NUMBER? 0179 00037 0 01 00042 JMP P4 YES, THEN PRINT ON SAME LINE 0180 00040 0 02 00203 LDA ='106612 NO, THEN NEW LINE 0181 00041 0 10 00070 JST SHFT TYPE CR-LF 0182 00042 0 02 00202 P4 LDA =-14 POINT AT START OF LISTING LINE 0183 00043 0 04 00000 STA 0 0184 00044 0 02 00201 LDA ='106615 CR-CR 0185 00045 0 10 00070 JST SHFT RETURN TO START OF LINE 0186 00046 -0 02 00140 P3 LDA* LPTR PRINT THE ERROR FLAGS, SOURCE LINE NUMBER 0187 00047 0 10 00070 JST SHFT LOCATION COUNTER, AND OBJECT CODE
* ????-???-???? (O$AL) 3C NO. 189005000 REV. B PAGE 6

0188 00050 0 12 00000 IRS 0 STEP INDEX 0189 00051 0 01 00046 JMP P3 LOOP 0190 * 0191 00052 0 12 00173 IRS O$LN STEP LINE COUNT 0192 00053 0 02 00173 LDA O$LN 0193 00054 0 11 00174 CAS O$LC COMPARE TO LINES PER PAGE 0194 00055 0 01 00060 JMP P2 0195 00056 0 01 00060 JMP P2 0196 00057 0 01 00101 JMP EXIT < MAX, READY 0197 00060 0 02 00200 P2 LDA =-10 HERE TO MOVE TO NEXT PAGE 0198 00061 0 04 00000 STA 0 X 20 BLANK 0199 00062 0 02 00177 P5 LDA ='105212 SKIP TO NEW PAGE 0200 00063 0 10 00070 JST SHFT 0201 00064 0 12 00000 IRS 0 0202 00065 0 01 00062 JMP P5 LOOP UNTIL NEW PAGE 0203 * 0204 00066 0 10 00105 JST PHDR PRINT THE HEADER 0205 00067 0 01 00100 JMP PX GO TO NEW PAGE AND EXIT 0206 * 0207 * 0208 00070 0 000000 SHFT DAC ** SHIFT AND OUTPUT TWO CHARACTER ROUTINE 0209 00071 0400 70 LRL 8 BRING IN FIRST CHARACTER 0210 00072 74 0004 OTA 4 OUTPUT IT 0211 00073 0 01 00072 JMP *-1 WAIT UNTIL DONE OUTPUTTING 0212 00074 0410 70 LLL 8 BRING IN SECOND CHARACTER 0213 00075 74 0004 OTA 4 OUTPUT IT 0214 00076 0 01 00075 JMP *-1 WAIT UNTIL ASR DONE 0215 00077 -0 01 00070 JMP* SHFT RETURN TO CALLER 0216 * 0217 * 0218 00100 0 10 00124 PX JST PAGE SKIP TO NEW PAGE 0219 00101 0 02 00141 EXIT LDA SVX RESTORE SAVED INDEX 0220 00102 0 04 00000 STA 0 0221 00103 0 12 00023 IRS O$AL TALLY RETURN ADDRESS 0222 00104 -0 01 00023 JMP* O$AL RETURN 0223 * 0224 * 0225 00105 0 000000 PHDR DAC ** PRINT THE HEADER ON ASR 0226 00106 140040 CRA 0227 00107 0 04 00173 STA O$LN RESET LINE NUMBER 0228 00110 0 02 00176 LDA =-23 HEADER LENGTH 0229 00111 0 04 00000 STA 0 0230 00112 1 02 00173 LDA HH,1 FETCH WORD FROM BUFFER 0231 00113 0 10 00070 JST SHFT TYPE TWO CHARACTERS 0232 00114 0 12 00000 IRS 0 STEP INDEX 0233 00115 0 01 00112 JMP *-3 LOOP UNTIL DONE 0234 00116 -0 01 00105 JMP* PHDR RETURN 0235 * 0236 * 0237 00117 0 000000 ASR DAC ** CHECK ASR BUSY ROUTINE
* ????-???-???? (O$AL) 3C NO. 189005000 REV. B PAGE 7

0238 00120 34 0104 SKS '104 IS THE ASR BUSY 0239 00121 0 01 00120 JMP *-1 YES, LOOP UNTIL FREE 0240 00122 14 0104 OCP '104 NO, ENABLE FOR OUTPUT 0241 00123 -0 01 00117 JMP* ASR RETURN TO CALLER 0242 * 0243 * 0244 00124 0 000000 PAGE DAC *-* POSITION FOR FIRST SOURCE LINE OF PAGE 0245 00125 0 02 00177 LDA ='105212 LF LF 0246 00126 0 10 00070 JST SHFT SPACE 3 LINES FROM HEADER 0247 00127 0 02 00175 LDA ='105377 LF RUBOUT 0248 00130 0 10 00070 JST SHFT 0249 00131 0 02 00202 LDA =-14 PRINT 28 BLANKS 0250 00132 0 04 00000 STA 0 0251 00133 0 02 00204 LDA =A 2 BLANKS 0252 00134 0 10 00070 JST SHFT 0253 00135 0 12 00000 IRS 0 0254 00136 0 01 00134 JMP *-2 UNTIL POSITIONED READY FOR SOURCE LINE 0255 00137 -0 01 00124 JMP* PAGE RETURN 0256 * 0257 * VARIABLES 0258 * 0259 00140 LPTR BSS 1 INDEXED POINTER TO LINE 0260 00141 SVX BSS 1 SAVED X 0261 00142 0 00 00000 *** ** NOT USED?? 0262 00143 HPTR BSS 1 INDEXED PTR TO SOURCE HEADER 0263 * 0264 * INTERNAL HEADER BUFFER 0265 * 0266 00144 105377 OCT 105377 LF-RUBOUT 0267 00172 HBUF BES 21 42 CHARACTER BUFFER 0268 00172 106615 OCT 106615 CR-CR 0269 00173 HH BSS 0 HEADER TO PRINT (HEADER BUFFER END) 0270 * 0271 00173 O$LN BSS 1 LIST LINE NUMBER 0272 * 0273 * CONSTANTS 0274 * 0275 00174 000064 O$LC DEC 52 ASR LIST LINE COUNT/PAGE 0276 * 0277 * 0278 00175 105377 END THIS IS IT 00176 177751 00177 105212 00200 177766 00201 106615 00202 177762 00203 106612 00204 120240 00205 177764 00206 040016
* ????-???-???? (O$AL) 3C NO. 189005000 REV. B PAGE 8

00207 177753 00210 040043 ASR 000117 EXIT 000101 HBUF 000172 HH 000173 HPTR 000143 LPTR 000140 O$AH 000000 O$AL 000023 O$LC 000174 O$LN 000173 P1 000010 P2 000060 P3 000046 P4 000042 P5 000062 PAGE 000124 PHDR 000105 PX 000100 SHFT 000070 SVX 000141 0000 WARNING OR ERROR FLAGS DAP-16 MOD 2 REV. C 01-26-71
Previous File   Multiple Pages   Next File