Linux
Diwers ¹
Retro
Elite:Dangerous
Nintendo
Links
Startseite
Kontakt
Statistik
Netzherpes' Microblog
Archiv
self build smartphone
GPG Key
Suche:
Suche:
befreundete blogs
drewing.de
c3 -privat
c3 professional
Arveds Fotoblog
andis gartenblog
samen-andreas blog
Devabo Webcomic
Mainhatten Moments
Zufällige Eintrage
ein festplattencrash :(
Totalausfall in Runde 14
KIM-1 scrolltext
23.1.21, 20:29 -
retro & C64
gepostet von web doc
; kim_msg.asm ; testing lin2c64 6510 assembler ; using J. Butterfield's scan display from Wumpus ; 01/03/2013 ces ; modified code from user chassum on brielcomputers.com/phpBB3 ; using timer 1 instead (at $1747) and added / fixed ; some chars 21.01.2021 webdoktor @ netzherpes . de ; define some pseudo-alphabet characters A_ .equ $f7 _a .equ $5f B_ .equ $ff _b .equ $fc C_ .equ $b9 _c .equ $d8 _d .equ $de E_ .equ $f9 _e .equ $7b F_ .equ $f1 G_ .equ $bd _g .equ $ef H_ .equ $f6 _h .equ $f4 I_ .equ $b0 _i .equ $10 J_ .equ $9e K_ .equ $f0 ; non-standard L_ .equ $b8 _l .equ $86 _m .equ $a3 ; non-standard N_ .equ $b7 _n .equ $54 O_ .equ $bf _o .equ $dc P_ .equ $f3 _q .equ $e7 R_ .equ $31 _r .equ $d0 S_ .equ $ed _t .equ $f8 U_ .equ $be _u .equ $9c _v .equ $c2 ; non-standard _w .equ $0c ; the right half after _u _x .equ $e4 ; non-standard Y_ .equ $ee Z_ .equ $5b Qmrk .equ $d3 dsh .equ $c0 spc .equ $80 ch0 .equ $bf ch1 .equ $86 ch2 .equ $dB ch3 .equ $cf ch4 .equ $e6 ch5 .equ $ed ch6 .equ $fd ch7 .equ $87 ch8 .equ $ff ch9 .equ $ef SAD .equ $1740 ; data port for pins 1-4 SADD .equ $1741 SBD .equ $1742 ; data port for pins 5-6 SBDD .equ $1743 TIMER2 .equ $1747 ; optional 2nd 6532 timer led1 .equ $08 ; LED selectors (left to right) led2 .equ $0a led3 .equ $0c led4 .equ $0e led5 .equ $10 led6 .equ $12 lout .equ $7f ; set pins as output to left 4 LEDs rout .equ $1e ; set pins as output to right 2 LEDs tmr .equ $00db ptr .equ $00dc xfrhi .equ $00dd xfrlo .equ $00de tmp1 .equ $00df cbuff .equ $00e8 .org $0180 ; start of data msg0 .byte spc spc spc spc spc _n _e _t Z_ _h _e _r P_ _e S_ spc spc spc spc spc spc $00 ; add some spaces in the begginning and end to make it scroll msg1 .byte spc ch0 ch1 ch2 ch3 ch4 ch5 ch6 ch7 ch8 ch9 $00 msg2 .byte _t _h I_ S_ spc I_ S_ spc A_ spc _t E_ S_ _t $00 msg3 .byte H_ E_ L_ L_ O_ spc _u _w _o _r _l _d $00 msg4 .byte spc spc spc _b Y_ E_ $00 MSG5 .BYTE spc spc spc spc spc spc $00 lo0 .equ
msg0 lo1 .equ
msg1 lo2 .equ
msg2 lo3 .equ
msg3 lo4 .equ
msg4 lo5 .equ
msg5 .org $0200 ; start of code main ldy #hi0 lda #lo0 jsr scan ; ldy #hi1 ; lda #lo1 ; jsr scan ; ldy #hi2 ; lda #lo2 ; jsr scan ; ldy #hi3 ; lda #lo3 ; jsr scan ; ldy #hi4 ; lda #lo4 ; jsr scan ; ldy #hi5 ; lda #lo5 ; jsr scan jmp main .org $0300 scan sty xfrlo ; y and a get loaded before jsr to scan sta xfrhi lda #$07 ; init scan forward sta tmp1 ldy #$05 ; init y cont ldx #$05 ; init x char lda (xfrhi),y ; get character cmp #$00 ; last character? bne more ; if not, continue rts more sta cbuff,x ; store char dey ; set up next char dex ; set up next store loc bpl char ; loop if not 6th char cld ; binary mode clc ; prepare to add (clear carry flag) tya ; get char pointer adc tmp1 ; update for 6 new characters sta ptr ; save new pointer jsr dspdly ; delay display ldy ptr ; restore pointer jmp cont ; continue with rest of message dspdly ldx #$0a ; set the delay rate here stx tmr ; put in decr. location time lda #$52 ; load timer sta TIMER2 ; start timer lite jsr disp ; gosub display rtn bit TIMER2 ; timer done? bpl lite ; if not, loop dec tmr ; decrement timer counter bne time ; not finished rts ; now get 6 new characters disp lda #lout ; change left led segments sta SADD ; to outputs ldy #$00 ; init recall index ldx #$09 ; init digit number six lda cbuff,y ; get character sty $00fc ; save y for monitor disp routine jsr $1f4e ; monitor routine - disp char, delay 500 cycles iny ; set up for next char cpy #$06 ; 6 char displayed? bcc six ; no ; JSR $1f3d ; check keypress if you want to rts
results in the Punchtape Output
;1801808080808080547BF85BF47BD0F37BED8080808080800080BF0E14 ;18019886DBCFE6EDFD87FFEF00F8F4B0ED80B0ED80F780F8F9EDF81399 ;1801B000F6F9B8B8BF809C0CDCD086DE00808080FCEEF9008080800F02 ;0401C880808000024D ;0A0200A001A9802000034C00020247 ;18030084DE85DDA90785DFA005A205B1DDC900D0016095E888CA100CA6 ;180318F3D8189865DF85DC202803A4DC4C0A03A20A86DBA9528D470B53 ;18033017203E032C471710F8C6DBD0EF60A97F8D4117A000A209B90A26 ;0D0348E80084FC204E1FC8C00690F36006BE ;0000090009
Start the programm at 0200.
Have fun,
webdoktor
kommentare anschauen (abgeben derzeit deaktiviert)
( 1650 mal angeschaut ) |
Permalink
<<alpha
<Zurück
| 4 |
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
Weiter>
omega>>