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

MA-UART2    470E

FILE INFORMATION

FILENAME(S): MA-UART2    470E

FILE TYPE(S): PRG

FILE SIZE: 842b

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

APPEARS ON: 1 disk(s)

FILE HASH

9079a926f1f8c0c5b25d3145ed4331c5b6895c4776926848fdfb8be1afac3dc0

FOUND ON DISKS (1 DISKS)

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

FILE CONTENT & ANALYSIS

00000000: AA 00 30 43 33 CE 00 10  89 10 10 3B 20 20 20 20  |..0C3......;    |
00000010: 20 2B 2B 2B 2B 2B 20 55  41 52 54 20 4F 55 54 50  | +++++ UART OUTP|
00000020: 55 54 20 2B 2B 2B 2B AB  20 10 89 30 10 55 41 52  |UT ++++. ..0.UAR|
00000030: 54 2E 4F 55 54 20 50 48  D0 40 10 20 53 45 C9 50  |T.OUT PH.@. SE.P|
00000040: 10 20 4A 53 52 20 55 41  52 54 2E 4F 55 54 B1 60  |. JSR UART.OUT.`|
00000050: 10 20 50 4C 50 20 3B 52  45 53 54 4F 52 45 20 50  |. PLP ;RESTORE P|
00000060: 53 52 20 41 4E 44 20 52  45 54 55 52 CE 70 10 20  |SR AND RETUR.p. |
00000070: 52 54 D3 80 10 89 90 10  55 41 52 54 2E 4F 55 54  |RT......UART.OUT|
00000080: 31 20 50 48 41 20 09 09  3B 53 41 56 45 20 43 48  |1 PHA ..;SAVE CH|
00000090: 41 52 AE 00 11 20 45 4F  52 20 23 24 46 46 20 3B  |AR... EOR #$FF ;|
000000A0: 49 4E 56 45 52 D4 10 11  20 50 48 C1 20 11 20 4C  |INVER... PH. . L|
000000B0: 44 58 20 23 31 31 20 3B  31 31 20 42 49 54 53 3A  |DX #11 ;11 BITS:|
000000C0: 20 20 31 20 53 54 4F 50  2C 20 38 20 44 41 54 41  |  1 STOP, 8 DATA|
000000D0: 2C 20 32 20 53 54 4F D0  30 11 20 53 45 C3 40 11  |, 2 STO.0. SE.@.|
000000E0: 4C 50 2E 55 4F 55 54 20  4A 53 52 20 42 49 54 2E  |LP.UOUT JSR BIT.|
000000F0: 4F 55 54 20 3B 42 49 54  20 54 4F 20 50 4F 52 D4  |OUT ;BIT TO POR.|
00000100: 50 11 20 4A 53 52 20 44  4C 59 46 55 4C 4C 20 3B  |P. JSR DLYFULL ;|
00000110: 44 45 4C 41 59 20 46 55  4C 4C 20 42 49 54 20 54  |DELAY FULL BIT T|
00000120: 49 4D C5 60 11 20 50 4C  41 20 3B 52 45 53 54 4F  |IM.`. PLA ;RESTO|
00000130: 52 45 20 52 28 41 A9 70  11 20 4C 53 52 20 41 20  |RE R(A.p. LSR A |
00000140: 3B 4E 45 58 54 20 42 49  D4 80 11 20 50 48 41 20  |;NEXT BI... PHA |
00000150: 3B 41 4E 44 20 53 41 56  C5 90 11 20 44 45 D8 00  |;AND SAV... DE..|
00000160: 12 20 42 4E 45 20 4C 50  2E 55 4F 55 54 20 3B 4C  |. BNE LP.UOUT ;L|
00000170: 4F 4F D0 10 12 20 50 4C  41 20 09 09 3B 52 45 4D  |OO... PLA ..;REM|
00000180: 4F 56 45 20 4A 55 4E CB  20 12 20 50 4C 41 20 3B  |OVE JUN. . PLA ;|
00000190: 52 45 53 54 4F 52 45 20  43 48 41 52 AE 30 12 20  |RESTORE CHAR.0. |
000001A0: 41 4E 44 20 23 24 37 46  20 3B 43 4C 45 41 52 20  |AND #$7F ;CLEAR |
000001B0: 42 49 54 20 B7 40 12 20  43 4D 50 20 23 24 30 44  |BIT .@. CMP #$0D|
000001C0: 20 3B 43 D2 50 12 20 42  45 51 20 50 41 44 2E 44  | ;C.P. BEQ PAD.D|
000001D0: 45 CC 60 12 20 43 4D 50  20 23 24 30 41 20 3B 4C  |E.`. CMP #$0A ;L|
000001E0: C6 70 12 20 42 45 51 20  50 41 44 2E 44 45 CC 80  |.p. BEQ PAD.DE..|
000001F0: 12 20 52 54 D3 90 12 89  00 13 50 41 44 2E 44 45  |. RT......PAD.DE|
00000200: 4C 58 20 50 48 C1 10 13  20 43 50 58 20 23 30 B0  |LX PH... CPX #0.|
00000210: 20 13 20 4A 4D 50 20 50  41 44 2E 44 45 4C 45 CE  | . JMP PAD.DELE.|
00000220: 30 13 BB 40 13 50 41 44  2E 44 45 4C 20 50 48 41  |0..@.PAD.DEL PHA|
00000230: 20 3B 50 52 45 53 45 52  56 C5 50 13 20 4C 44 58  | ;PRESERV.P. LDX|
00000240: 20 4E 4F 2E 50 41 44 42  49 54 53 20 3B 47 45 54  | NO.PADBITS ;GET|
00000250: 20 23 20 4F 46 20 50 41  44 20 42 49 54 D3 60 13  | # OF PAD BIT.`.|
00000260: 50 41 44 2E 44 45 4C 45  4E 20 42 45 51 20 45 58  |PAD.DELEN BEQ EX|
00000270: 2E 44 45 4C 20 3B 53 4B  49 50 20 49 46 20 5A 45  |.DEL ;SKIP IF ZE|
00000280: 52 CF 70 13 4C 50 2E 50  44 45 4C 20 4A 53 52 20  |R.p.LP.PDEL JSR |
00000290: 44 4C 59 46 55 4C 4C 20  3B 44 45 4C 41 D9 80 13  |DLYFULL ;DELA...|
000002A0: 20 44 45 D8 90 13 20 42  4E 45 20 4C 50 2E 50 44  | DE... BNE LP.PD|
000002B0: 45 4C 20 3B 4C 4F 4F D0  00 14 45 58 2E 44 45 4C  |EL ;LOO...EX.DEL|
000002C0: 20 50 4C 41 20 3B 52 45  53 54 4F 52 C5 10 14 20  | PLA ;RESTOR... |
000002D0: 52 54 D3 20 14 89 30 14  42 49 54 2E 4F 55 54 20  |RT. ..0.BIT.OUT |
000002E0: 4C 44 41 20 50 49 41 2E  50 4F 52 54 20 3B 50 55  |LDA PIA.PORT ;PU|
000002F0: 54 20 42 49 D4 40 14 20  41 4E 44 20 23 24 46 46  |T BI.@. AND #$FF|
00000300: 2D 4D 53 4B 2E 4F 55 D4  50 14 20 42 43 43 20 53  |-MSK.OU.P. BCC S|
00000310: 4B 50 2E 42 4F 55 D4 60  14 20 4F 52 41 20 23 4D  |KP.BOU.`. ORA #M|
00000320: 53 4B 2E 4F 55 D4 70 14  53 4B 50 2E 42 4F 55 54  |SK.OU.p.SKP.BOUT|
00000330: 20 53 54 41 20 50 49 41  2E 50 4F 52 D4 80 14 20  | STA PIA.POR... |
00000340: 52 54 D3 90 14 89 00 15  89 2E                    |RT........      |
..0C3N.....;     +++++ UART OUTPUT ++++.
 ..0.UART.OUT PHP@. SEIP. JSR UART.OUT.`
. PLP ;RESTORE PSR AND RETURNP. RTS.....
UART.OUT1 PHA ..;SAVE CHAR... EOR #$FF ;
INVERT.. PHA . LDX #11 ;11 BITS:  1 STOP
, 8 DATA, 2 STOP0. SEC@.LP.UOUT JSR BIT.
OUT ;BIT TO PORTP. JSR DLYFULL ;DELAY FU
LL BIT TIME`. PLA ;RESTORE R(A.P. LSR A 
;NEXT BIT.. PHA ;AND SAVE.. DEX.. BNE LP
.UOUT ;LOOP.. PLA ..;REMOVE JUNK . PLA ;
RESTORE CHAR.0. AND #$7F ;CLEAR BIT .@. 
CMP #$0D ;CRP. BEQ PAD.DEL`. CMP #$0A ;L
FP. BEQ PAD.DEL.. RTS.....PAD.DELX PHA..
 CPX #0. . JMP PAD.DELEN0..@.PAD.DEL PHA
 ;PRESERVEP. LDX NO.PADBITS ;GET # OF PA
D BITS`.PAD.DELEN BEQ EX.DEL ;SKIP IF ZE
ROP.LP.PDEL JSR DLYFULL ;DELAY.. DEX.. B
NE LP.PDEL ;LOOP..EX.DEL PLA ;RESTORE.. 
RTS ..0.BIT.OUT LDA PIA.PORT ;PUT BIT@. 
AND #$FF-MSK.OUTP. BCC SKP.BOUT`. ORA #M
SK.OUTP.SKP.BOUT STA PIA.PORT.. RTS.....
..
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL