_  __   _  _         _ _     _      _           _           
  __| |/ /_ | || |     __| (_)___| | __ (_)_ __   __| | _____  __
 / _` | '_ \| || |_   / _` | / __| |/ / | | '_ \ / _` |/ _ \ \/ /
| (_| | (_) |__   _| | (_| | \__ \   <  | | | | | (_| |  __/>  < 
 \__,_|\___/   |_|    \__,_|_|___/_|\_\ |_|_| |_|\__,_|\___/_/\_\
                                                                 
            

MA-UART1    470E

FILE INFORMATION

FILENAME(S): MA-UART1    470E

FILE TYPE(S): PRG

FILE SIZE: 2K

FIRST SEEN: 2025-11-30 21:24:01

APPEARS ON: 1 disk(s)

FILE HASH

9dc71ee27dc4de41aea85191feefaacbb263d7335564eba219ee50e2f6c90086

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
C64 HULP 29 2 MA-UART1    470E PRG DuncanTwain 30 3 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: AA 00 30 F6 37 CE 00 10  89 10 10 3B 20 20 20 20  |..0.7......;    |
00000010: 20 2B 2B 2B 2B 2B 20 53  45 54 20 42 41 55 44 20  | +++++ SET BAUD |
00000020: 52 41 54 45 20 2B 2B 2B  2B AB 20 10 89 30 10 53  |RATE ++++. ..0.S|
00000030: 45 54 2E 42 41 55 44 20  50 48 50 20 3B 53 41 56  |ET.BAUD PHP ;SAV|
00000040: 45 20 50 53 D2 40 10 20  53 45 49 20 3B 43 4C 45  |E PS.@. SEI ;CLE|
00000050: 41 52 20 49 4E 54 45 52  52 55 50 54 D3 50 10 20  |AR INTERRUPT.P. |
00000060: 4C 44 41 20 50 49 41 2E  44 49 52 20 3B 49 4E 49  |LDA PIA.DIR ;INI|
00000070: 54 49 41 4C 49 5A 45 20  50 4F 52 54 20 4F 4E 20  |TIALIZE PORT ON |
00000080: 4C 4F 47 4F CE 60 10 20  41 4E 44 20 23 24 46 46  |LOGO.`. AND #$FF|
00000090: 2D 4D 53 4B 2E 49 4E 20  3B 20 20 20 20 20 20 20  |-MSK.IN ;       |
000000A0: AA 70 10 20 4F 52 41 20  23 4D 53 4B 2E 4F 55 54  |.p. ORA #MSK.OUT|
000000B0: 20 3B 09 AA 80 10 20 53  54 41 20 50 49 41 2E 44  | ;.... STA PIA.D|
000000C0: 49 52 20 3B 09 AA 90 10  89 00 11 4C 50 31 20 4A  |IR ;.......LP1 J|
000000D0: 53 52 20 47 45 54 2E 42  49 D4 10 11 20 42 4E 45  |SR GET.BI... BNE|
000000E0: 20 4C 50 31 20 3B 42 52  2E 20 49 46 20 41 4C 52  | LP1 ;BR. IF ALR|
000000F0: 45 41 44 59 20 53 50 41  43 49 4E C7 20 11 4C 50  |EADY SPACIN. .LP|
00000100: 32 20 4C 44 41 20 50 49  41 2E 50 4F 52 D4 30 11  |2 LDA PIA.POR.0.|
00000110: 20 41 4E 44 20 23 4D 53  4B 2E 49 CE 40 11 20 42  | AND #MSK.I.@. B|
00000120: 45 51 20 4C 50 32 20 3B  42 52 2E 20 49 46 20 4D  |EQ LP2 ;BR. IF M|
00000130: 41 52 4B 49 4E C7 50 11  20 4C 44 59 20 23 30 30  |ARKIN.P. LDY #00|
00000140: 20 3B 43 4C 45 41 52 20  46 4F 52 20 44 45 4C 41  | ;CLEAR FOR DELA|
00000150: 59 20 46 41 43 54 4F D2  60 11 4C 50 33 20 4C 44  |Y FACTO.`.LP3 LD|
00000160: 41 20 50 49 41 2E 50 4F  52 54 20 3B 47 45 54 20  |A PIA.PORT ;GET |
00000170: 42 49 D4 70 11 20 41 4E  44 20 23 4D 53 4B 2E 49  |BI.p. AND #MSK.I|
00000180: 4E 20 3B 09 AA 80 11 20  42 45 51 20 47 4F 54 2E  |N ;.... BEQ GOT.|
00000190: 43 4F 55 4E D4 90 11 20  43 50 59 20 23 24 46 C6  |COUN... CPY #$F.|
000001A0: 00 12 20 42 45 51 20 4C  50 B3 10 12 20 49 4E D9  |.. BEQ LP... IN.|
000001B0: 20 12 53 4B 50 2E 46 46  20 42 4E 45 20 4C 50 B3  | .SKP.FF BNE LP.|
000001C0: 30 12 89 40 12 47 4F 54  2E 43 4F 55 4E 54 20 54  |0..@.GOT.COUNT T|
000001D0: 59 41 20 09 09 3B 4D 4F  56 45 20 43 4F 55 4E 54  |YA ..;MOVE COUNT|
000001E0: 20 54 4F 20 52 28 41 A9  50 12 20 4C 44 59 20 23  | TO R(A.P. LDY #|
000001F0: 30 B0 60 12 4C 50 2E 46  49 20 43 4D 50 20 54 42  |0.`.LP.FI CMP TB|
00000200: 4C 42 41 55 44 2C D9 70  12 20 42 43 53 20 47 4F  |LBAUD,.p. BCS GO|
00000210: 54 42 41 55 C4 80 12 20  49 4E D9 90 12 20 42 4E  |TBAU... IN... BN|
00000220: 45 20 4C 50 2E 46 C9 00  13 47 4F 54 42 41 55 44  |E LP.F...GOTBAUD|
00000230: 20 53 54 59 20 42 49 54  2E 54 49 4D 45 20 3B 53  | STY BIT.TIME ;S|
00000240: 54 4F 52 45 20 42 41 55  44 20 52 41 54 45 20 43  |TORE BAUD RATE C|
00000250: 4F 44 C5 10 13 20 4C 44  58 20 23 31 32 20 3B 57  |OD... LDX #12 ;W|
00000260: 41 49 54 20 55 4E 54 49  4C 20 41 4C 4C 20 42 49  |AIT UNTIL ALL BI|
00000270: 54 53 20 48 41 56 45 20  42 45 45 4E 20 53 45 4E  |TS HAVE BEEN SEN|
00000280: D4 20 13 20 4A 53 52 20  50 41 44 2E 44 45 4C D8  |. . JSR PAD.DEL.|
00000290: 30 13 20 50 4C D0 40 13  20 52 54 D3 50 13 89 60  |0. PL.@. RT.P..`|
000002A0: 13 89 70 13 54 42 4C 42  41 55 44 20 2E 42 59 20  |..p.TBLBAUD .BY |
000002B0: 32 35 35 20 3B 20 3E 3D  20 31 31 B0 80 13 20 2E  |255 ; >= 11... .|
000002C0: 42 59 20 31 34 37 20 3B  20 3E 3D 20 33 30 B0 90  |BY 147 ; >= 30..|
000002D0: 13 20 2E 42 59 20 37 34  20 3B 20 3E 3D 20 36 30  |. .BY 74 ; >= 60|
000002E0: B0 00 14 20 2E 42 59 20  33 37 20 3B 20 3E 3D 20  |... .BY 37 ; >= |
000002F0: 31 32 30 B0 10 14 20 2E  42 59 20 31 38 20 3B 20  |120... .BY 18 ; |
00000300: 3E 3D 20 32 34 30 B0 20  14 20 2E 42 59 20 31 30  |>= 240. . .BY 10|
00000310: 20 3B 20 3E 3D 20 34 38  30 B0 30 14 20 2E 42 59  | ; >= 480.0. .BY|
00000320: 20 37 20 3B 20 3E 3D 20  37 32 30 B0 40 14 20 2E  | 7 ; >= 720.@. .|
00000330: 42 59 20 30 20 3B 20 3E  3D 20 39 36 30 B0 50 14  |BY 0 ; >= 960.P.|
00000340: 89 60 14 89 70 14 47 45  54 2E 42 49 54 20 4C 44  |.`..p.GET.BIT LD|
00000350: 41 20 50 49 41 2E 50 4F  52 54 20 3B 47 45 54 20  |A PIA.PORT ;GET |
00000360: 4B 45 59 42 4F 41 52 44  20 49 4E 50 55 D4 80 14  |KEYBOARD INPU...|
00000370: 20 41 4E 44 20 23 4D 53  4B 2E 49 4E 20 3B 09 AA  | AND #MSK.IN ;..|
00000380: 90 14 20 52 54 D3 00 15  89 10 15 44 45 4C 30 2E  |.. RT......DEL0.|
00000390: 35 20 4C 44 41 20 42 49  54 2E 54 49 4D C5 20 15  |5 LDA BIT.TIM. .|
000003A0: 20 43 4C C3 30 15 20 43  4C C4 40 15 20 41 44 43  | CL.0. CL.@. ADC|
000003B0: 20 23 30 B8 50 15 20 54  41 D9 60 15 20 4A 4D 50  | #0.P. TA.`. JMP|
000003C0: 20 45 4E 30 2E B5 70 15  89 80 15 44 4C 59 46 55  | EN0..p....DLYFU|
000003D0: 4C 4C 20 4C 44 59 20 42  49 54 2E 54 49 4D C5 90  |LL LDY BIT.TIM..|
000003E0: 15 45 4E 30 2E 35 20 4C  44 41 20 55 44 2E 54 42  |.EN0.5 LDA UD.TB|
000003F0: 4C 31 2C D9 00 16 20 42  45 51 20 4E 4F 54 2E 54  |L1,... BEQ NOT.T|
00000400: 48 49 D3 10 16 20 54 41  D9 20 16 4C 4F 4F 50 44  |HI... TA. .LOOPD|
00000410: 45 4C 31 20 44 45 D9 30  16 20 42 4E 45 20 4C 4F  |EL1 DE.0. BNE LO|
00000420: 4F 50 44 45 4C B1 40 16  20 4E 4F D0 50 16 20 52  |OPDEL.@. NO.P. R|
00000430: 54 D3 60 16 89 70 16 3B  2D 2D 2D 44 45 4C 41 59  |T.`..p.;---DELAY|
00000440: 3D 35 58 2B 31 B9 80 16  55 44 2E 54 42 4C 31 20  |=5X+1...UD.TBL1 |
00000450: 2E 42 59 20 30 30 20 3B  44 45 4C 41 59 20 46 55  |.BY 00 ;DELAY FU|
00000460: 4C 4C 20 46 4F 52 20 31  31 30 20 42 41 55 C4 90  |LL FOR 110 BAU..|
00000470: 16 20 2E 42 59 20 30 30  20 3B 44 45 4C 41 59 20  |. .BY 00 ;DELAY |
00000480: 46 55 4C 4C 20 46 4F 52  20 33 30 30 20 20 20 AA  |FULL FOR 300   .|
00000490: 00 17 20 2E 42 59 20 30  30 20 3B 44 45 4C 41 59  |.. .BY 00 ;DELAY|
000004A0: 20 46 55 4C 4C 20 46 4F  52 20 36 30 30 20 20 20  | FULL FOR 600   |
000004B0: AA 10 17 20 2E 42 59 20  31 35 34 20 3B 44 45 4C  |... .BY 154 ;DEL|
000004C0: 41 59 20 46 55 4C 4C 20  46 4F 52 20 31 32 30 30  |AY FULL FOR 1200|
000004D0: 20 20 AA 20 17 20 2E 42  59 20 37 31 20 3B 44 45  |  . . .BY 71 ;DE|
000004E0: 4C 41 59 20 46 55 4C 4C  20 46 4F 52 20 32 34 30  |LAY FULL FOR 240|
000004F0: 30 20 20 AA 30 17 20 2E  42 59 20 32 39 20 3B 44  |0  .0. .BY 29 ;D|
00000500: 45 4C 41 59 20 46 55 4C  4C 20 46 4F 52 20 34 38  |ELAY FULL FOR 48|
00000510: 30 30 20 20 AA 40 17 20  2E 42 59 20 31 35 20 3B  |00  .@. .BY 15 ;|
00000520: 44 45 4C 41 59 20 46 55  4C 4C 20 46 4F 52 20 37  |DELAY FULL FOR 7|
00000530: 32 30 30 20 20 AA 50 17  20 2E 42 59 20 30 38 20  |200  .P. .BY 08 |
00000540: 3B 44 45 4C 41 59 20 46  55 4C 4C 20 46 4F 52 20  |;DELAY FULL FOR |
00000550: 39 36 30 30 20 20 AA 60  17 89 70 17 3B 2D 2D 2D  |9600  .`..p.;---|
00000560: 44 45 4C 41 59 3D 35 58  2B 32 B8 80 17 20 2E 42  |DELAY=5X+2... .B|
00000570: 59 20 30 30 20 3B 44 45  4C 41 59 20 30 2E 35 20  |Y 00 ;DELAY 0.5 |
00000580: 46 4F 52 20 31 31 30 20  42 41 55 C4 90 17 20 2E  |FOR 110 BAU... .|
00000590: 42 59 20 30 30 20 3B 44  45 4C 41 59 20 30 2E 35  |BY 00 ;DELAY 0.5|
000005A0: 20 46 4F 52 20 33 30 30  20 20 20 AA 00 18 20 2E  | FOR 300   ... .|
000005B0: 42 59 20 30 30 20 3B 44  45 4C 41 59 20 30 2E 35  |BY 00 ;DELAY 0.5|
000005C0: 20 46 4F 52 20 36 30 30  20 20 20 AA 10 18 20 2E  | FOR 600   ... .|
000005D0: 42 59 20 37 32 20 3B 44  45 4C 41 59 20 30 2E 35  |BY 72 ;DELAY 0.5|
000005E0: 20 46 4F 52 20 31 32 30  30 20 20 AA 20 18 20 2E  | FOR 1200  . . .|
000005F0: 42 59 20 33 31 20 3B 44  45 4C 41 59 20 30 2E 35  |BY 31 ;DELAY 0.5|
00000600: 20 46 4F 52 20 32 34 30  30 20 20 AA 30 18 20 2E  | FOR 2400  .0. .|
00000610: 42 59 20 31 30 20 3B 44  45 4C 41 59 20 30 2E 35  |BY 10 ;DELAY 0.5|
00000620: 20 46 4F 52 20 34 38 30  30 20 20 AA 40 18 20 2E  | FOR 4800  .@. .|
00000630: 42 59 20 30 33 20 3B 44  45 4C 41 59 20 30 2E 35  |BY 03 ;DELAY 0.5|
00000640: 20 46 4F 52 20 37 32 30  30 20 20 AA 50 18 20 2E  | FOR 7200  .P. .|
00000650: 42 59 20 30 31 20 3B 44  45 4C 41 59 20 30 2E 35  |BY 01 ;DELAY 0.5|
00000660: 20 46 4F 52 20 39 36 30  30 20 20 AA 60 18 89 70  | FOR 9600  .`..p|
00000670: 18 4E 4F 54 2E 54 48 49  53 20 4C 44 41 20 55 44  |.NOT.THIS LDA UD|
00000680: 2E 54 42 4C 32 2C D9 80  18 20 54 41 D9 90 18 4C  |.TBL2,... TA...L|
00000690: 4F 4F 50 44 45 4C 32 20  2E 42 59 20 24 34 38 20  |OOPDEL2 .BY $48 |
000006A0: 24 34 38 20 24 34 38 20  24 34 38 20 24 34 38 20  |$48 $48 $48 $48 |
000006B0: 24 34 38 20 24 34 B8 00  19 20 2E 42 59 20 24 36  |$48 $4... .BY $6|
000006C0: 38 20 24 36 38 20 24 36  38 20 24 36 38 20 24 36  |8 $68 $68 $68 $6|
000006D0: 38 20 24 36 38 20 24 36  B8 10 19 20 44 45 D9 20  |8 $68 $6... DE. |
000006E0: 19 20 42 4E 45 20 4C 4F  4F 50 44 45 4C B2 30 19  |. BNE LOOPDEL.0.|
000006F0: 20 52 54 D3 40 19 89 50  19 3B 2D 2D 2D 44 45 4C  | RT.@..P.;---DEL|
00000700: 41 59 3D 35 34 58 2B 32  B2 60 19 55 44 2E 54 42  |AY=54X+2.`.UD.TB|
00000710: 4C 32 20 2E 42 59 20 31  36 37 20 3B 44 45 4C 41  |L2 .BY 167 ;DELA|
00000720: 59 20 46 55 4C 4C 20 46  4F 52 20 31 31 30 20 42  |Y FULL FOR 110 B|
00000730: 41 55 C4 70 19 20 2E 42  59 20 36 30 20 3B 44 45  |AU.p. .BY 60 ;DE|
00000740: 4C 41 59 20 46 55 4C 4C  20 46 4F 52 20 33 30 30  |LAY FULL FOR 300|
00000750: 20 20 AA 80 19 20 2E 42  59 20 33 30 20 3B 44 45  |  ... .BY 30 ;DE|
00000760: 4C 41 59 20 46 55 4C 4C  20 46 4F 52 20 36 30 30  |LAY FULL FOR 600|
00000770: 20 20 AA 90 19 20 2E 42  59 20 30 30 20 30 30 20  |  ... .BY 00 00 |
00000780: 30 30 20 30 30 20 30 B0  00 20 89 10 20 3B 2D 2D  |00 00 0.. .. ;--|
00000790: 2D 44 45 4C 41 59 3D 35  34 58 2B 33 B1 20 20 20  |-DELAY=54X+3.   |
000007A0: 2E 42 59 20 38 33 20 3B  44 45 4C 41 59 20 30 2E  |.BY 83 ;DELAY 0.|
000007B0: 35 20 46 4F 52 20 31 31  30 20 42 41 55 C4 30 20  |5 FOR 110 BAU.0 |
000007C0: 20 2E 42 59 20 33 30 20  3B 44 45 4C 41 59 20 30  | .BY 30 ;DELAY 0|
000007D0: 2E 35 20 46 4F 52 20 33  30 30 20 20 AA 40 20 20  |.5 FOR 300  .@  |
000007E0: 2E 42 59 20 31 34 20 3B  44 45 4C 41 59 20 30 2E  |.BY 14 ;DELAY 0.|
000007F0: 35 20 46 4F 52 20 36 30  30 20 20 AA 52           |5 FOR 600  .R   |
..0.7N.....;     +++++ SET BAUD RATE +++
+. ..0.SET.BAUD PHP ;SAVE PSR@. SEI ;CLE
AR INTERRUPTSP. LDA PIA.DIR ;INITIALIZE 
PORT ON LOGON`. AND #$FF-MSK.IN ;       
.P. ORA #MSK.OUT ;.... STA PIA.DIR ;....
...LP1 JSR GET.BIT.. BNE LP1 ;BR. IF ALR
EADY SPACING .LP2 LDA PIA.PORT0. AND #MS
K.IN@. BEQ LP2 ;BR. IF MARKINGP. LDY #00
 ;CLEAR FOR DELAY FACTOR`.LP3 LDA PIA.PO
RT ;GET BITP. AND #MSK.IN ;.... BEQ GOT.
COUNT.. CPY #$FF.. BEQ LP... INY .SKP.FF
 BNE LP.0..@.GOT.COUNT TYA ..;MOVE COUNT
 TO R(A.P. LDY #0.`.LP.FI CMP TBLBAUD,YP
. BCS GOTBAUD.. INY.. BNE LP.FI..GOTBAUD
 STY BIT.TIME ;STORE BAUD RATE CODE.. LD
X #12 ;WAIT UNTIL ALL BITS HAVE BEEN SEN
T . JSR PAD.DELX0. PLP@. RTSP..`..P.TBLB
AUD .BY 255 ; >= 11... .BY 147 ; >= 30..
. .BY 74 ; >= 60... .BY 37 ; >= 120... .
BY 18 ; >= 240. . .BY 10 ; >= 480.0. .BY
 7 ; >= 720.@. .BY 0 ; >= 960.P..`..P.GE
T.BIT LDA PIA.PORT ;GET KEYBOARD INPUT..
 AND #MSK.IN ;.... RTS.....DEL0.5 LDA BI
T.TIME . CLC0. CLD@. ADC #0.P. TAY`. JMP
 EN0..P....DLYFULL LDY BIT.TIME..EN0.5 L
DA UD.TBL1,Y.. BEQ NOT.THIS.. TAY .LOOPD
EL1 DEY0. BNE LOOPDEL.@. NOPP. RTS`..P.;
---DELAY=5X+1...UD.TBL1 .BY 00 ;DELAY FU
LL FOR 110 BAUD.. .BY 00 ;DELAY FULL FOR
 300   ... .BY 00 ;DELAY FULL FOR 600   
... .BY 154 ;DELAY FULL FOR 1200  . . .B
Y 71 ;DELAY FULL FOR 2400  .0. .BY 29 ;D
ELAY FULL FOR 4800  .@. .BY 15 ;DELAY FU
LL FOR 7200  .P. .BY 08 ;DELAY FULL FOR 
9600  .`..P.;---DELAY=5X+2... .BY 00 ;DE
LAY 0.5 FOR 110 BAUD.. .BY 00 ;DELAY 0.5
 FOR 300   ... .BY 00 ;DELAY 0.5 FOR 600
   ... .BY 72 ;DELAY 0.5 FOR 1200  . . .
BY 31 ;DELAY 0.5 FOR 2400  .0. .BY 10 ;D
ELAY 0.5 FOR 4800  .@. .BY 03 ;DELAY 0.5
 FOR 7200  .P. .BY 01 ;DELAY 0.5 FOR 960
0  .`..P.NOT.THIS LDA UD.TBL2,Y.. TAY..L
OOPDEL2 .BY $48 $48 $48 $48 $48 $48 $4..
. .BY $68 $68 $68 $68 $68 $68 $6... DEY 
. BNE LOOPDEL.0. RTS@..P.;---DELAY=54X+2
.`.UD.TBL2 .BY 167 ;DELAY FULL FOR 110 B
AUDP. .BY 60 ;DELAY FULL FOR 300  ... .B
Y 30 ;DELAY FULL FOR 600  ... .BY 00 00 
00 00 0.. .. ;---DELAY=54X+3.   .BY 83 ;
DELAY 0.5 FOR 110 BAUD0  .BY 30 ;DELAY 0
.5 FOR 300  .@  .BY 14 ;DELAY 0.5 FOR 60
0  .R
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL