	opt	l-			;nicht linken!
* F3    ON Funktionstasten GOSUB 

	include  OpenDos.i

_LVOOpen        equ  -30
_LVOClose       equ  -36

        move.l  #name,d1		;Name von RAW:
        move.l  #1005,d2		;Status = gibt es
        jsr     _LVOOpen(a6)		;nun oeffnen
	move.l	d0,d5			;Handle merken
        tst.l   d0			;Fehler?
        beq     fini			;wenn ja, abbrechen

        lea.l   buffer,a3		;Adresse des Puffers

loop	jsr     GetKey			;Lese Taste
	cmp.b   #$9B,(a3)		;Funktionstaste?
        bne     loop			;wenn nicht
	jsr	GetKey			;sonst lese Code

        move.b  (a3),d0                 ;Code -> d0
        ext.w   d0                      ;auf Wort erweitern
        sub.w   #$30,d0                 ;Code in 0..3
        asl.w   #2,d0                   ;mal 4
        lea.l   table,a0                ;Zeiger auf Tabelle
        move.l  0(a0,d0.w),a0		;Adresse -> a0
        jsr     (a0)			;Routine aufrufen

        bra     loop			;bis F4 kommt

 
F1	lea.l    f1_text,a0     	;Adresse Text
        bsr      print			;drucken
        rts

F2	lea.l    f2_text,a0     	;Adresse Text
        bsr      print			;drucken
        rts

F3	lea.l    f3_text,a0     	;Adresse Text
        bsr      print			;drucken
        rts

F4	move.l  (sp)+,d0                ;Kill Return Adress
        move.l	d5,d1			;RAW wieder schliessen
        jsr     _LVOClose(a6)

* Zum Schluss immer die Lib schliessen!
        move.l  a6,a1                   ;DOS-Lib-Basis
	move.l  _SysBase,a6		;Basis Exec
        jsr     _LVOCloseLibrary(a6)	;Funktion "Schliessen"
fini	rts				;Return zum CLI

GetKey  move.l  d5,d1			;von RAW lesen
        move.l  a3,d2			;in diesen Puffer
        move.l  #1,d3			;1 Zeichen
        jsr     _LVORead(a6)		;Lesen aufrufen
	rts

print	clr.l   d3
        move.b  (a0)+,d3		;Laenge
        move.l  d5,d1
        move.l  a0,d2
        jsr	_LVOWrite(a6)		;Funktion "Schreiben"
	rts

* Datenbereich:

table    dc.l   F1
         dc.l   F2
         dc.l   F3
         dc.l   F4

dosname	 dc.b	'dos.library',0
	 cnop	0,2
name	 dc.b   'RAW:40/100/580/80/Stop mit F4',0
         cnop   0,2

f1_text	 dc.b	8,'Hier F1',10
	 cnop   0,2
f2_text	 dc.b	8,'Hier F2',10
	 cnop   0,2
f3_text	 dc.b	8,'Hier F3',10
	 cnop   0,2

buffer   ds.b   8
         cnop   0,4

hbuf     ds.b   10

