Im P5DRIV wird's so gemacht:
Code:
*IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
*III EXTPORT, LEDPORT: shift data out III
*IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
*III on entry: DATA line is DDR=OUT III
*III on entry: CLOCK line is DDR=OUT, ON III
*III on entry: STROBE line is DDR=OUT, OFF III
*III on entry: LSTROBE line is DDR=OUT, OFF III
*III in CCBASIC: must pulse selected STROBE III
*IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
* REMAINS PA3=0, PA2=1
; init: index of EXTPORT relative EXTPORT
PDRIVE:
CLRX ; EXTPORT is at index 0
BRA PDSHIFT ; shift out 8 bits
LDRIVE: ; init: index of LEDPORT relative EXTPORT
LDX #2 ; LEDPORT is EXTPORT + 2
; fall thru
; shift out 8 bits to indexed PORT
PDSHIFT:
LDA #8 ; shift out 8 bits
* BSET 0,PADDR ; DATA LINE IS OUTPUT
LP2: ROL EXTP,X
BCLR 0,PADAT ; OUT = lo
BCC LP1
BSET 0,PADAT ; OUT = HI
LP1: BCLR 2,PADAT ; pulse CLOCK out
BSET 2,PADAT
DECA
BNE LP2
; restore cached value
ROL EXTP,X
; NOTE: must pulse STROBE line in CCBASIC
* BSET 3,PADAT ;STROBE
* BCLR 3,PADAT
; NOTE: input not supported any more
* BCLR 0,PADDR ;DATA LINE IS INPUT
RTS
-- Hast Du das gesucht?
Lesezeichen