diff --git a/src/imsrc/free.way b/src/imsrc/free.way new file mode 100644 index 00000000..2bd1cc06 --- /dev/null +++ b/src/imsrc/free.way @@ -0,0 +1,1507 @@ + TITL FREEWAY CROSSING PROGRAM + SAVE + LOAD + EVEN + ORG 100 + JMS INPUT /MAIN PROGRAM + JMS START1 START UP BY INITIALIZING +LOOP1 JMS KEYS /CHECK AND ACT ON KEYBOARD + LAC #SETFIRE + ASZ NO CHANGE IN POSITION UNLESS SET + JMS POS /MODIFY CAR POSITIONS + LAC #SCOREINC + ISZ #SCOREINC + RAR 1 + LSZ EVERY SECOND LOOP CHANGE SCORE + JMP LOOP2-2 + LAC #SETFIRE + ASZ + JMS SCOREMOD MODIFY SCORE + JMS EXEC EXECUTE DISPLAY + JMP LOOP1 /LOOP IF SUBJECT NOT MOVING +LOOP2 JMS POS /MODIFY CAR POSITIONS + JMS SUBJECT /MODIFY SUBJECT'S POSITION + JMS CRASH /CHECK FOR CRASH, IF SO ACT ON IT + JMS END /CHECK IF SUBJECT CROSSED INTERSECTION + JMS EXEC /EXECUTE DISPLAY + JMP LOOP2 /END OF MAIN PROGRAM,LOOP +POS BSS 1 /GET NEW CAR POSITIONS + LAW CARTAB /INDEXING + DAC #CARTAB /FOR CAR TABLE + LAW RVEL /INDEXING + DAC #RVEL /FOR RANDOM VELOCITY + LAW VEL /INDEXING + DAC #VEL /FOR VELOCITIES + LAW POSIT + DAC #POSIT /FOR CURRENT POSITIONS + LWC 6 /LOOP SIX TIMES + DAC #CTR +POSLP I LAC #RVEL /GET VELOCITY FOR CAR + ASN + JMP POSZERO /IF ZERO GO TO NEXT ONE + I ADD #POSIT /ADD CURRENT POSITION + ASP /SKIP IF POSITIVE, CHECK FOR OFF SCREEN LEFT + JMS NEG + SUB =2640 /CHECK FOR OFF SCREEN RIGHT + ASM + JMS PLUS + + ADD =2640 + I DAC #POSIT /STORE + JMS CONVERT + I DAC #CARTAB +POSZERO ISZ #RVEL + ISZ #VEL + ISZ #POSIT + ISZ #CARTAB + ISZ #CTR + JMP POSLP /LOOP BACK + LAC CARTAB + DAC CAR1 + LAC CARTAB+1 + DAC CAR2 + LAC CARTAB+2 + DAC CAR3 + LAC CARTAB+3 + DAC CAR4 + LAC CARTAB+4 + DAC CAR5 + LAC CARTAB+5 + DAC CAR6 + I JMP POS /RETURN +NEG BSS 1 /TAKE CARE OF OFF LEFT POSITION + JMS RRRR /GET RANDOM VELOCITY + CIA + I DAC #RVEL + LAC =2637 + I JMP NEG /RETURN +PLUS BSS 1 /TAKE CARE OF OFF RIGHT POSITION + JMS RRRR /GET RANDOM VELOCITY + I DAC #RVEL + LWC 2640 + I JMP PLUS /RETURN +RRRR BSS 1 /SUBROUTINE FOR RANDOM VELOCITIES + I LAC #VEL /GETS RVEL: VEL>=RVEL>=VEL/2 + JMS RAND + I ADD #VEL + SAR 1 + I JMP RRRR /RETURN +CONVERT BSS 1 /CONVERT TO D LXA + SAR 1 + DAC #TMP + LAW 11 + DAC .+3 + LAC #TMP + JMS D + + BSS 1 + SAL 3 + SAL 2 /GET MSB PORTION + ADD .-3 /ADD LSB PORTION + ADD =11400 /MAKE D LXA + I JMP CONVERT /RETURN +SUBJECT BSS 1 /GET POSITION FOR SUBJECT + LAC #SUBPOS + ADD #SUBVEL + DAC #SUBPOS /GET NEW POSITION + SAL 1 + JMS CONVERT + ADD =11500 /MAKE D LYA + DAC CAR0 /STORE IN DISPLAY + I JMP SUBJECT /RETURN +RVEL OCT 40 /STORAGE FOR RANDOM VELOCITIES + OCT 40 + OCT 40 + OCT 177740 + OCT 177740 + OCT 177740 +VEL OCT 40 /TABLE OF VELOCITIES + OCT 40 + OCT 40 + OCT 40 + OCT 40 + OCT 40 +POSIT HLT /TABLE OF CURRENT POSITIONS + HLT + HLT + HLT + HLT + HLT +CARTAB BSS 6 /TABLE FOR CARS +TAB1 D JMS LETTER+45 ZERO +TAB D JMS B3 /NUMBER TABLE + D JMS B3+5 + D JMS B3+13 + D JMS B3+20 + D JMS B3+26 + D JMS B3+33 + D JMS B3+42 + D JMS B3+46 + D JMS B3+56 +KEYS BSS 1 /KEYBOARD READ ROUTINE + KSF /SKIP ON KEYBOARD FLAG + I JMP KEYS /OTHERWISE RETURN + + CLA + KRC + AND =177 + SAM =2 TRANSMIT + JMP K2 + LAC #SETFIRE + ASZ SKIP IF ZERO + JMP K3 + COA FINISH SETTING + DAC #SETFIRE + LAC ==X THEN BEGIN A:=A-X; SETBIT15... + /IF -DIV THEN A:=-A + /IF -DSN THEN Q:=-QUOTIENT + /COMMENT QUOTIENT IN Q, REMAINDER IN A + CLL /CLEAR LINK + ASM /DIVIDEND NEGATIVE? + JMP .+3 /NO + CIA /YES,2'S COMP. AC + CML /COMP. LINK (REMEMBER SIGN) + DAC D+73 /DIVIDEND IN Q + + STA /-1 TO AC + LSN /DIVIDEND NEGATIVE? + CLA /NO,0 TO DIV(REMAINDER POS) + DAC D+74 /YES,-1 TO DIV (REMAINDER NEG) + I LAC D /DIVISOR TO AC + ASM /DIVISOR NEGATIVE? + JMP .+3 /NO + CIA /YES,2'S COMP DIVISOR + CML /COMP LINK(0=POS QUOT,1=NEG QUOT) + DAC D+75 /DIVISOR IN X + ASZ /DIVISOR=0? + JMP .+4 /NO + STL /YES,SET LINK + ISZ D /INCREMENT PAST DIVISOR TO RTN ADR + I JMP D /RETURN + CLA /CLEAR AC + DAC D+76 /A=0 + LSZ /QUOTIENT POS(LINK 0)? + STA /NO,-1 TO DSN(QUOTIENT NEG) + DAC D+77 /YES,0 TO DSN (QUOTIENT POS) + LWC 20 /-16 TO AC + DAC D+100 /INITIALIZE COUNT IN D?T + LAC D+73 /Q INTO AC + CLL /CLEAR LINK(SET Q(15)=0) + RAL 1 /DOUBLE WORD + DAC D+73 /ROTATE (Q) + LAC D+76 /LEFT (A) + RAL 1 /ONE + DAC D+76 /BIT (A) + SUB D+75 /SUBTRACT X FROM A + ASP /IS A>=X(AC POS) + JMP D+53 /NO, GO ROTATE + DAC D+76 /YES,AC NOW A + LAW 1 /SET BIT + IOR D+73 /15 + DAC D+73 /OF Q + ISZ D+100 /BUMP COUNTER,COUNT=0? + JMP D+35 /NO,LOOP AGAIN + ASN /IF DIVIDEND = 0, A (REMAINDER IN ALGORITH... + JMP .+6 /LEAVE WORD AFTER JMS (REMAINDER) UNTOUCHED + LAC D+76 /REMAINDER INTO AC + ISZ D+74 /REMAINDER NEG? + CIA /NO POS,2'S COMP + CIA /YES 2'S COMP IT + I DAC D /PLACE IT IN WORD AFTER JMS + ISZ D /POINT TO RETURN ADR + LAC D+73 /QUOTIENT Q INTO AC + + ISZ D+77 /QUOTIENT NEG + CIA /NO,POS,2'S COMP IT + CIA /YES,2'S COMP IT + CLL /CLEAR LINK (DIVISOR NE 0) + I JMP D /RETURN + BSS 6 /STORAGE +OUTPUT BSS 1 OUTPUT A NUMBER AND A COMMA + DAC #TMP + CLA + DAC #BLANK BLANK INDICATOR + LAW 12 CONVERT TO DECIMAL + DAC ODIV + DAC ODIV+2 + DAC ODIV+4 + DAC ODIV+6 + LAC #TMP + JMS D +ODIV BSS 1 + JMS D + BSS 1 + JMS D + BSS 1 + JMS D + BSS 1 + JMS OUT1 START OUTPUTTING DECIMAL DIGITS + LAC ODIV+6 + JMS OUT1 + LAC ODIV+4 + JMS OUT1 + LAC ODIV+2 + JMS OUT1 + COA CHANGE BLANK INDICATOR FOR LAST DIGIT + DAC #BLANK + LAC ODIV + JMS OUT1 + LAW 54 COMMA + JMS WRITE + I JMP OUTPUT RETURN +OUT1 BSS 1 OUTPUT DIGIT UNLESS BLANK + DAC #TMP + ASZ + JMP .+4 + LAC #BLANK + ASN + I JMP OUT1 RETURN IF BLANK + COA + DAC #BLANK OTHERWISE SET BLANK IND. TO 1 + + LAC #TMP + JMS WRITE + I JMP OUT1 RETURN +WRITE BSS 1 SUBROUTINE TO PACK OUTPUT IN BUFFER B + DAC #OTD + LAC #OTC FIRST OR SECOND BYTE INDICATOR + ISZ #OTC + RAR 1 + LSZ + JMP .+7 + LAC #OTD FIRST BYTE + SAL 3 + SAL 3 + SAL 2 + I DAC #OTA PUT IN BUFFER + I JMP WRITE RETURN + I LAC #OTA SECOND BYTE + ADD #OTD + I DAC #OTA PUT IN BUFFER + ISZ #OTA + CLA + I DAC #OTA EXTRA ZERO WORD + LAC #OTA + SAM =10000 RETURN UNLESS BUFFER FULL + I JMP WRITE RETURN + HLT IF SO STOP, NOW MUST OUTPUT AND RESTART AT... +EXEC BSS 1 /EXECUTE ONE DISPLAY CYCLE + DSN + JMP .-1 + SSF + JMP .-1 + SCF + LDA /LOAD DATA SWITCHES + ASM /SKIP IF BIT 0 ON + HLT /OTHERWISE STOP + LAW DIS /GET DISPLAY ADDRESS + DLA + DON /RUN DISPLAY + I JMP EXEC /RETURN +LRD1 INC EB30 + INC 3030 + INC 3030 + INC 3030 + INC D00A131 + D IXM + D IXM + D IXM + + D RJM +LLD2 D DXM + D DXM + INC ED30 + INC B-30-30 + INC B-30-30 + INC-B-30-30 + INC -30A111 + D DXM + D DXM + D RJM +LRD3 D IXM + D IXM + INC ED-30 + INC B3030 + INC B3030 + INC B3030 + INC 30A131 + D IXM + D RJM +LLD4 INC EB-30 + INC -30-30 + INC -30-30 + INC -30-30 + INC D00A111 + D DXM + D DXM + D DXM + D DXM + D RJM +LR5 INC EB30 + INC 3030 + INC 3030 + INC 30A131 + D IXM + D RJM +CAR INC ED-33 /WORD CAR + INC -10B-30 + INC -200-3 + INC 0-320 + INC 30D10 + INC B2313 + INC 2-31-3 + INC D-12B-30 + INC D302-2 + INC B0303 + INC 302-1 + + INC 0-1-2-1 + INC -30D30 + INC B2-3D33 + INC 30B03 /SQUARE + INC 0303 + INC 0303 + INC -30-30 + INC -30-30 + INC -30-30 + INC -30-30 + INC -30-30 + INC 0-30-3 + INC 0-30-3 + INC 0-30-3 + INC 0-30-3 + INC 0-30-3 + INC 3030 + INC 3030 + INC 3030 + INC 3030 + INC 3030 + INC 0303 + INC 0303 + INC 03F +UP INC EB03 /LINE GOING UP + INC 0303 + INC 0303 + INC 03A113 + D IYM + D RJM +B3 INC ED10 /ONE + INC B2020 + INC D-20B03 + INC 0302 + INC -2-2F + INC ED03 /TWO + INC 03B22 + INC 202-2 + INC -1-2-2-1 + INC -3-330 + INC 30F + INC EB30 /THREE + INC 32-22 + INC -30D30 + INC B22-22 + INC -30F + INC ED30 /FOUR + + INC D10B03 + INC 0302 + INC -3-3-1-2 + INC 3030 + INC FF + INC EB30 /FIVE + INC 3102 + INC -32-30 + INC 0330 + INC 30E + INC ED03 /SIX + INC B2120 + INC 2-2-2-2 + INC -20-22 + INC 0323 + INC 202-2 + INC FF + INC EB23 /SEVEN + INC 3312 + INC -30-30 + INC FF + INC ED20 /EIGHT + INC B2021 + INC 02-31 + INC -3222 + INC 202-2 + INC -3-2-1-1 + INC 0-22-1 + INC FF + INC ED30 /NINE + INC B2313 + INC 03-30 + INC -2-22-2 + INC 30E +CRUNCH INC ED22 /CRUNCH DRAWING ROUTINE + INC 00B-2-2 + INC -33-11 + INC 2222 + INC 2-2D3-3 + INC 0-3B03 + INC 0302 + INC 303-2 + INC -3-2-30 + INC D20B2-2 + INC 2-2D3-3 + INC 2-30-3 + INC 0-30-2 + + INC B-3-3-2-3 + INC -23-23 + INC -23-23 + INC -3-2-3-2 + INC -3-2-3-2 + INC 1313 + INC -31-31 + INC -31-31 + INC 3232 + INC 32-33 + INC -3331 + INC 31-23 + INC -23-23 + INC 3-13-1 + INC 1313 + INC 133-3 + INC 3-313 + INC 133-2 + INC 3-23-2 + INC 2323 + INC D00A111 + D IXM + D IXM + D IXM + D IXM + INC ED30 + INC 3030 + INC 3030 + INC B11-11 + INC 1303 + INC -200-3 + INC 1-3-1-1 + INC 1-1D-20 + INC -20B03 + INC 0302 + INC D0-20-2 + INC B-30-30 + INC D0202 + INC B0-30-3 + INC 0-2D-32 + INC B-2-2-22 + INC -2222 + INC 222-2 + INC D-32-30 + INC -30B0-3 + INC 0-30-2 + INC -22-23 + + INC -230-3 + INC 0-30-2 + INC D-3303 + INC 02B-1-3 + INC -1-3-1-2 + INC -12-13 + INC -13D03 + INC 0303 + INC 0303 + INC 01B3-3 + INC 3-333 + INC 332-3 + INC 2-32-3 + INC 2323 + INC 122-3 + INC 2-332 + INC 3232 + INC 0-30-3 + INC 3131 + INC 31-2-3 + INC -2-3-2-3 + INC 3-23-2 + INC 3-2-3-2 + INC -3-23-3 + INC 3-3-30 + INC -30-30 + INC 1-31-3 + INC 1-3-32 + INC -32-32 + INC -1-3-1-3 + INC -1-3-33 + INC -33-2-3 + INC -2-3-2-3 + INC -23-23 + INC -3-3-3-3 + INC -33-33 + INC FF +LETTER INC EB13 A + INC 1312 + INC 1-31-3 + INC 1-2D-23 + INC B-30F + INC ED32 C + INC 30B-2-2 + INC -20-22 + INC 0323 + INC 202-2 + + INC FF + INC EB03 D + INC 0302 + INC 302-1 + INC 1-20-2 + INC -1-2-2-1 + INC -30F + INC EB30 E + INC 30A11 + INC B0202 + INC 30D-30 + INC B0202 + INC 3030 + INC FF + INC EB03 H + INC 0302 + INC D0-30-1 + INC B3030 + OCT 703 + INC B0302 + INC FF + INC EB03 N + INC 0302 + INC 2-32-3 + INC 2-203 + INC 0302 + INC FF + INC ED10 O + INC B2020 + INC 1302 + INC -13-20 + INC -20-1-3 + INC 0-21-3 + INC FF + INC EB03 P + INC 0302 + INC 303-1 + INC 0-2-3-1 + INC -30F + INC EB03 R + INC 0302 + INC 303-1 + INC 0-2-3-1 + INC -30D30 + INC B2-21-2 + INC FF + INC ED01 S + + INC B2-130 + INC 13-31 + INC -3113 + INC 302-1 + INC FF + INC ED30 T + INC B0303 + INC 02A10 + INC B3030 + INC FF + INC EB03 W + INC 0302 + OCT 733 + INC B3-303 + INC 0302 + INC FF + INC ED30 Y + INC B0203 + INC 33A10 + INC B3-3F + INC ED32 : + INC B00D03 + INC D01B00 + INC FF +REST D NOP /DISPLAY WAIT ROUTINE + D NOP + D NOP + D NOP + D NOP + D NOP + D NOP + D NOP + D NOP + D NOP + D RJM /RETURN +DIS D HVC /START OF DISPLAY + D STS 1 + D LXA 1400 /DRAW HIGHWAY + D LYA 4600 + D NOP + D NOP + D NOP + D NOP + D NOP + D JMS LR5 + D JMS LR5 + D JMS LR5 + + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D IXM + D IXM + D IXM + D IXM + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D DYM + D DYM + D DYM + D DYM + D JMS LLD4 + D JMS LLD4 + D JMS LLD4 + D JMS LLD4 + + D JMS LLD4 + D JMS LLD4 + D JMS LLD4 + D JMS LLD4 + D JMS LLD4 + D JMS LLD4 + D JMS LLD2 + D JMS LLD2 + D JMS LLD2 + D JMS LLD2 + D JMS LLD2 + D JMS LLD2 + D JMS LLD2 + D JMS LLD2 + D JMS LLD2 + D JMS LLD2 + D DYM + D DYM + D DYM + D DYM + D JMS LRD1 + D JMS LRD1 + D JMS LRD1 + D JMS LRD1 + D JMS LRD1 + D JMS LRD1 + D JMS LRD1 + D JMS LRD1 + D JMS LRD1 + D JMS LRD1 + D JMS LRD3 + D JMS LRD3 + D JMS LRD3 + D JMS LRD3 + D JMS LRD3 + D JMS LRD3 + D JMS LRD3 + D JMS LRD3 + D JMS LRD3 + D JMS LRD3 + D DYM + D DYM + D DYM + D DYM + D JMS LLD4 + D JMS LLD4 + D JMS LLD4 + + D JMS LLD4 + D JMS LLD4 + D JMS LLD4 + D JMS LLD4 + D JMS LLD4 + D JMS LLD4 + D JMS LLD4 + D JMS LLD2 + D JMS LLD2 + D JMS LLD2 + D JMS LLD2 + D JMS LLD2 + D JMS LLD2 + D JMS LLD2 + D JMS LLD2 + D JMS LLD2 + D JMS LLD2 + D DYM + D DYM + D DYM + D DYM + D JMS LRD1 + D JMS LRD1 + D JMS LRD1 + D JMS LRD1 + D JMS LRD1 + D JMS LRD1 + D JMS LRD1 + D JMS LRD1 + D JMS LRD1 + D JMS LRD1 + D JMS LRD3 + D JMS LRD3 + D JMS LRD3 + D JMS LRD3 + D JMS LRD3 + D JMS LRD3 + D JMS LRD3 + D JMS LRD3 + D JMS LRD3 + D JMS LRD3 + D DYM + D DYM + D DYM + D DYM + D JMS LLD4 + D JMS LLD4 + + D JMS LLD4 + D JMS LLD4 + D JMS LLD4 + D JMS LLD4 + D JMS LLD4 + D JMS LLD4 + D JMS LLD4 + D JMS LLD4 + D JMS LLD2 + D JMS LLD2 + D JMS LLD2 + D JMS LLD2 + D JMS LLD2 + D JMS LLD2 + D JMS LLD2 + D JMS LLD2 + D JMS LLD2 + D JMS LLD2 + D DYM + D DYM + D DYM + D DYM + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D IXM + D IXM + D IXM + D IXM + D JMS LR5 + D JMS LR5 + + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D JMS LR5 + D LXA 4000 + D LYA 3100 + D JMS REST + D JMS UP + D JMS UP + D JMS UP + D JMS UP + D JMS UP + D JMS UP + D JMS UP + D JMS UP + D JMS UP + D JMS UP + D JMS UP + D JMS UP + D JMS UP + D JMS UP +SCORE D NOP + D LXA 3640 + D LYA 6000 + D JMS REST + D JMS LETTER+70 S + D JMS LETTER+5 C + D JMS LETTER+45 O + D JMS LETTER+61 R + D JMS LETTER+21 E + D JMS LETTER+115 : + D LXA 3640 + D DYM + D DYM + + D JMS REST + D IXM +NUM1 D IXM + D IXM + D IXM + D IXM + D JMS LETTER+45 + D LXA 4000 +SET D NOP + D LXA 3400 + D LYA 2000 + D JMS REST + D JMS LETTER+70 S + D JMS LETTER+21 E + D JMS LETTER+76 T + D IXM + D JMS LETTER+5 C + D JMS LETTER A + D JMS LETTER+61 R + D IXM + D JMS LETTER+70 S + D JMS LETTER+54 P + D JMS LETTER+21 E + D JMS LETTER+21 E + D JMS LETTER+13 D + D LXA 4000 +FIRE D NOP + D LXA 3400 + D LYA 2000 + D JMS REST + D JMS LETTER+70 S + D JMS LETTER+76 T + D JMS LETTER A + D JMS LETTER+61 R + D JMS LETTER+76 T + D IXM + D JMS LETTER+103 W + D JMS LETTER+30 H + D JMS LETTER+21 E + D JMS LETTER+37 N + D IXM + D JMS LETTER+61 R + D JMS LETTER+21 E + D JMS LETTER A + D JMS LETTER+13 D + D JMS LETTER+111 Y + D LXA 4000 + +CAR0 D LYA 3100 + D JMS REST + D JMS CAR + D LXA 4000 + D LYA 2700 + D JMS REST +DIGIT D JMS B3 +CAR1 D LXA 1400 + D LYA 3300 + D JMS REST + D JMS CAR +CAR2 D LXA 1400 + D LYA 3500 + D JMS REST + D JMS CAR +CAR3 D LXA 1400 + D LYA 3700 + D JMS REST + D JMS CAR +CAR4 D LXA 1400 + D LYA 4100 + D JMS REST + D JMS CAR +CAR5 D LXA 1400 + D LYA 4300 + D JMS REST + D JMS CAR +CAR6 D LXA 1400 + D LYA 4500 + D JMS REST + D JMS CAR + D LXA 3700 + D LYA 2000 + D JMS REST +CRUNCH0 D NOP + D LXA 4000 /CENTER BEAM AND WAIT + D LYA 4000 + D HLT +L BSS 1 LITERALS GO HERE + ORG 3000 + ISZ #OTA MODULE TO PRINT OUTPUT BUFFER--START HERE + LAC =B + DAC #OTB UNPACK COUNTER + CLA + DAC #OTC FIRST OR SECOND BYTE COUNTER +LPP LAC #OTC + ISZ #OTC + + RAR 1 + I LAC #OTB LOAD PACKED WORD + LSN + JMP .+3 + ISZ #OTB + JMP .+4 + SAR 3 FIRST BYTE + SAR 3 + SAR 2 + TSF SECOND BYTE + JMP .-1 + TPC TRANSMIT BYTE + LAC #OTB + SAM #OTA CHECK FOR LAST ZERO WORD + JMP LPP + HLT PROGRAM END +B BSS 1 PRINT BUFFER + REL 1 LITERALS + END