execbase = 4
disable = -120
enable = -126
delay = 3000

run:
 move.l execbase,a6       ;Exec-Basisadresse
 jsr    disable(a6)       ;Interrupts (+ Multitasking) sperren
 move.w #$8210,$dff096    ;Disk-DMA erlauben
 bset   #3,$bfd100        ;Laufwerk deselektieren
 bclr   #7,$bfd100        ;Motor-Bit aktivieren
 bclr   #3,$bfd100        ;Laufwerk selektieren => Motor ein

;Kopf nach Zylinder 0 fahren

 bset   #1,$bfd100        ;fahre nach aussen
 clr.l  d2                ;Register fÜr alten Cylinder
seek:
 move.w #delay,d1         ;Wert fÜr Warteschleife
seekdelay:
 dbra   d1,seekdelay      ;Warteschleife
 btst   #4,$bfe001        ;Kopf auf Cylinder 0?
 beq    seekend           ;Ja! Dann verzweige
 bclr   #0,$bfd100        ;Kopf einem Schritt bewegen
 add.l  #1,d2             ;nächster Cylinder
 bset   #0,$bfd100        ;Es werden nur 1-0 Übergänge registriert
 bra    seek              ;Solange, bis Kopf auf Cyl 0
seekend:
 move.l d2,oldcyl         ;alten Cylinder speichern

;Kopf nach Cylinder 79 bewegen

 move.l #78,d7            ;Aktueller Cylinder momentan Cyl 79
loop:
 bclr   #1,$bfd100        ;fahre nach innen
marke1:
 move.w #delay,d1         ;Wert fÜr Warteschleife
marke2:
 dbra   d1,marke2         ;Warteschleife
 bclr   #0,$bfd100        ;Kopf einen Schritt bewegen
 bset   #0,$bfd100        ;Es werden nur 1-0 Übergänge registriert
 dbra   d7,marke1         ;Bis Kopf auf Cylinder 79 ist

;Kopf auf alte Position bringen

 move.l #79,d7            ;aktueller Cylinder
 move.l oldcyl,d6         ;alter Cylinder
 bset   #1,$bfd100        ;fahre nach aussen
alt:
 move.w #delay,d1         ;Wert fÜr Warteschleife
warte:
 dbra   d1,warte          ;Warteschleife
 cmp.l  d6,d7             ;alten Cylinder erreicht?
 beq    ende              ;Ja, dann verzweige
 bclr   #0,$bfd100        ;Kopf bewegen
 sub.l  #1,d7             ;nächster Cylinder
 bset   #0,$bfd100        ;Es werden nur 1-0 Übergänge registriert
 bra    alt               ;Bis alter Cylinder erreicht
ende:
 bset   #3,$bfd100        ;Laufwerk deselektieren (fÜr 1-0 Übergang)
 bset   #7,$bfd100        ;Motor
 bclr   #3,$bfd100        ;ausschalten
 bset   #3,$bfd100        ;Laufwerk deselektieren
 jsr    enable(a6)        ;Interrupts und Multitasking erlauben
rts                       ;Programmende

oldcyl: dc.l 0
