Hallo,

Ich habe ihr ein Assemblercode zur Ansteuerung von Servosfür eine C-Control main unit.
Der Code ist weder von mir geschrieben noch Compeliert.

Ich möchte das Programm jedoch mit einer höheren Frequenz betreiben und den Zeitbereich anpassen. Ich verwende den compiler von Workbench in dem Code einige fehler erkennt. Die Anpassungen kann ich machen, jedoch kann ich die Fehler nicht korrigieren.

Bitte seht euch den Code mal an. Ich freue mich auf jede Hilfe.

Der Fehler liegt vor allem in der Warteschleife.
Ich habe die Fehlermeldungen in den Code Geschrieben.
Code:
;---------------------------------------
; Servo-Steuerung an port 1
;
; Title: Setzen eines Servos
; 
; Parameter:
;     mask, Adresse $0A1, Bitmaske des Servos
;     pos , Adresse $0A2, Zielposition des Servos 127=Mitte
;
; Beschreibung:
;     Es wird ein Setzimpuls an den Servo an Port B gesendet.
;     Die Bitmaske bezeichnet den Servo, der gesteuert werden
;     soll. Es können auch mehrere Servos synchron gesteuert
;     werden.
;  
;     Diese Routine sollte pro Positionierung 20 mal
;     aufgerufen werden.
;
; Copyright Mario Boller-Olfert 2000

portb   .equ    1            ;Daten Port B
dirb    .equ    5            ;Datenrichtung Port B

        .org    $101

                             ;--- setzen der Bits entsprechend der mask
        lda    $0A1          ; dirb = dirb OR mask
	ora    dirb             
        sta    dirb

        sei                  ;abschalten interrupts wg. zeitkritischer verarbeitung

        lda    $0A1          ; portb = portb OR mask
        ora    portb
        sta    portb
                             ;--- warten entsprechend der Pulslaenge
        lda    #$FF          ;1 ms warten
        jsr    wart
        lda    $0A2           ;warten entsprechend der Position
        jsr    wart

                             ;--- ruecksetzen der Bits entsprechend Servo
	lda    $0A1                 ; portb = portb AND NOT mask
        coma          ;[Fehler](44): Unbekannter Befehl.(1) 
        and    portb
        sta    portb
        cli
        rts

                             ;--- warteschleife
wart    beq    ret    ;[Fehler](51): ungültige Anzahl der Parameter.(2)  ;Abfangen der Pulslaenge 0
looph   nop           ;[Fehler](52): Unbekannter Befehl.(1)              ;eigentliche Warteschleife
        deca
        bne    looph
ret     rts
        
        .end