 move.l #0,a3
 move.l a0,d6
 move.l d0,d7
OpenDos
 lea Dos(PC),a1
 moveq #0,d0
 move.l 4,a6
 jsr -552(a6)
 tst.l d0
 beq Fine
 move.l d0,a4
 lea Dos(PC),a1
 moveq #37,d0
 move.l 4,a6
 jsr -552(a6)
 tst.l d0
 bne Continue
 bsr Not_OK
 bra CloseDos
Continue
 move.l d0,a4
 move.l a4,a6
Parse
 lea Temp(PC),a0
 move.l a0,d1
 lea List(PC),a0
 move.l a0,d2
 move.l #0,d3
 jsr -798(a6)
 tst.l d0
 beq No_Args
 lea Arg(PC),a0
 move.l d0,(a0)
 lea List(PC),a0
 tst.l 32(a0)
 beq GoOnAgain
 move.l #1,16(a0)
GoOnAgain
 tst.l 28(a0)
 beq GoOnNow
 move.l #1,8(a0)
GoOnNow
 tst.l (a0)
 beq No_Args
 tst.l 4(a0)
 beq No_Args
 move.l (a0),a0
SetEnd
 tst.b (a0)+
 bne SetEnd
 move.b #0,-1(a0)
 lea List(PC),a0
 move.l 4(a0),a0
SetEnd2
 tst.b (a0)+
 bne SetEnd2
 move.b #0,-1(a0)
 lea List(PC),a0
 move.l (a0),d6
 move.l 4(a0),d7 
OpenWork
 lea Work(PC),a1
 moveq #37,d0
 move.l 4,a6
 jsr -552(a6)
 tst.l d0
 bne Cont1
 bsr Not_OK
 bra CloseArgs
Cont1
 move.l d0,a5
GetMSG
 move.l 4,a6
 jsr -666(a6)
 tst.l d0
 bne Cont2
 bsr Not_OK
 bra CloseWork
Cont2
 move.l d0,d5
PutMenu
 moveq #0,d0
 move.l d7,a0
 move.l d5,a1
 move.l #0,a2
 move.l a5,a6
 jsr -72(a6)
 tst.l d0
 bne Cont3
 bsr Not_OK
 bra CloseMSG
Cont3
 move.l d0,d4
WaitMSG
 move.l d5,a0
 move.l 4,a6
 jsr -384(a6)
 move.l d5,a0
 jsr -372(a6)
 move.l d0,a1
 jsr -378(a6)
CloseWindow
 move.l a4,a6
 move.l a3,d1
 tst.l d1
 beq LookEnd
 move.l #0,a3
 jsr -36(a6)
LookEnd
 lea List(PC),a0
 tst.l 28(a0)
 bne Execute
 btst #6,$bfe001
 beq DelMenu
Execute
 tst.l 20(a0)
 bne WaitMSG 
 tst.l 24(a0)
 beq JumpIn
 move.l #0,12(a0)
 move.l #1,16(a0)
 bra Exe2
JumpIn
 lea List(PC),a0
 tst.l 32(a0)
 beq UsualOutput
 move.l 32(a0),a0
 bra DoOpen
UsualOutput 
 lea Output(PC),a0
DoOpen
 move.l a0,d1
 move.l #1006,d2
 jsr -30(a6)
 move.l d0,a3
Exe2
 lea List(PC),a0
 tst.l 36(a0)
 bne GetOutput
 lea Called(PC),a0
 move.l a0,d1
 move.l #1005,d2
 jsr -30(a6)
 tst.l d0
 beq GetOutput 
 lea CallW(PC),a0
 move.l d0,(a0)
 move.l d0,d1
 lea CallTx(PC),a0
 move.l a0,d2
 move.l #CallW-CallTx,d3
 lea List(PC),a0
 tst.l 40(a0)
 beq Schreib
 move.l 40(a0),d2
 move.l 40(a0),a0
 clr.l d3
Gloop
 addq #1,d3
 tst.b (a0)+
 bne Gloop
Schreib
 jsr -48(a6)
GetOutput
 move.l d6,d1
 move.l #0,d2
 move.l a3,d3
 move.l a4,a6
 jsr -222(a6)
 move.l CallW(PC),d1
 tst.l d1
 beq GoWeiter
 jsr -36(a6)
GoWeiter
 lea List(PC),a0
 tst.l 8(a0)
 beq WaitMSG
 tst.l 12(a0)
 beq ByeBye
 move.l a4,a6
 tst.l 12(a0)
 beq WindowAway
 move.l #175,d1
 jsr -198(a6)
 bra WindowAway
ByeBye
 lea List(PC),a0
 tst.l 16(a0)
 bne WindowAway
 move.l a3,d1
 lea ByeText(PC),a0
 move.l a0,d2
 moveq #Dos-ByeText,d3
 jsr -48(a6)
 move.l a3,d1
 lea Read(PC),a0
 move.l a0,d2
 moveq #1,d3
 jsr -42(a6)
WindowAway
 move.l a4,a6
 move.l a3,d1
 tst.l d1
 beq DelMenu
 jsr -36(a6)
 move.l #0,a3
DelMenu
 move.l d4,a0
 move.l a5,a6
 jsr -78(a6)
CloseMSG
 move.l d5,a0
 move.l 4,a6
 jsr -672(a6)
CloseWork
 move.l a5,a1
 move.l 4,a6
 jsr -414(a6)
CloseArgs
 move.l Arg(PC),d1
 tst.l d1
 beq CloseDos
 move.l a4,a6
 jsr -858(a6)
CloseDos
 move.l a4,a1
 move.l 4,a6
 jsr -414(a6)
Fine
 moveq #0,d0
 rts
Not_OK
 move.l a4,a6
 jsr -60(a6)
 tst.l d0
 beq Sorry
 move.l d0,d1
 lea Sys_Err(PC),a0
 move.l a0,d2
 moveq #Sys_ErrE-Sys_Err,d3
 jsr -48(a6)
Sorry
 rts
No_Args
 move.l a4,a6
 jsr -60(a6)
 tst.l d0
 beq Sorry2
 move.l d0,d1
 lea Args_Err(PC),a0
 move.l a0,d2
 moveq #Args_ErrE-Args_Err,d3
 jsr -48(a6)
Sorry2
 bra CloseArgs

Called		dc.b "RAW:0/11/640/21/WBMenu - Information",0
CallTx		dc.b "Executing program ..."
		even
CallW		dc.l 0
Output	 	dc.b "CON:0/100/640/156/WBMenu - Output/auto/close",0
ByeText	 	dc.b 13,10,"Press ENTER : "
Read	 	dc.b 0
Dos	 	dc.b "dos.library",0
Work	 	dc.b "workbench.library",0
		even
List 		ds.l 12
Temp 		dc.b "EXECUTABLE,TITLE,ONCE/S,WAIT/S,NOASK/S,NOCALL/S,QUIET/S,NOVANISH/S,REDIR/K,NOINFO/S,TEXT/K",0
Version		dc.b "$VER: WBMenu_V3.4 (03.09.93) by TS",0
		even
Arg 		dc.l 0
Args_Err 	dc.b "Bad args",13,10
Args_ErrE
Sys_Err 	dc.b "Internal Error - (Workbench not loaded,"
 		dc.b " bad kickstart version etc.)",13,10
Sys_ErrE
		even
Dest 		dc.l 0
 end
