home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
372.lha
/
PopUpMenu_3.2
/
Source
/
AltStartup.a
< prev
next >
Wrap
Text File
|
1990-05-06
|
2KB
|
97 lines
INCLUDE "exec/types.i"
INCLUDE "libraries/dos.i"
INCLUDE "libraries/dosextens.i"
INCLUDE "exec/execbase.i"
INCLUDE "exec/funcdef.i"
INCLUDE "exec/exec_lib.i"
INCLUDE "libraries/dos_lib.i"
AbsExecBase EQU 4
POPUPPRI EQU 5
POPUPSTACK EQU 2000
* Must use Kickstart 1.2 or higher
LIBVERSION EQU 33
xref _LinkerDB
xref @InitPopUpMenu
xref _PopUpTaskName
section text,code
Startup MOVEM.L D2-D4/A2-A4/A6,-(A7)
LEA _LinkerDB,A4
* ------------ Open dos.
LEA DosName(PC),A1
MOVEQ.L #LIBVERSION,D0
MOVEA.L AbsExecBase.W,A6
JSR _LVOOpenLibrary(A6)
MOVE.L D0,_DOSBase(A4)
TST.L D0
BEQ.W NoDos
* ------------ Get pointer to our Process.
MOVEA.L ThisTask(A6),A3
* ------------ Find current output window.
MOVE.L #CurrWindow,D1
MOVE.L #MODE_OLDFILE,D2
* ------------ Run from Workbench ?
TST.L pr_CLI(A3)
BNE.B FromCLI
* ------------ Wait for Workbench startup-message.
LEA pr_MsgPort(A3),A0
JSR _LVOWaitPort(A6)
LEA pr_MsgPort(A3),A0
JSR _LVOGetMsg(A6)
MOVE.L D0,D3
* ------------ Open window on Workbench screen.
MOVE.L #WbWindow,D1
MOVE.L #MODE_NEWFILE,D2
FromCLI MOVEA.L _DOSBase(A4),A6
JSR _LVOOpen(A6)
MOVE.L D0,_StdOut(A4)
MOVEA.L AbsExecBase.W,A6
TST.L D0
BEQ.B NoStdOut
* ------------ Don't unload segments.
CLR.L _PopUpSeg(A4)
* ------------ Set task priority.
MOVEA.L A3,A1
MOVEQ #POPUPPRI,D0
JSR _LVOSetTaskPri(A6)
* ------------ Start PopUpMenu-program.
JSR @InitPopUpMenu
* ------------ Must reply if started from workbench.
NoStdOut TST.L pr_CLI(A3)
BNE.B Done
JSR _LVOForbid(A6)
MOVEA.L D3,A1
JSR _LVOReplyMsg(A6)
Done
NoDos MOVEQ #00,D0
MOVEM.L (A7)+,D2-D4/A2-A4/A6
RTS
* Put these data in our code-segment.
CurrWindow dc.b '*',0
DosName dc.b 'dos.library',0
WbWindow dc.b 'CON:100/75/400/45/PopUpMenu',0
section __MERGED,bss
xref _DOSBase
xref _StdOut
xref _PopUpSeg
END