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?