Shiftregister des 6526
Selten genutzt und nicht zu unterschätzen. Die beiden Hardware Shift-Register des 6526 sind am
Userport herausgeführt. Diese können sowohl zum Schreiben als auch zum Lesen von seriellen Daten verwendet werden.
Für die Geschwindigkeit des Transfers beim Schreiben wird Timer A verwendet. Nach den acht Clock-Pulsen wird ein Interrupt ausgelöst, um zu signalisieren, dass das nächste Byte gesendet werden kann. MSB wird immer zuerst gesendet.
Beim Lesen werden die Bits bei der steigenden Flanke von CNT übernommen und es wird ebenfalls ein Interrupt ausgelöst.
Ein Beispiel zum Schreiben mit dem Port:
!to"shiftout",cbm
sdr = $dc0c
icr = $dc0d
cra = $dc0e
*= $0800
!byte $00,$0c,$08,$0a,$00,$9e,$32,$30,$36,$33,$00,$00,$00,$00
*=$080f
sei
ldy #$01 ; Set the clock rate to the fastest possible
sty $dc04 ; Timer A Low
dey
sty $dc05 ; Timer A High
lda #%11000001 ; Start TimerA, Serial Out, TOD 50Hz
sta cra
bit icr
lda #$88 ; #136 %10001000
sta sdr
- bit icr
beq -
lda #$40 ; set to Pal (Timer A)
sta $dc05
lda #$25
sta $dc04
cli
rts
Das Ergebnis im Logik-Analysator:
6526 Datenblatt
Letzte Änderung: 2019-01-03 11:42:37