Digital PDFs
Documents
Guest
Register
Log In
DIGITAL-8-35-S
December 1965
18 pages
Original
1.1MB
view
download
Document:
digital-8-35-s-d1
Order Number:
DIGITAL-8-35-S
Revision:
Pages:
18
Original Filename:
https://svn.so-much-stuff.com/svn/trunk/pdp8/src/dec/digital-8-35-s/digital-8-35-s-d1.pdf
OCR Text
IDENTIFICATION I .I Digital-8-35-S-A I .2 680 5-Bit Character Assembly Subroutines I .3 November I 7, I965 PDP 8 LIBRARY Digital-8-35-S-A Page i 2 ABSTRACT . These subroutines concentrate Teletype data by assembling serial-bit data into 5-bit characters They also add start and presenting the user with data similar to that obtained by using a 630 and scanner. and stop bits to 5-bit characters and transmit them in serial-bit fashion. Full duplex lines are assumed, but the subroutines can operate with half duplex if the user handles the expected echo. 3. REQUIREMENTS 3 l Storage . The subroutines as presently coded occupy 400 octal locations plus space for internal buffer— of the ing input and output characters and for the TTI instructions. In addition, space is used in memory 0 and a limited number of autoindex registers are used as page explained below. Within the limits described, the program can be placed anywhere in the first 4K of PDP-8 memory. The total amount of memory used, including the autoindex registers and the locations in page 0, is as follows: 4358 + 7n where n is the number of teletype lines to the next even multiple of eight lines if the number of lines is not already an even multiple of eight. Subprogra ms and/or Subroutines 3 2 . Digital-8-35-S-B 680 8-Bit Character Assembly Subroutines for reference or when the user's requirements include a mixture of 5-bit and 8-bit lines. 3.3 Equipment Minimum configuration PDP-8 680 Data Communication System hardware 1 to l28 5-bit Teletype lines 3.4 Miscellaneous The tag TTSBGN must be defined as the address of the start of the Teletype subroutines. be defined as anywhere in memory, but must be equivalent to the start of a PDP-8 memory page. 3.4.] can 3.4.2 3.4.3 Teletype Four autoindex registers called T5AXl , T5AX2, T5AX3, and T5AX4 must be defined. The tag TT5PGO must be defined as the start of an area in constants can be stored. An area of It memory page 0 where the necessary 268 registers must be reserved. 3.4.4 The tag T5OBF must be defined as the start of the area reserved for outputting the Teletype characters. It must be equal in length to the number of lines (even multiple of 8) attached to the particular set of subroutines. It can be anywhere in memory and need not start at the beginning of a memory page. 3.4.5 The tag T5OBF2 must be defined as an area equal in length to T5OBF. the buffering output characters to allow maximum output rate. 3.4.6 numbers. It is used for double- The tag T5|BF must be defined as the area for storing incoming Teletype characters and line It must be equal in length to twice the number of lines attached to the set of subroutines. particular Digital-8-35-S-A Page 2 The tag T5|N must be defined as the start of the area used by the subroutines for generating the appropriate number of TTI instructions. It must be equal in length to three times the number of lines 3.4.7 plus one register. Here again it need not be defined as the start of a memory page. 3.4.8 The tag TTCHAR must be defined as a single register in page 0. 3.4.9 In the interrupt service routine the Following set or sets of instructions must appear: /SK|P ON CLOCK FLAG /TEST FOR NEXT INTERRUPT CAUSE /JUMP TO APPROPRIATE CLOCK INTERRUPT ROUTINE T5SKP SKP . JMP T5D|S Because of the speed necessary for Teletype handling, the checks for clock interrupts should be the first ones interrupt service interrogation loop; the link bit and accumulator contents should not be saved prior to interrogation of the appropriate clock flag. If necessary for other interrupts, the link and accumulator contents should be saved only after all clock interrupts have been checked. in the Clock lOT's 3.4.10 The lOT's to test the clock for a 1 state, turn the clock on, and turn the clock off must be given the correct octal definitions: Mnemonic Clock l Clock 2 Clock 3 Clock 4 T5S KP 642i 643i 644i 645i TT5ON 6424 6434 6444 6454 TT5OFF 6422 6432 6442 6452 4. USAGE 4.2 Calling Sequence The pseudo command T5|N|T must be executed before the instruction TT5ON and also before either of the other pseudo commands T5SOF or T5S|R is executed (See Sections 4.4.l , 4.4.2, and 4.4.3 for definitions of the pseudo commands.) Switch Settings 4.3 None Start up and/or Entry 4.4 Three pseudo commands for using this set of subroutines are provided to the main program They are defined as iumps to subroutines and their definitions and . instructions are included in the package. These are the only commands necessary in the main program for gathering and outputting the Teletype characters. The user should note that no subroutines are included for packing or unpacking the characters by word or even line number. 4.4.l Teletype Initialize (T5lNlT) This command (which must be used only once in the main program) assumes that the user enters with the number of lines in the accumulator and that the register following the initialize command Digital-8-35-S-A Page 3 contains the first line number for this type of Teletype line. areas, counters, and pointers, 4.4.2 This subroutine initializes all of the buffer and generates the proper number of TTI instructions. Skip if Output Free (T5SOF) This instruction skips the next register in memory and transmits the character contained in does register TTCHAR if the indicated output line is free. If the output line is not free, the instruction that the line number over which the character is to be transmitted be The instruction not skip. requires The pseudo command takes 24 psec minimum The accumulator is cleared when exiting from the command. in the accumulator at the time the instruction is issued. time, and 42 psec maximum time. 4.4.3 Skip if Input Ready (T5SIR) This instruction skips the next location in memory and returns with the line number in the accumulator and the character placed at TTCHAR if an input character is available. If no character is and the contents of the accumulator equal —l Only the low available, the instruction does not skip . additional bits representing the stop codes The user should note that the bit structure of the character is reversed are also present in the character. from DEC's standard Teletype code. (For example, the character 0 does not appear as l5 in the low order order 5 bits of the character at TTCHAR should be used, 5 bits, but as 26. as This special consideration may be important if the user is setting up any necessary con— version tables.) available, If no character is available, l5 psec are used by the pseudo instructions; if a character is 37.5 psec are used; and if the end of the storage area is reached, a maximum of 48 psec are used by the instruction. 5. RESTRICTIONS 5 .l Status Active Registers The autoindex registers defined as T5AXI , T5AX2, T5AX3, and T5AX4 must not be disturbed after the pseudo Operation T5INIT. 6. DESCRIPTION 6 .l Discussion These subroutines are designed to accumulate 5-bit Teletype characters to and from multiple Teletype lines connected to a PDP-8. They handle input data in serial-bit format and present the user with character and line identification. The user presents the routines with line identification and chara- cter format data and they transmit the information in serial-bit format. Most of the PDP—8 memory is available for data buffering and for packing. tion of the time, however, is used mainly in buffering the Teletype lines themselves. A large propor- Assuming only minor data handling is necessary before transmission (possibly to a larger computer), present estimates indicate that the user could handle I28 5-bit lines at 50 baud. Exact timing information is shown in The user should note that the programming described involves the handling of the Teletype lines only and does not include any packing or unpacking of words, lines, or messages. The main program Section 9. communicates with the Teletype subroutines via a group of pseudo commands which are described fully in Section 4.4 with examples of their usage in Section 6.2. If the user's requirements include mixed speeds of 5-bit lines, these subroutines must be dupli- cated for each line speed. Or, if a mixture of 5-bit and 8-bit lines is required, it is necessary that the 8-Bit Character Assembly Subroutines (Digital—8-35-S-B) be included with the user's programs and the 5-Bit Character Assembly Subroutines. Digital-8—35-S-A Page 4 6.2 Examples and/or Applications 6.2.I To initialize the subroutines, coding similar to the following should appear in the user's program: TAD /GET NUMBER OF LINES. /|NITIALIZE SUBROUTINES. /STARTING LINE NUMBER. /ENABLE INTERRUPTS. /TURN ON CLOCK. NUMLIN T5INIT SLN ION TT5ON To output a character, 6.2.2 TAD CHARAC DCA TTCHAR TAD LINE NO coding similar to the following should appear: T5SOF JMP /GET OUTPUT CHARACTER. /FOR OUTPUT SUBROUTINE. /GET LINE NUMBER. /OUTPUT, SKIP IF FREE. /OUTPUT NOT FREE. /CHARACTER ACCEPTED, CONTINUE. OUTNA CONTINUE To test for an input character available, 6.2.3 /CHECK FOR INPUT. /WAIT FOR A CHARACTER.‘ /SAVE LINE NUMBER. /GET CHARACTER INPUT. /37, CLEAR STOP BIT. TSSIR JMP .-I DCA SAVLIN TAD TTCHAR AND THREE7 coding similar to the following should appear: 7. METHODS 7.I Discussion 7.I .I Input Character Assembly The 5-Bit Character Assembly Interrupt Subroutine executes a TTI instruction for each line selected every clock interrupt. The program then scans one fourth of the TTI character assembly words When an assembled input character is found, the program shifts off stores the character and line number in the input buffer, zeros the TTI status word and re- for fully assembled input characters. the start bit, sets the acter character assembly word to 0400. assembly word is zero. Note that bit 3 is initially set to a I and the rest of the char- As the input character is assembled bit by bit, the character assembly word is shifted one position to the right for the start bit, each data bit, and the stop bit. was When the bit that initially in the character assembly word can be set into the link by a RTR, the character is fully assembled. 7.I .2 Output Character Handling Initially, the pseudo operation T5SOF adds start and stop bits to the output characters and places the characters in the second output buffer (T5OBF2). Eventually, the interrupt subroutine transfers the characters from the second output buffer to the first output buffer (T5OBF). In the interrupt subroutine, the program outputs on one eighth of the lines selected every clock the program outputs a data bit every eight clock interrupts. is zero, there is no output on that line. interrupt. That is, for any one line If the first output buffer location for a line After 56 clock interrupts (7 bit times), the program halts the outeach of and the next utilizes four interrupts (one half bit time) to scan one fourth of the second put process Digital-8-35—S-A Page 5 buffer location for a line is zero, output buffer for new output characters. Again, if the second output there is no output. When a location is found that is non-zero, the character is placed in the first output buffer and the second output buffer location is set to zero. 8. FORMAT 8.1 Input Data (T5SIR) If the pseudo operation T5S|R skips, the input data is the following format: 8.1.1 The accumulator contains the line number. 8.l .2 The lower five bits of the register TTCHAR contain the input character. (See NOTE in Section 8.3) 8.3 Output Data (TSSOF) The user presents the pseudo operation T5SOF with output characters in the following format: 8.3.1 The lower five bits of the register TTCHAR contain the output character. 8.3.2 The accumulator contains the number of the line on which the character is to be output. NOTE: As mentioned in Section 4.4.3, the bit structure of the 5—bit codes These subroutines present the user with this reversed is reversed from standard. code and similarly expect the user to present them with the reversed code. EXECUTION TIME 9.1 Minimum 9.2 Maximum 9.3 Average The table below indicates the percentages of machine time used for two Speeds of 5-bit systems and is as accurate as presently possible. Any additional features which may be required for the Teletype handling would add appreciably to the times shown: TIMING TABLE Numbers indicate the percentage of available machine time used in the average case. No. of Lines 5-Bit 50 Baud 5-Bit 75 Baud 32 20.0% 30.0% 64 35 1% 52 7% 96 50.3% 75.5% I 28 65 5% 98 3% . . . . Digital-8-35-S-A Page 6 9.4 Timing Equations 9.4.1 50 Baud Rate Where 11 .85n + 120 psec. 9.4.2 the number of lines, the 5-bit subroutines Clock flags (at 50 baud) occur every 2500 psec. n require an average time of = 75 Baud Rate The percentages for 75 baud are merely 1 .5 x 50 baud rate. Clock flags occur every 1667 psec. 10. PROGRAM 10.3 List of Items and Pseudo Commands 10.3.1 List of Items Start of TT5BGN subroutine, must be equated to the start of a page. Area includes 2 pages. 10.3.2 T5AX1 Autoindex register. T5AX2 Autoindex register. T5AX3 Autoindex register. T5AX4 Autoindex register. TT5PGO Start of constant T5OBF Start of output buffer (Length TSOBF Start of second output buffer (Length T5|BF Start of input buffer (Length T5|N Start of TTI area (Length TTCHAR Character area page 0 (Single register). area in page 0. = = = n). = n). 2n). 3n + 11). List of Pseudo Operations Operation Meaning Times (User's) Min. TSINIT Initialize N.A. TSSOF Skip if output free 24 TSSIR Skip if input ready 15 Av. - 37.5 Max. 42 48 Digital-8-35-S-A Page 7 10.4 Program Listing /TYPE 68O TELETYPE LINE MULTIPLEXER /CHARAC TER ASSEMBLY ROUTINE 5 BIT /LMH 910/15/65 TTI:6402 TTO:64O 4 TTCL=64 11 TTRL=64 14 TTSL=64 12 TT5ON:6 424 IT5OFF:6422 T5SKP:6 421 TTINCR:6401 /TELETYPE INPUT COMMAND /TELETYPE OUTPUT COMMAND /CLEAR LINE REGISTER /READ LINE REGISTER /SET LINE REGISTER, CLR AC /TURN CLOCK ON /TURN CLOCK OFF /SKIP ON CLOCK FLAG /INCREMENT LINE REGISTER /65O LINE MULTIPLEXER /LIST OF ITEMS TSIBF27 2OO T5OBF227000 TSOBF266OO T5IN=56OO TT5PGO=145 T5AX121 O T5AX2=1 1 T5AX321 2 T5AX4:1 6 TT5BGN252OO TTCHAR: 177 *TI5PGO O145 3146 O147 O15O O151 O152 OOOO 7177 OOOO 54OO 5425 5447 O155 O154 O155 66OO 7774 OOOO O156 O157 316O O161 O162 O165 OOOO O177 7000 OOOO OOOO 777O Ol64 O165 56OO 7776 Ol66 O4OO @167 Ol7O 3171 3172 Ol75 O174 O175 9176 66OO 5221 OOOO 6577 5267 5561 5221 7000 TBINFL, ISBFK, ISNL, TSSOUT, T551N, T560, TSOUTK, TSCNTI, TSCNTZ, ISCNTS, TSKIO, ISKSS, ISCNTS, ISCNTS, TBKZ, T5K5, ISKi, ISKS, I5K7, 15KB, ISKS, ISKSA, ISKSB, TSKSC, T5K9D, TSKSE, /INPUT READY FLAG /TO RESET INPUT BUFFER POINTER O /-NUMBER OF LINES TSOUTS /SKIP IF OUTPUT FREE T5INS /SKIP IF INPUT READY T5GOS /INITIALIZE ROUTINE TSOBF /POINTER TO IST OUTPUT BUFFER -4 /HOLDS MAJOR LOOP COUNTER O /MINOR LOOP COUNTER O /COUNTER FOR INPUT BUFFER 177 /FOR ANDING TSOBF2 /2ND OUTPUT BUFFER O /OUTPUT COUNTER l7 BIT COUNTER O -1O /TO RESET BIT COUNTER T51 N /RESET INPUT TTI POINTER -2 /FOR SUBTRACTION AOO /IO RESET 5 BIT ASSEMBLY WORD TSOBF /K FOR 1$I OUTPUT BUFFER TSCOM /TO ENTER COMMON ROUTINE O /LINE NUMBER -1 TSOBF-l /FOR CLEARING T5CM1A /TO AVOID OUTPUTTING JMP T5CM1O /TO SET OUTPUT BUFFER FROM DOUBLE TSCOM /FOR NORMAL RETURN NOP /TO DO INPUT ONLY O TSIBF-l BUFFER Digital-8-35-S-A Page 8 *TTSBGN /MULTIPLE LEVEL INTERRUPT /ALLOWS MULTIPLE LEVEL /AND UNLIMITED 5230 2566 ISZ T5LC 5201 5216 5567 7216 5572 1600 JMP DCA RAR DCA T5DIS5 TSSA TAD Z 5571 6414 5572 6424 6821 1171 6415 5564 DCA 5282 5285 5254 5225 5296 5207 5210 5211 5212 5215 5214 5215 T5DIS, / / /GET T5SVO TTRL DCA T5SVLN 6951 INTERRUPT IT5ON ION 522% 5409 JNP 5221 5222 5225 5224 5225 5226 1575 5155 1575 5227 5252 5251 5551 6405 5555 5252 5255 5254 2155 2155 5225 JMP 5255 5256 6414 5575 DCA 5257 1574 5155 2013 /2ND LEVEL TSDIS5, 5240 5241 5242 5245 5244 5245 5246 5247 525% /SAVE LINK INTERRUPT ADDRESS / SAVE - Z SET @ FROM JMP T5COM8 TTO+1 DCA 1 z TSOUTK z Isourx z T5CNI2 TSCOME ISZ ISZ TSCOMI, TTRL T5LN 140 7220 Ismwcb DCA T5CNT2 1 52 T5AX1 ISCJNz, [AD I z T5AX1 / CLL RIR SZL JMP Iscams CLA 7229 Iscoms, NOP 141% 745% 5526 ISZ z TSAXI ISZ T5LN2 ISZ ISCNTZ 201% 5251 5252 5255 2576 2155 5254 5255 5256 2154 551% 1164 /-NO. OF LINES/8 /MINOR LOOP COUNTER /LINE NUMBER TSCOM, TSCNIA, 7112 ADDRESS /READ LINE NUMBER /SAVE LINE NUMBER /TO CLEAR CLOCK FLAG ONLY /RE-ENABLE PROGRAM INTERRUPT /SIARTING LINE-1 /SET LINE REGISTER, CLR AC LINE REGISTER, CLR AC /CLEAR CLOCK FLAG /RE-ENABLE PROGRAM INTERRUPT /RETURN TO THE MAIN PROGRAM” INPUT TII LOOP TAD T5MNC DCA z Tscurz TAD T5LN / SET TTSL+1 TAD I z TSOUTK T5COM2, SNA /RETURN 6415 1555 745G I ROUTINE / TTSL+1 I Z T5K5 JMP THIS LEVEL COUNTER /2ND LEVEL INTERRUPT SAVE ACCUMULATOR TTSON ION TAD T5K9 T5DIS2, TO LINK T5SVLK O 5216 5217 6424 ROUTINE INTERRUPT 5241 T5COM4, JMP TSCOMZ ISZ T5CNT1 T5COM5 sts JMP TAD z / LINE NUMBER /OUTPUT WORD /CHARACTER AVAILABLE /NOTHING TO TRANSMIT /INCREMENT AND TRANSMIT /RESTORE CHARACTER /UPDATE OUTPUT POINTER /ARE ONE-EIGHTH OF LINES DOE /CHECK NEXT OUTPUT LINE /READ LINE NUMBER /SAVE LINE NUMBER /NO OF LINES/4 /MINOR LOOP COUNTER / ADVANCE FOR NEXT INPUT /CHARACTER ASSEMBLY WORD PUT BIT 1% IN LINK /CHARACTER NOT COMPLETED /STORE CHARACTER /CLEAR AC FOR TAU /OR JMP T5CM16 /UPDATE FOR NEXT INPUT LINE UPDATE LINE NUMBER /ARE ONE-FOURTH OF LINES /CHECK NEXT LINE /HAVE ALL INPUT LINES BEEN /RESET AND DISMISS /T51N Digital-8-35-S-A Page 9 DCA Z T5AX1 Z T5K9 /RESET TTI POINTER LINE-1 LINE /RESET LINE NUMBER 5257 262 5261 5212 1171 7221 5262 5265 5576 1577 DCA TAD 5264 5154 2161 5512 1165 5161 1171 5575 2162 5555 1165 DCA T5CN11 ISZ Z T5CNT5 JMP T5COM5 TAD Z T5K5 DCA Z T5CN15 TAD Z T5K9 DCA TSLN ISZ Z TSCNTS JMP T5COM9 TAD T5K4 5162 2161 1172 DCA Z T5CNT6 ISZ Z T5CNT5 TAD Z T5K9A DCA Z T5AX4 TAD Z T5K56 DCA T5OUTK TAD Z TSKSB DCA Z T5K8 TAD Z T5K9C DCA T5COM5 IOF /INPUT CHECK COUNTER /HAVE ALL OUTPUT LINES BEEN /RESET AND DISMISS /-2 /RESET COUNTER /START LINE-1 /RESET LINE NUMBER /ENDING 7TH BIT? /NO RESET NORMALLY /-12 /RESET COUNTER /ADD 1 T0 COUNTER /TSOBF-1 /OUTPUT POINTER /TSOBF2 /2ND BUFFER POINTER /SPECIAL ADDRESS, TSCMIA /RESET ADDRESS /JMP TSCMLO /SET TO DO OUTPUT /TURN OFF INTERRUPT STA /-1 5265 5266 5267 5272 5271 5272 5275 5274 5275 5276 5277 5522 5521 5522 5525 1162 5155 ‘5526 5527 5512 5511 5512 5515 5514 1566 5566 1566 5515 5516 5517 7722 5212 1572 5522 5521 5522 6415 1572 7124 1567 6221 5525 5524 5525 IA C 5215 1175 5172 1174 5247 6222 7242 5524 5525 TAD T5COM5, 7112 7212 5552 5551 5552 5555 5554 5411 1576 T5LC T5LC TAD T5LC SMA CLA JMP T5DISZ TAD TSSVLN TTSL+1 TAD TSSVLK CLL RAL TAD TSSA ION JMP I C T5COM6, T55V2 LL RTR FIRST /-4 /LEVEL COUNTER /RESTORE LEVEL COUNTER /LEVEL COUNTER /RESTORE AC, ETC. /CHECK INPUT AGAIN, ETC. /LINE NUMBER /SET LINE REGISTER, CLR AC /PICK UP LINK /RESTORE LINK /RESTORE AC /RE-ENABLE PROGRAM INTERRUPT /RETURN TO THE MAIN PROGRAM / REMOVE START CODE .3 RTI \ 5555 5411 1212 1165 5212 DCA TAD DCA TAD TAD DCA 5556 5557 5542 5412 1166 5412 DCA TAD DCA 5541 5542 5545 2145 2156 5247 ISZ ISZ JMP 5544 5545 1146 5211 5546 5547 5552 5156 5247 1147 TO TAD DCA 5771 5526 5527 /SET T5LN2 T5K2A '/START T5COM7, I Z T5AX2 T5LN2 Z T5AX2 T5AX1 T5K5 NHNHNNH T5AX1 Z T5AX1 T5K6 Z T5AX1 T5INFL T5CN15 T5COM5 Z T5BFK Z T5AX2 TAD T5NL DCA Z T5CNT5 JMP T5COM5 TAD DCA /STORE CHARACTER /LINE NUMBER /STORE LINE NUMBER /TTI POINTER /-2 /RESET POINTER /ZERO STATUS AND COUNTER /wORO TO RESTORE ASSEMBLY NB /RESET CHARACTER ASSEMBLY wB /SET INPUT READY FLAG /HAS END OF BUFFER BEEN READ /CONTINUE /TSIBF-l /RESET INPUT BUFFER ADDRESS /-NUMBER OF LINES /RESET LENGTH COUNTER /CONTINUE 1 Digital-8-35—S-A Page 10 5551 6401 I5CUM3, 5552 5555 5554 5252 1167 5155 I5COM9, 5555 5556 1175 5170 5557 1176 5560 5561 5562 5507 1555 5415 5565 5564 5565 5555 2155 5250 5566 7777 5567 5570 5571 0000 0000 5572 5575 5574 5575 5576 0000 0000 0000 0000 5577 7774 T5CM10, TTINCR JMP TSCOMI TAD z T5K7 DCA z TSOUTK TAD z I5K9D DCA z T5K8 TAD z T5K9£ JMP TSCOMS-l T AD 1 z DCA I z T5AX4 DCA 1 TSOUTK ISZ T5DUTK JMP ISCOM5+1 TSOUTK /INCREMENT LINE NUMBER /CONTINUE /T5OBF /RESET OUTPUT POINTER /NORMAL ADDRESS, T5COM /RESET ADDRESS /NOP /CONTINUE /2ND BUFFER CHARACTER /STORE IN 1$T BUFFER /CLEAR 2ND BUFFER /UPDATE POINTER /CONTINUE /CONSTANTS 0000 0000 T5Lc, T5SA, TSSVLK, TSSVO, TSSVLN, TSMNC, ISMNCZ, T5LN, f5LN2, TsxaA, /INTERRUPT LEVEL COUNTER /SAVE ACCUMULATOR /SAVE LINK /SAVE PROGRAM COUNTER /SAVE LINE NUMBER /-NO OF LINES/B /-NO OF LINES/4 /LINE NUMBER FOR OUTPUT /LINE NUMBER FOR INPUT /TO RESET MAJOR LOOP COUNTER -1 D D D D D D D D -4 /PSEUDU-OPERATIONS *TTSBGN+200 /SKIP IF OUTPUT IS FREE AND TRANSMIT CHARACTER AT /DON'T SKIP LINE NUMBER MUST BE IN AC. 24US MIN., T5SOF:JMS 1 z TSSOUT 5400 5401 5402 5405 5404 5405 5406 5407 5410 5411 5412 5415 5414 5415 5416 5417 5420 5421 5422 0000 0157 1217 1160 5220 1620 7640 5600 1177 0221 1222 7104 5620 2200 5600 0000 0000 0057 0040 5425 5424 0000 6002 5425 7240 TSOUTS, 42US MAX. D AND TAD T5SL, TswA, T5Kll, T5K12, TTCHAR, 2 T5K1D TSSL TAD z T5K56 DCA TswA TAD T TswA SZA CLA JMP I TSOUIS TAD z TTCHAR AND T5Kll TAD T5K12 CLL RAL DCA 1 TswA ISZ ISOUTS JMP 1 Tsours D D 57 40 /177 /-STARTING LINE NUMBER /OUTPUT BUFFER ADDRESS /WORK AREA /OUTPUT CHARACTER /SKIP IF FREE /EXIT /PICK UP CHARACTER /5 BITS ONLY /140 FOR STOP CODE /CHEATE START CODE /STORE CHARACTER IN TABLE /INDEX EXIT /EXIT /-STARTING LINE /WORK AREA /FOR 5 BIT CODE /FOR STOP CODE NUMBER /SKIP IF CHARACTER AVAILABLE AND RETURN WITH LINE OTHERWISE DO NOT SKIP /CHAR AT TTCHAR. /15us MIN., 48US MAX., 57.5US NORMAL IF READY T5SIR:JMS I z TSSIN D T5INS, IOF 7/ SET AC FOR TAD-l CLA CMA NUMBER ING Digital-8-35-S-A Page 11 5426 5427 5455 5451 5452 5455 5454 ~5455 5456 5457 5445 5441 5442 5445 5444 5445 5446 1145 751% 5244 5145 2246 5243 1147 5246 1146 5612 1412 5177 1412 2225 6021 5625 993% ANPUT FLAG COUNTER-l TSINFL /SOMETHING AVAILABLE T5INON DCA Z TSINFL /RESTORE FLAG COUNTER ISZ T5CNT4 /END OF BUFFER? START JMP .+5 /GET CHARACTER TAD Z T5NL /-NUMBER OF LINES DCA TSCNT4 /RESET COUNTER TAD Z TSBFK /BUFFER ADDRESS-1 DCA Z T5AX5 /RESET ADDRESS TAD I Z T5AX5 /PICK UP CHARACTER DCA Z TTCHAR /STORE CHARACTER TAD I Z T5AX5 /PICK UP LINE NO. ISZ 151N6 /INDEX EXIT 1 ON 151N0N, JMP 1 151N6 /EXIT 5 /-NUMBER OF LINES 150N14, /INITIALIZATION ROUTINE /ENTER WITH NUMBER OF LINES IN AC TAD SPA JMP Z T5INIT IST LINE /FORMAT / 1 TSINITzJMS 5447 OOOO 5455 @555 AND 5451 5452 5455 5147 1147 @556 DCA TAD AND 5454 5455 5456 7642 1557 1147 5457 5465 5461 5462 5465 O56D 7041 5147 1147 5156 1561 5464 NO. 1560 z 15K14 z 15NL z 15NL 15x15 SZA CLA TAD T5K16 TAD z 15NL AND 15x17 CIA DCA z 15NL 1AD z 15NL DCA z T5CNT5 140 15K25 DCA z 154x1 TAD 15K21 5465 5466 5467 5010 1562 5011 _DCA z 5475 5471 1AD DCA 15K57 5472 5475 5474 5475 5476 5477 5555 1575 5012 1147 5246 1565 541% 541% 1166 541% 5551 5552 5555 5411 5412 2246 5554 5555 15Ax2 15AX5 TAD z TSNL T5G02, DCA TAD DCA T5CNT4 15x22 1 z 154x1 DCA 1 z 15Ax1 1A0 z T5K6 DCA 1 z 15Ax1 DCA DCA 15Ax2 154x5 5274 1564 JMP TAD 5556 5410 15602 15K24 1 z 15Ax1 5557 1147 7G12 DCA 1AD z RTR 5515 -B 5 15006, T5601, AT ISZ 1 z 1 z 150N14 15NL - /577 /N0. /NO. OF OF LINES LINES /7 /MULTIPLE OF 8 /15 /N0. OF LINES /575 /TWO'S COMP. NUMBER OF LINES /-N, CONSTANT /-N COUNTER /T51N-1 /TO STORE TTI TABLE /TSOBF-1 /TO CLEAR OUTPUT AREA /TBOBF2-1 /TO CLEAR DOUBLE BUFFER /-N /FOR COUNTING /TTI+INCR /STORE TTI /CLEAR STATUS WORD /ASSEMBLY RESET WORD /RESET ASSEMBLY WORD /ZERO OUTPUT WORD /CLEAR DOUBLE BUFFER /COUNTER /DO NEXT LINE /JMP I Z T5K8 /STORE FINAL JUMP /-N /-N/4 Digital-8—35-S-A Page 12 5511 7OIO RAR 5512 5515 0565 1566 ANJ TAO T5K25 T5K26 /776B, MAKE 5514 5515 5516 5767 1767 1767 DCA TAD TAU I I I T5K27 T5K¢7 T5K27 /T5MNC /T5MNC /T5NNC 'N/4 5517 552% 5521 5522 5774 DCA I I5K58 /T5MNC2 724C 5246 1146 STA DCA 5525 5524 5011 157% 5154 5525 5526 5527 5553 1165 5161 5551 5552 5555 531% 5554 5555 5556 5557 5546 5541 5542 5545 5544 5545 5546 5547 T5CNT4 TAD Z T5BFK DCA Z T 5AX2 TAD T5K28 DCA Z T5CNT1 TAD Z T5K5 DCA Z T5CNT5 TAD Z T5K5 1164 5162 5553 5551 5552 5555 5554 1175 517% 5555 $577 OOO7 NEGATIVE /-1 /SET CNTR TO SKIP 151 /TSIBF-l INPUT BUFFER POINTER _ /SET TIME /-4 /MAJOR LOOP COUNTER /-2 DCA Z T5OUIK STA TAU I T5GOS DCA Z T5K9 TAD Z T5K9 CMA DCA TSSL DCA Z T5INFL STA DCA I T5K55 ISZ TSGOS TAD T5K55A DCA TSCNT6 TAD T5KSD DCA T5K8 TAU T5K9E DCA T5K4O JMP T5605 577 /FOR 7 /FOR 19 57C /POB /FOR /FOR ' Z TSAXI T5K7 HNN 1176 5775 5647 NUMBER /OUTPUT COUNTER /T5IN+1 /SET TTI POINTER /T508F /SET OUTPUT BUFFER POINTER /-1 /STAHTING LINE NUMBER /STARTINO LINE NO-l /STARTING LINE -1 /MAKE NEGATIVE /-S TAHTI NO LINE NUMBER /CLEAR INPUT FLAG COUNTER /-1 /T5LC, RESET INTERRUPT LEVEI /INDEX EXIT /-7 /SET SPECIAL 5-BIT COUNTER /T5COM /TII RETURN /NOP /TSCOM5 /EXIT DCA TAD 1167 5155 724% 1647 5171 1171 734$ 5217 5145 724% 5771 2247 1572 /-N/8 /17 /CONSTANTS 5556 5557 556C 5561 5562 5565 5564 5565 5566 5567 557U 5571 5572 5575 5574 5575 OOIO @573 5577 6577 6405 5573 @317 7762 5575 7774 5566 7771 6777 5574 5247 I5K14, T5Kl5, I5K16, T5K17, TSKZG, TSKZI, T5K22, T5K24, TSKZS, 15K36, T5K27, TSKZB, I5h55, T5IN -1 T5OBF-1 TTI+1 JMP I Z 17 7763 T5MN C -4 I5LC / T5K8 /FOR ANDING EVEN MULTIPLE EVEN MULTIPLE EVEN MULTIPLE STORING TTI'S OUTPUT AREA /FOR FINAL JUMP /POB /FOR -N/B MAKINO /POB -N/B /POB xPOB MAJOR LOOP COUNTER INTERRUPI LEVEL COUNTER 5-BIT COUNTER DOUBLE BUEPEB -N/4 SWITCH B 8 B III IBKOBA -7 /PON I5K57, TSOBPz-I T5MN C2 T5COM5 /FON xPON /FJd I5K53, 15K4Z, OF OF OF NEGATIVE Digital-8—35-S-A Page I I DIAGRAMS II .1 Flow Charts ENTER TSDIS TSDISB 2ND LEVEL INT YES ? CLR CLOCK ION NO SAVE AC LINK LINE NUMBER EXIT ADDRESS CLEAR CLOCK ION SET STARTING LINE NUMBER MULTIPLE EXIT DUE TO 7 1/2 CHARACTER TIME [ TEST 5 an" INPUT LINES EXIT JMP IZTSK SET T5CM1A \ TSIN SET MIN LOOP \ 0” COUNTER = 1/4 # LINES UNE RECmTER T5COMO OUTPUT CHARACTER AVALABLE ? N0 YES T5COM8 INCREMENT UNE REGSTER a TRANSMTT & SAVE REST OF CHARACTER |NCREMENT UNE REmSTER T5COMI UPDATE OUTPUT POINTER 1/8 OF LINES DONE 13 Digital-8-35-S-A T5COM2 IS INPUT CHAR FULLY YES ASSEMBLED 2 NO T5COM6 REMOVE START CODE CLA & 8 TSCMIO TSCOMS NOP 0R TSCMIO JMP PICK UP OUTPUT 2ND BUFF R PUT IT IN IST AND CLR 2ND BUFFER IL STORE CHARACTER AND LINE NUMBER . I ADVANCE INPUT POINTERS AND LINE NO. I I INCREMENT 2ND BUFFER POINTER TESTED OF LINES FOR INPUT ZERO STATUS AND COUNTER LOAD SET CHAR ASSEM FLAG RESET BUFFER ADDRESS AND INDEX INPUT YES I END SET INPUT READY FLAG OFINPUT BUFFER 1/4 N0 ? ? YES T5COM4 HAVE ALL LINES BEEN CHECKED FOR INPUT P LD AC WITH A NOP RESET TTI POINTER LINE NUMBER AND INPUT CHECK RESET T5K8 TO T5COM HAVE ALL OUTPUT LINES BEEN CHECKED LD AC WITH T5CMIO T5COM9 RESET OUTPUT BUFFER POINTER RESET T5K8 TO TSCMIA ? (T5CNT6)=-IO RESET T5CNT5 TO -2 ENmNG 7TH an ? RESET T5CNT6 TSCNT + 1 AX4 = OBF -1 T50UTK=OBF2 RESET OUTPUT BUFFER POINTER Digital-8-35-S-A Page 15 DCA T5COM3 _ 7 T5COM5 IOF INT LEVEL COUNTER-1 INTERRUPT LEVEL S TO PRogESS RESET LINE N0 AC 5 LINK ION 12. REFERENCES 12.] Other Library Programs Digital-8-35-S-A 680 5-Bi’r Character Assembly Subroutines AC 3 NOP OR JMP T5CM10
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies