home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Fish 3
/
goldfish_volume_3.bin
/
files
/
dev
/
debug
/
disectdemo
/
tutorial
/
program.s
< prev
next >
Wrap
Text File
|
1995-07-12
|
3KB
|
168 lines
* ------------------------------------------------------------------------- *
INCLUDE "ram:Support.s"
* ------------------------------------------------------------------------- *
* Disect V1.6 Disassembly:
* ------------------------
* ------------------------------------------------------------------------- *
; Disassembly of 'KeepASL' - DMA 1.10.94
main move.l (EXEC_BASE).w,sys_base
bsr.w start_up ; WB/CLI start up
lea.l int_name(pc),a1 ; open intuition
moveq.l #$0,d0
movea.l sys_base(pc),a6
jsr _LVOOpenLibrary(a6)
move.l d0,int_base
beq.w exit
lea.l asl_name(pc),a1 ; open ASL
moveq.l #$0,d0
movea.l sys_base(pc),a6
jsr _LVOOpenLibrary(a6)
move.l d0,asl_base
beq.b exit
lea.l clip_name(pc),a0 ; open clipboard
lea.l clip_iorq(pc),a1
moveq.l #$0,d0
moveq.l #$0,d1
movea.l sys_base(pc),a6
jsr _LVOOpenDevice(a6)
tst.l d0
bne.b exit
st.b clip_flag
lea.l newwind0(pc),a0 ; open window
movea.l int_base(pc),a6
jsr _LVOOpenWindow(a6)
move.l d0,window_p
beq.b exit
movea.l window_p(pc),a0 ; wait for window
movea.l wd_UserPort(a0),a2 ; close message
.wait_loop movea.l a2,a0
movea.l sys_base(pc),a6
jsr _LVOWaitPort(a6)
movea.l a2,a0
movea.l sys_base(pc),a6
jsr _LVOGetMsg(a6)
tst.l d0
beq.b .wait_loop
movea.l d0,a1
movea.l sys_base(pc),a6
jsr _LVOReplyMsg(a6)
exit move.l window_p(pc),d0 ; close window
beq.b .no_window
movea.l d0,a0
movea.l int_base(pc),a6
jsr _LVOCloseWindow(a6)
.no_window tst.b clip_flag ; close clipboard
beq.b .no_clip
clr.b clip_flag
lea.l clip_iorq(pc),a1
movea.l sys_base(pc),a6
jsr _LVOCloseDevice(a6)
.no_clip move.l asl_base(pc),d0 ; close ASL
beq.w .no_asl
movea.l d0,a1
movea.l sys_base(pc),a6
jsr _LVOCloseLibrary(a6)
.no_asl clr.l asl_base
move.l int_base(pc),d0 ; close intuition
beq.w .no_int
movea.l d0,a1
movea.l sys_base(pc),a6
jsr _LVOCloseLibrary(a6)
.no_int clr.l int_base
bsr.w close_down
moveq.l #$0,d0
rts
* ------------------------------------------------------------------------- *
start_up movem.l d0/a0,-(a7)
suba.l a1,a1
move.l a1,wb_msg_p
movea.l sys_base(pc),a6
jsr _LVOFindTask(a6)
movea.l d0,a4
move.l d0,task_p
tst.l pr_CLI(a4)
bne.b .exit
lea.l pr_MsgPort(a4),a0
movea.l sys_base(pc),a6
jsr _LVOWaitPort(a6)
lea.l pr_MsgPort(a4),a0
movea.l sys_base(pc),a6
jsr _LVOGetMsg(a6)
move.l d0,wb_msg_p
.exit movem.l (a7)+,d0/a0
rts
* ------------------------------------------------------------------------- *
close_down tst.l wb_msg_p
beq.b .exit
movea.l sys_base(pc),a6
jsr _LVOForbid(a6)
movea.l wb_msg_p(pc),a1
movea.l sys_base(pc),a6
jsr _LVOReplyMsg(a6)
.exit rts
* ------------------------------------------------------------------------- *
sys_base DC.L 0
int_base DC.L 0
asl_base DC.L 0,0
wb_msg_p DC.L 0
task_p DC.L 0
window_p DC.L 0
clip_flag DC.B 0,0
; IOClipReq structure
clip_iorq DCB.W 25
DC.W 0
newwind0 NEWWINDOW $a8,$0,$130,$b,$3,$0,IDCMP_CLOSEWINDOW,
& WFLG_ACTIVATE+WFLG_DRAGBAR+WFLG_DEPTHGADGET+WFLG_CLOSEGADGET+WFLG_RMBTRAP,
& $0,$0,ascii0,$0,$0,$0,$0,$0,$0,WBENCHSCREEN
ascii0 DC.B "Keep ASL(CD) - Dave 'A' 93(94)",$0,0
int_name DC.B "intuition.library",$0
asl_name DC.B "asl.library",$0
clip_name DC.B "clipboard.device",$0,$0
DC.W 0
* ------------------------------------------------------------------------- *