
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo Ich programmiere an einem Programm bei dem ich zwei Assemblerroutinen benötige. Den ersten Teil rufe ich mit sys &H0101 auf. Den zweiten Teil rufe ich mit sys &H0194 auf. Der erste Aufruf funktioniert, der zweite bewirkt nichts (auch keinen Absturz) Ist der Aufruf so überhaupt möglich oder begehe ich einen Denkfehler. Hier der Code des zweiten Teils: PC .equ $01 PD .equ $02 Cnt .equ $0A9 Kon .equ $0AA Adr .equ $0AB Tas .equ $0AC zws .equ $0A4 .org $101 ;Hier steht eigendlich der erste eigenständige Teil ;Zweiter Teil :Diese Routine sollte eigentlich die Inhalte der Bytevariablen über ;port 4 Takt ;port 5 daten ;port 6 latch ;in ein Schieberegister schieben INIT bclr 4,PC ;Data aus bclr 5,PC ;Takt aus bclr 6,PC ;Latch aus lda $0A1 ;Byte 1 laden sta zws ;in Zwischenspeicher ablegen jsr einByte ;zur Routine schieben lda $0A2 ;Byte 2 laden sta zws ;in Zwischenspeicher ablegen jsr einByte ;zur Routine schieben lda $0A3 ;Byte 3 laden sta zws ;in Zwischenspeicher jsr einByte ;zur Routine schieben bset 6,PC ;Latch an bclr 6,PC ;Latch aus rts ;zurück zum basicprogramm einByte ldx #8 ;Wert für 8 Bits bitisteins brset 0,zws,bit_eins ;Bit eins oder null bit_null bclr 5,PC ;Data aus bset 4,PC ;Takt an bclr 4,PC ;Takt aus bclr 5,PC ;Data aus bra weiter ;bit_eins überspringen bit_eins bset 5,PC ;Data an bset 4,PC ;Takt an bclr 4,PC ;Takt aus bclr 5,PC ;Data aus weiter lsr zws ;nächstes Bit in Position 0 schieben decx ;Zähler - 1 bne bitisteins ;Zähler > 0 dann nächstes Bit rts ;zurück zur aufrufenden Routine .end |
| Antwort schreiben |