All pastes #241742 Raw Edit

Untitled

public text v1 · immutable
·published 2006-11-06 15:54 UTC
rendered paste body
	;des is sisch ultrakrasse lischterkedde
	XDEF main

PBODR 		EQU $000216C2    ;/* Port B Open Drain */
PBPAR 		EQU $000216CB    ;/* Port B Pin Assignment */
PBDIR 		EQU $000216B8    ;/* Port B Data Direction */
PBDAT 		EQU $000216C4    ;/* Port B Data */

CodeSec: 	SECTION 1

main:		CLR.L D1
		MOVE.L #$000000FF,PBDIR.L
		MOVE.L #$00000000,PBPAR.L
		MOVE.W #$0000,PBODR.L
		MOVE.L #$00000000,PBDAT.L
		MOVE.B #$01,D1

BACK:		ROR.B #$01,D1			;rotiere D1 um 1 nach links
		MOVE.L D1,PBDAT.L		;copy d1 nach pbdat
		MOVE.L #$00000000,D4		;wartezähler init
		BRA.W WAIT

WEITER:		ROL.B #$01,D1			;rotiere D1 um 1 nach links
		MOVE.L D1,PBDAT.L		;copy d1 nach pbdat
		MOVE.L #$00000000,D4		;wartezähler init
		BRA.W WAIT

WAIT:		ADD.L #$00000001,D4		;wartezähler +1
		CMP.L #$0003FFFF,D4		;check ob warteende erreicht
		BNE.W WAIT			;springe wieder in warteschleife wenn !ende
CHECK:		MOVE.L PBDAT.L,D2		;copy pbdat nach d2
		OR.W #$EFFF,D2			;check in d2 ob pd12=1
		CMP.W #$EFFF,D2			;siehe oben
		BEQ.W CHECK			;springe wieder CHECK wenn taster immer noch gedrückt
		MOVE.L PBDAT.L,D2		;copy pbdat nach d2
		OR.W #$DFFF,D2			;check in d2 ob pd12=1
		CMP.W #$DFFF,D2			;siehe oben
		BEQ.W CHECK			;springe wieder CHECK wenn taster immer noch gedrückt
		BRA.W LOOP			;springe LOOP wenn taster offen

LOOP:		MOVE.L PBDAT.L,D2		;copy pbdat nach d2
		OR.W #$EFFF,D2			;check in d2 ob pd12=1
		CMP.W #$EFFF,D2			;siehe oben
		BEQ.W WEITER			;wenn pb12=1 springe WEITER
		MOVE.L PBDAT.L,D2		;copy pbdat nach d2
		OR.W #$DFFF,D2			;check in d2 ob pd12=1
		CMP.W #$DFFF,D2			;siehe oben
		BEQ.W BACK			;wenn pb12=1 springe WEITER

		BRA.W LOOP			;wenn nich dann wieder loop


		END 				;GANZ WISCHTISCH!!!