;--------------------------------
       Motor Off Utility
;--------------------------------

; Poko '91
;
; Mire jó ez a kis program ?
; Gondolom sokszor tapasztaltad már hogy egy-egy játékprogram elindulása 
; után a lemezmeghajtó folyamatosan pörgeti a lemezt. Nos ha ezt a kis 
; programot lefordítod SEKA assemblerrel és lefuttatod az ilyen tipusú 
; programok előtt, akkor ha a játék elindulása után megnyomod az F9 
; gombot akkor ez a kis program szépen megállítja a meghajtót 
; ( az esetek többségében ).


memtype      = $10004
anzData      = 300
allocmem     = -198
freemem      = -210
addIntServer = -168
RemIntServer = -174
taste        = $bfec01
pri          = 100
type         = 2
IntNum       = 3
is_data      = 14
is_Code      = 18
ln_type      = 8
ln_Pri       = 9
ln_Name      = 10

start:
        move.l  $4.w,a6
        lea     dosname,a1
        jsr     -408(a6)        ; OldOpenLibrary
        move.l  d0,dosbase
        move.l  dosbase,a6
        jsr     -60(a6)         ; Output()
        move.l  d0,d1           ; file
        move.l  #text,d2        ; buffer
        move.l  #tend-text,d3   ; length
        jsr     -48(a6)         ; Write

        move.l  4.w,a6
        move.l  dosbase,a1
        jsr     -414(a6)        ; CloseLibrary

        move.l  #300,d0         ; length
        move.l  #$10001,d1      ; memtype
        jsr     -198(a6)        ; AllocMem
        tst.l   d0
        beq.s   fehler
        move.l  d0,a2
        add.l   #32,d0
        move.l  d0,is_Data(a2)
        move.b  #pri,ln_pri(a2)         ; priority
        move.b  #type,ln_type(a2)       ; NT_INTERRUPT
        move.l  #Vege-anfang+8,d0
        jsr     -198(a6)                ; AllocMem
        tst.l   d0
        bne.s   ok1
        move.l  a2,a1
        move.l  #300,d0
        jsr     -210(a6)        ; FreeMem
        bra.s   fehler
ok1:
        move.l  d0,a3
        move.l  a3,is_Code(a2)
        move.l  a2,a1

        lea     anfang,a2
        move.l  #Vege-anfang,d0
l1:     move.b  (a2)+,(a3)+
        dbf     d0,l1

        move.l  #intNum,d0
        jsr     addIntServer(a6)
        moveq   #0,d0
fehler:	rts

dosbase: dc.l 0
dosname:
        dc.b    'dos.library',0
text:   dc.b    'Motor Off Utility V1.01 ',$a9,'Poko in MCMXC.',13,10
        dc.b    'Press F9 button to turn motor off in drive 0 !!!',0
tend:

anfang: move.l  d0,a5
        move.b  $bfec01,d0
        not     d0
        ror.b   #1,d0
        cmp.b   #$58,d0         ; F9
        beq.s   Moff
pekk:   clr.l   d0
        rts

Moff:
        move.l  a1,a5
        tst.l   (a5)
        bne.s   pekk
        ori.b   #$88,$bfd100
        andi.b  #$f7,$bfd100
        clr.l   (a5)
        rts
Vege:

