home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 2
/
FFMCD02.bin
/
new
/
amigalibdisks
/
disk942
/
wbmenu
/
wbmenud.asm
< prev
next >
Wrap
Assembly Source File
|
1993-12-21
|
4KB
|
280 lines
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 "Das Programm wird aufgerufen ..."
even
CallW dc.l 0
Output dc.b "CON:0/100/640/156/WBMenu - Ausgabefenster/auto/close",0
ByeText dc.b 13,10,"Bitte RETURN drücken : "
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