Skip to content

Instantly share code, notes, and snippets.

@VelkyVenik
Last active September 13, 2017 13:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save VelkyVenik/c92b363f5060f1d49fa93d394c9f5b8f to your computer and use it in GitHub Desktop.
Save VelkyVenik/c92b363f5060f1d49fa93d394c9f5b8f to your computer and use it in GitHub Desktop.
asm80.com - spatne adresy navesti v bloku, test.a65.lst skok na adrese F003 ma byt na F00D a je na F00E
; -----------------------------------
; --- 6850 Serial Line Functions ----
; -----------------------------------
.block
ACIA = $A000
ACIACONTROL = ACIA+0
ACIASTATUS = ACIA+0
ACIADATA = ACIA+1
SERIAL_DATA = $9
@SERIAL_INIT:
; ACIA init
LDA #$15
STA ACIAControl
RTS
; ---- Send one byte from serial_data to serial line
@SERIAL_OUT: ;
PHA ; save A
SO_WAIT:
LDA ACIAStatus
AND #2
BEQ so_wait ; Wait for serial line
LDA serial_data
STA ACIAData ; Send one byte
PLA ; restore A
RTS
; ---- wait for and read one byte from serial line to serial_data
@SERIAL_IN:
PHA ; save A
SI_WAIT:
LDA ACIAStatus
AND #1
BEQ si_wait ; Wait for serial input
LDA ACIAData ; Read one byte
STA serial_data
PLA ; restore A
RTS
.endblock
.ORG $F000 ; ROM
.ENT $ ; ASM80.COM - emulator start
; Stack
LDX #$FF
TXS
JSR serial_init
LDA #$41
STA serial_data
JSR serial_out
.include serial.a65
F000 .ORG $F000 ; ROM
F000 .ENT $ ; ASM80.COM - emulator start
F000 ; Stack
F000 A2 FF LDX #$FF
F002 9A TXS
F003 20 0E F0 JSR serial_init
F006 A9 41 LDA #$41
F008 85 00 STA serial_data
F00A 20 14 F0 JSR serial_out
F00D ; -----------------------------------
F00D ; --- 6850 Serial Line Functions ----
F00D ; -----------------------------------
F00D .BLOCK
F00D ACIA: = $A000
F00D ACIACONTROL: = ACIA+0
F00D ACIASTATUS: = ACIA+0
F00D ACIADATA: = ACIA+1
F00D SERIAL_DATA: = $9
F00D SERIAL_INIT:
F00D ; ACIA init
F00D A9 15 LDA #$15
F00F 8D 0D F0 STA ACIAControl
F012 60 RTS
F013 ; ---- Send one byte from serial_data to serial line
F013 SERIAL_OUT: ;
F013 48 PHA ; save A
F014 SO_WAIT:
F014 AD 0D F0 LDA ACIAStatus
F017 29 02 AND #2
F019 F0 F9 BEQ so_wait ; Wait for serial line
F01B A5 0D LDA serial_data
F01D 8D 0D F0 STA ACIAData ; Send one byte
F020 68 PLA ; restore A
F021 60 RTS
F022 ; ---- wait for and read one byte from serial line to serial_data
F022 SERIAL_IN:
F022 48 PHA ; save A
F023 SI_WAIT:
F023 AD 0D F0 LDA ACIAStatus
F026 29 01 AND #1
F028 F0 F9 BEQ si_wait ; Wait for serial input
F02A AD 0D F0 LDA ACIAData ; Read one byte
F02D 85 0D STA serial_data
F02F 68 PLA ; restore A
F030 60 RTS
F031 .ENDBLOCK
_PC F031
SERIAL_INIT F00E
SERIAL_OUT F014
SERIAL_IN F023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment