Amiga-Request@cs.odu.edu (Amiga Sources/Binaries Moderator) (02/01/90)
Submitted-by: Werner Guenther <G35%DHDURZ1.BITNET@CUNYVM.CUNY.EDU>
Posting-number: Volume 90, Issue 037
Archive-name: kernel/xoper-2.2/part02
#!/bin/sh
# This is a shell archive. Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file". To overwrite existing
# files, type "sh file -c". You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g.. If this archive is complete, you
# will see the following message at the end:
# "End of archive 2 (of 4)."
# Contents: Xoper.a.ac
# Wrapped by tadguy@xanth on Wed Jan 31 22:31:32 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'Xoper.a.ac' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'Xoper.a.ac'\"
else
echo shar: Extracting \"'Xoper.a.ac'\" \(40356 characters\)
sed "s/^X//" >'Xoper.a.ac' <<'END_OF_FILE'
X beq got_enter
X
X cmp.b #27,0(a2,d3) ;esc
X bne 799$
X tst.w getanswer
X bne 100$
X clr.b insmode
X clr.w ibufferlen
X move.w #200,curpos
X bsr UpdateIArea
X clr.w curpos
X tst.w bottomin
X bne.s 700$
X move.w #1,bottomin
X bsr getcurpos
X cmp.b #5,timerstate
X bne.s 765$
X bsr starttimer
X765$ bra 100$
X
X700$ move.b timerio+8,timerstate
X bsr stoptimer
X move.w edline(PC),d0
X move.l firstline(PC),d4
X cmp.w d4,d0
X bmi.s 701$
X move.w d4,d5
X add.w rows(PC),d5
X cmp.w d5,d0
X bmi.s 702$
X701$ move.w rows(PC),d0
X lsr.w #1,d0
X add.w d4,d0
X702$ move.l numlines(PC),d3
X subq #1,d3
X cmp.w d3,d0
X ble.s 703$
X move.w d3,d0
X703$ move.w d0,edline
X sub.w d4,d0
X lsl.w #3,d0
X add.w #18,d0
X move.w d0,cposy
X clr.w bottomin
X tst.w loffset
X beq.s 704$
X clr.w loffset
X bsr blastout
X704$ bra 100$
X
X799$ cmp.b #8,0(a2,d3) ;Backspace
X bne.s 114$
X tst.w d4
X beq 102$
X bsr delchar
X subq #1,d4
X move.w d4,curpos
X bra 102$
X
X114$ cmp.b #127,0(a2,d3) ;del
X bne.s 150$
X178$ cmp.w ibufferlen(PC),d4
X bge 102$
X addq #1,d4
X bsr delchar
X bra 102$
X
X150$ cmp.b #9,0(a2,d3) ;tab
X bne 197$
X move.w cmdcompflag(PC),d0
X bpl.s 151$
X move.w curpos(PC),cmdcomplen
X151$ move.w #1,cmdcompflag
X155$ move.w cmdcompnr(PC),d0
X bsr getcmdptr
X move.l d0,a0
X move.w cmdcomplen(PC),d4
X lea inputbuffer,a1
X subq #1,d4
X152$ tst.b 0(a0)
X beq.s 153$
X cmp.b (a0)+,(a1)+
X bne.s 153$
X dbf d4,152$
X move.l d0,a1
X lea inputbuffer,a0
X154$ move.b (a1)+,(a0)+
X dbeq.s d4,154$
X neg.w d4
X subq #1,d4
X move.w d4,curpos
X move.w d4,ibufferlen
X add.w #1,cmdcompnr
X cmp.w #cmdnum,cmdcompnr
X beq.s 156$
X bra 100$
X153$ move.w cmdcompnr(PC),d0
X addq #1,d0
X move.w d0,cmdcompnr
X cmp.w #cmdnum,d0
X bmi.s 155$
X156$ clr.w cmdcompnr
X bra 100$
X
X197$ cmp.b #3,0(a2,d3) ;ctrl c
X bne.s 104$
X move.b #1,cbreak
X
X104$ tst.b addlines
X bne processnxtmsg
X cmp.b #$18,0(a2,d3) ;ctrl x
X bne.s 300$
X clr.w ibufferlen
X clr.w curpos
X bra 100$
X
X300$ cmp.b #$19,0(a2,d3) ;ctrl y
X bne.s 106$
X move.w curpos,ibufferlen
X bra 100$
X
X106$ move.w #$100,d5 ;NumPad
X and.w qualifier(PC),d5
X beq 105$
X move.l firstline(PC),d5
X
X cmp.b #'7',0(a2,d3) ;'Home'
X bne.s 200$
X moveq #0,d5
X199$ move.l d5,firstline
X bsr blastout
X tst.w bottomin
X bne.s 196$
X move.w edline(PC),d0
X move.l firstline(PC),d1
X cmp.w d1,d0
X bmi.s 190$
X add.w rows(PC),d1
X cmp.w d1,d0
X bmi.s 192$
X190$ clr.w curpos
X clr.w ibufferlen
X move.w rows(PC),d0
X lsr.w #1,d0
X ext.l d0
X add.l firstline(PC),d0
X cmp.l numlines(PC),d0
X bmi.s 191$
X move.l numlines(PC),d0
X subq #1,d0
X191$ move.w d0,edline
X192$ bsr getcurpos
X bsr UpdateIArea
X196$ bra 100$
X
X200$ cmp.b #'8',0(a2,d3) ;'up arrow'
X bne.s 201$
X tst d5
X beq 100$
X subq #1,d5
X bra.s 199$
X
X201$ cmp.b #'9',0(a2,d3) ;'PgUp'
X bne.s 203$
X sub.w rows(PC),d5
X bpl.s 199$
X moveq #0,d5
X bra.s 199$
X
X203$ cmp.b #'1',0(a2,d3) ;'End'
X bne.s 205$
X222$ move.l numlines(PC),d5
X sub.w rows(PC),d5
X bpl 199$
X moveq #0,d5
X204$ bra 199$
X
X205$ cmp.b #'2',0(a2,d3) ;'down arrow'
X bne.s 206$
X move.l d5,d2
X add.w rows(PC),d2
X cmp.l numlines(PC),d2
X bge 100$
X addq #1,d5
X bra 199$
X
X206$ cmp.b #'3',0(a2,d3) ;'PgDn'
X bne.s 500$
X add.w rows(PC),d5
X move.l d5,d2
X add.w rows(PC),d2
X cmp.l numlines(PC),d2
X bge.s 222$
X bra 199$
X
X500$ cmp.b #'4',0(a2,d3) ;left arrow
X bne.s 501$
X tst.w bottomin
X beq 102$
X move.w loffset(PC),d2
X sub.w colms(PC),d2
X bpl.s 502$
X moveq #0,d2
X502$ move.w d2,loffset
X bsr blastout
X bra 100$
X
X501$ cmp.b #'6',0(a2,d3) ;right arrow
X bne.s 170$
X tst.w bottomin
X beq 102$
X move.w loffset(PC),d2
X add.w colms(PC),d2
X bra.s 502$
X
X170$ cmp.b #'0',0(a2,d3) ;Ins
X bne.s 177$
X eor.b #1,insmode
X bra.s 102$
X
X177$ cmp.b #'.',0(a2,d3) ;Del
X beq 178$
X
X105$ tst.w bottomin
X bne.s 777$
X tst.w curpos
X bne.s 777$
X movem.l d0-d1,-(a7)
X move.w edline(PC),d0
X bsr findline
X movem.l (a7)+,d0-d1
X tst.l 8(a5)
X beq intuiend
X777$ move.w curpos(PC),d5
X ext.l d5
X moveq #79,d2
X cmp.w d2,d5
X bge 102$
X tst.b insmode
X beq.s 172$
X cmp.w ibufferlen(PC),d5
X bmi.s 171$
X bra.s 173$
X172$ sub d5,d2
X lea 80(a1),a4
X lea 79(a1),a3
X103$ move.b -(a3),-(a4)
X dbf d2,103$
X173$ addq.w #1,ibufferlen
X171$ move.b 0(a2,d3),0(a1,d5)
X addq.w #1,curpos
X102$ subq #1,d0
X addq #1,d3
X bra 101$
X
X100$ bsr UpdateIArea
X bra intuiend
X
Xgot_enter bsr puthist
Xgot_fkey bsr stoptimer
X clr.b insmode
X lea dummy,a1
X lea inputbuffer,a2
X move.w ibufferlen(PC),d2
X beq.s 2$
X tst.w bottomin
X bne.s 5$
X movem.l a1-a2,-(a7)
X move.w edline(PC),d0
X bsr findline
X move.l 8(a5),d0
X bsr gthex
X lea hexarea(PC),a0
X lea 0(a2,d2),a1
X move.b #' ',(a1)+
X move.b #'$',(a1)+
X moveq #8,d0
X CALL CopyMem,_SysBase(PC)
X move.w ibufferlen(PC),d2
X add.w #10,d2
X move.w d2,ibufferlen
X movem.l (a7)+,a1-a2
X5$ subq #1,d2
X1$ move.b (a2)+,(a1)+
X dbf d2,1$
X2$ move.b #10,(a1)+
X move.w ibufferlen(PC),d0
X ext.l d0
X addq #1,d0
X move.l d0,-(a7)
X clr.w ibufferlen
X tst.w bottomin
X bne.s 4$
X move.w #100,curpos
X bsr UpdateIArea
X4$ clr.w curpos
X move.w #1,bottomin
X bsr getcurpos
X bsr UpdateIArea
X move.l (a7)+,d0
X move.w d0,repeatlen
X clr.w repeat
X clr.b printed
X tst.w getanswer
X beq.s 6$
X rts
X6$ bsr cli
X tst.b printed
X bne.s 3$
X bsr starttimer
X3$ bra intuiend
X
Xnotarawkey
X
Xintuiend bsr.s replyintui
X bra nextimsg
Xprocessnxtmsg
X tst.b addlines
X beq.s 1$
X rts
X1$ bra processmsgs
X
Xreplyintui move.l intuimsg(PC),d0
X beq.s 1$
X move.l d0,a1
X CALL ReplyMsg,_SysBase
X1$ clr.l intuimsg
X rts
X
X;put an input line into the history buffer
Xputhist move.w ibufferlen(PC),d5
X move.l d5,d0
X cmp.w minnumchars(PC),d0
X bcs 1$
X
X move.l gothline(PC),d1
X beq.s 5$
X move.l d1,a2
X cmp.w 8(a2),d5
X bne.s 5$
X lea 10(a2),a2
X lea inputbuffer,a1
X subq #1,d0
X6$ cmp.b (a2)+,(a1)+
X bne.s 5$
X dbf d0,6$
X move.l gothline,curhist
X bra.s 1$
X
X5$ move.w d5,d0
X ext.l d0
X add #10,d0
X move.l #$10000,d1 ;MEMF_CLEAR
X CALL AllocMem,_SysBase(PC)
X tst.l d0
X beq.s 1$
X move.l d0,a0
X move.w d5,8(a0)
X lea 10(a0),a2
X subq #1,d5
X lea inputbuffer,a1
X2$ move.b (a1)+,(a2)+
X dbf d5,2$
X move.w hnum(PC),d5
X cmp.w maxhlines(PC),d5
X bmi.s 3$
X bsr remhistline
X bra.s 4$
X3$ addq #1,d5
X move.w d5,hnum
X4$ move.l d0,a1
X move.l d0,curhist
X lea history(PC),a0
X CALL AddTail,_SysBase(PC)
X1$ clr.l gothline
X rts
X
X;copy a history line into the input buffer
Xcopyhistory lea inputbuffer,a0
X move.w 8(a1),d3
X ext.l d3
X move.w d3,curpos
X move.w d3,ibufferlen
X subq #1,d3
X lea 10(a1),a1
X1$ move.b (a1)+,(a0)+
X dbf d3,1$
X rts
X;remove one line from the history buffer
X;pointer to the line in A1, returns pointer to the next line in d1
Xremhistline move.l d0,-(a7)
X lea history(PC),a0
X move.l 0(a0),a5
X tst.l 0(a5)
X beq.s 1$
X CALL RemHead,_SysBase(PC)
X move.l a5,a1
X move.w 8(a1),d0
X add #10,d0
X ext.l d0
X CALL FreeMem,_SysBase(PC)
X1$ move.l (a7)+,d0
X rts
X
X;kill all history lines
Xkillhistory bsr remhistline
X move.l history(PC),a0
X tst.l 0(a0)
X bne.s killhistory
X2$ clr.w hnum
X clr.l curhist
X rts
X;delete one char from the input line
Xdelchar lea inputbuffer,a3
X lea 0(a3,d4.w),a3
X lea -1(a3),a4
X move d4,d5
X1$ cmp.w #78,d5
X bge.s 2$
X move.b (a3)+,(a4)+
X addq #1,d5
X bra.s 1$
X2$ subq.w #1,ibufferlen
X rts
X
Xtestsig move.l tasksigs(PC),d0
X btst d1,d0
X rts
X
X;get the position of the input area
Xiareapos move.l wnptr(PC),a0
X move.w 10(a0),d0
X subq #4,d0
X move.w d0,ipos
X rts
X
X;Update the current position of the input line
Xgetcurpos tst.w bottomin
X beq.s 1$
X move.w ipos,cposy
X rts
X1$ move.w edline(PC),d3
X sub.l firstline(PC),d3
X lsl #3,d3
X add.w #18,d3
X move.w d3,cposy
X rts
X;refresh the input area
XUpdateIArea move.l rastport(PC),a1
X move.l #1,d0
X CALL SetDrMd,gfxbase(PC)
X moveq #6,d0
X move.w cposy(PC),d1
X move.l rastport(PC),a1
X CALL Move,gfxbase(PC)
X lea inputbuffer,a0
X move.w ibufferlen(PC),d0
X ext.l d0
X move.w colms(PC),d1
X sub.w bottomin(PC),d1
X cmp.w d1,d0
X bmi.s 1$
X move.w d1,d0
X1$ move.w d0,d2
X move.l rastport(PC),a1
X CALL Text,gfxbase(PC)
X
X tst.w bottomin
X bne.s 3$
X move.w edline(PC),d0
X bsr findline
X move.w 12(a5),d3
X sub.w d2,d3
X bmi.s 3$
X move.w colms(PC),d1
X sub.w d2,d1
X bmi.s 2$
X cmp.w d1,d3
X ble.s 4$
X move.w d1,d3
X4$ move.w d3,d0
X lea 14(a5,d2.w),a0
X move.l rastport(PC),a1
X CALL Text,gfxbase(PC)
X add.w ibufferlen(PC),d3
X move.w d3,d2
X
X3$ move.w colms(PC),d0
X sub.w bottomin(PC),d0
X move.l blanks(PC),a0
X ext.l d0
X sub.w d2,d0
X bmi.s 2$
X lea 0(a0,d2.w),a0
X move.l rastport(PC),a1
X CALL Text,gfxbase(PC)
X2$ bsr putcursor
X rts
X
Xclrcursor moveq #1,d7
X bra.s ptc1
Xputcursor moveq #6,d7
Xptc1 move.w curpos(PC),d0
X move.w colms(PC),d1
X subq #1,d1
X sub.w bottomin(PC),d1
X cmp.w d0,d1
X bmi.s 1$
X move.l rastport(PC),a1
X move.l d7,d0
X CALL SetDrMd,gfxbase(PC)
X move.w cposy(PC),d1
X move.w curpos(PC),d0
X lsl.w #3,d0
X addq #6,d0
X move.l rastport(PC),a1
X CALL Move,gfxbase(PC)
X lea oneblank(PC),a0
X moveq #1,d0
X move.l rastport(PC),a1
X CALL Text,gfxbase(PC)
X1$ rts
X;rebuild the window from scratch
Xsetupscreen move.l rastport(PC),a1
X moveq #0,d0
X CALL SetRast,gfxbase(PC)
X move.l wnptr,a0
X CALL RefreshWindowFrame,intuibase(PC)
X bsr getwindowsize
X tst.w bottomin
X bne.s 1$
X move.w edline(PC),d0
X move.l firstline(PC),d1
X move.w rows(PC),d2
X move.w d2,d4
X move.w numlines(PC),d3
X add.w d1,d2
X cmp.w d2,d0
X bmi.s 2$
X lsr.w #1,d4
X sub.w d4,d0
X ext.l d0
X move.l d0,firstline
X2$ bsr tstfirstlin
X1$ bsr getcurpos
X bsr putiline
X bsr blastout
X bsr UpdateIArea
X move.w rows,currenty
X rts
X
Xputiline move.l rastport(PC),a1
X moveq #1,d0
X CALL SetAPen,gfxbase(PC)
X move.l rastport(PC),a1
X moveq #1,d0
X CALL SetDrMd,gfxbase(PC)
X move.l wnptr(PC),a5
X move.w 10(a5),d1
X sub.w #12,d1
X moveq #0,d0
X move.l rastport(PC),a1
X CALL Move,gfxbase(PC)
X move.w 8(a5),d0
X move.w d1,-(a7)
X move.l rastport(PC),a1
X CALL Draw,gfxbase(PC)
X move.w (a7)+,d1
X tst.b ownscreen
X bne.s 1$
X move.w 8(a5),d0
X addq #1,d1
X move.l rastport(PC),a1
X CALL Move,gfxbase(PC)
X sub.w #16,d0
X move.w d1,-(a7)
X move.l rastport(PC),a1
X CALL Draw,gfxbase(PC)
X move.w (a7)+,d1
X move.w 8(a5),d0
X addq #1,d1
X move.l rastport(PC),a1
X CALL Move,gfxbase(PC)
X sub.w #16,d0
X move.l rastport(PC),a1
X CALL Draw,gfxbase(PC)
X1$ rts
X
Xgetwindowsize
X bsr freeblank
X move.l wnptr(PC),a0
X move.w 10(a0),d0
X sub.w #26,d0
X lsr.w #3,d0
X move.w d0,rows
X move.w 8(a0),d0
X sub.w #12,d0
X lsr.w #3,d0
X move.w d0,colms
X ext.l d0
X moveq #0,d1
X move.l d0,d6
X CALL AllocMem,_SysBase(PC)
X move.l d0,blanks
X move.l d0,a0
X subq #1,d6
X1$ move.b #' ',(a0)+
X dbf d6,1$
X bsr iareapos
X rts
X
Xreadline move.b #'n',inputbuffer
X tst.b fromfile
X bne.s 1$
X move.l #31000,firstline
X bsr blastout
X move.w #1,getanswer
X bsr replyintui
X5$ bsr processmsgs
X move.w d0,d5
X bsr replyintui
X subq #1,d5
X beq.s 5$
X ori.b #$20,inputbuffer
X clr.w getanswer
X bsr RestoreOutput
X1$ rts
X
XResumeOutput
X move.l outchain(PC),d0
X move.l d0,a1
X beq.s 2$
X move.l numlines,oldnumlines
X move.l firstline,oldfirstline
X4$ tst.l 0(a1)
X beq.s 3$
X move.l 0(a1),a1
X bra.s 4$
X3$ move.l a1,lastprinted
X2$ move.l a1,oldpageend
X rts
X
XRestoreOutput
X move.l oldpageend(PC),d3
X beq.s 1$
X move.l oldnumlines(PC),numlines
X move.l oldfirstline(PC),firstline
X move.l oldlastprinted(PC),lastprinted
X move.l d3,a1
X move.l 0(a1),a1
X bsr killlines
X move.l d3,a1
X clr.l 0(a1)
X bsr blastout
X1$ rts
X
Xaddline movem.l d0-d6/a0-a3,-(a7)
X move.l rastport(PC),a1
X moveq #1,d0
X CALL SetAPen,gfxbase(PC)
X move.l rastport(PC),a1
X moveq #1,d0
X CALL SetDrMd,gfxbase(PC)
X move.w currenty(PC),d6
X cmp.w rows(PC),d6
X bmi.s 1$
X bsr cls
X1$ move.l lastprinted(PC),a0
X move.w colms(PC),d5
X move.w 12(a0),d3
X lea 14(a0),a0
X move.w currenty(PC),d6
X move d6,d7
X lsl #3,d6
X add.w #18,d6
X moveq #0,d4
X bsr blastline
X addq.w #1,currenty
X move.l #31000,firstline
X movem.l (a7)+,d0-d6/a0-a3
X rts
X
Xcls movem.l d0-d6/a0-a3,-(a7)
X move.l rastport(PC),a1
X moveq #1,d0
X CALL SetAPen,gfxbase(PC)
X move.l rastport(PC),a1
X moveq #1,d0
X move.l rastport(PC),a1
X CALL SetDrMd,gfxbase(PC)
X move.w colms(PC),d5
X clr.w d2
X1$ move.w d2,d6
X move d5,d7
X lsl #3,d6
X add.w #18,d6
X moveq #0,d3
X move.l blanks(PC),a0
X bsr blastline
X addq #1,d2
X cmp.w rows(PC),d2
X bmi.s 1$
X clr.w currenty
X movem.l (a7)+,d0-d6/a0-a3
X rts
X
Xcreatescreen moveq #1,d1
X moveq #80,d0
X lea buffer,a0
X sub.l a1,a1
X CALL GetScreenData,intuibase(PC)
X move.w buffer+76,nsviewmode
X move.l buffer+12,nssize
X lea newscreen(PC),a0
X CALL OpenScreen,intuibase(PC)
X move.l d0,screenptr
X move.l d0,nwscreen
X move.w #$f,nwtype
X beq.s setupwindow
X tst.l wnptr
X beq.s 1$
X move.l wnptr(PC),a0
X move.l 4(a0),window_l
X move.l 8(a0),window_w
X CALL CloseWindow,intuibase(PC)
X clr.l intuimsg
X clr.l wnptr
X1$ clr.l newwindow
X move.l buffer+12,newwindow+4
X move.l wnscrflags(PC),nwflgs
X move.l wnscrflags+4(PC),nwflgs+4
X move.b #1,ownscreen
X
Xsetupwindow tst.b ownscreen
X bne.s 3$
X move.l window_l(PC),newwindow
X move.l window_w(PC),newwindow+4
X move.w #1,nwtype
X move.l wnnormflgs(PC),nwflgs
X move.l wnnormflgs+4(PC),nwflgs+4
X3$ lea newwindow(PC),a0
X CALL OpenWindow,intuibase(PC)
X move.l d0,wnptr
X beq exit
X move.l d0,a0
X move.l 50(a0),rastport ;wn->RPort
X move.l 86(a0),a1 ;wn->UserPort
X move.b 15(a1),d1 ;MsgPort->SigBit
X ext.w d1
X move.w d1,intuisig
X
X tst.b iconifyon
X beq.s 1$
X tst.b ownscreen
X bne.s 1$
X lea iconifgad,a1
X moveq #0,d0
X CALL AddGadget,intuibase(PC)
X move.l wnptr(PC),a0
X CALL RefreshWindowFrame,intuibase(PC)
X
X1$ lea tattr(PC),a0
X CALL OpenFont,gfxbase(PC)
X tst.l d0
X beq.s 2$
X move.l d0,a0
X move.l rastport(PC),a1
X CALL SetFont,gfxbase(PC)
X2$ bsr getwindowsize
X bsr getcurpos
X
X bsr putiline
X bsr UpdateIArea
X bsr starttimer
X bsr showwhat
X rts
X
Xusescreen tst.b fromfile
X bne.s 1$
X tst.b ownscreen
X bne.s 1$
X bsr createscreen
X1$ move.b #1,ownscreen
X rts
X
Xusewindow tst.b fromfile
X beq.s 1$
X clr.b ownscreen
X rts
X1$ tst.b ownscreen
X beq.s 2$
X move.l wnptr(PC),d0
X beq.s 3$
X move.l d0,a0
X CALL CloseWindow,intuibase(PC)
X clr.l wnptr
X clr.l intuimsg
X3$ move.l screenptr(PC),d0
X beq.s 4$
X move.l d0,a0
X CALL CloseScreen,intuibase(PC)
X clr.l screenptr
X clr.b ownscreen
X4$ bra setupwindow
X2$ rts
X
Xdchange lea dchead(PC),a0
X bsr puthead
X lea tdd(PC),a1
X move.l _SysBase(PC),a0
X lea 350(a0),a0
X CALL FindName,_SysBase(PC)
X tst.l d0
X beq R_T_S
X move.l d0,a2
X lea 32(a2),a2
X moveq #0,d5
X2$ lea 4(a2),a2
X move.l 0(a2),d0
X beq 3$
X move.l d0,a0
X lea $18e(a0),a0
X CALL Disable,_SysBase(PC)
X5$ tst.l 0(a0)
X beq.s 6$
X move.l 0(a0),a0
X bra.s 5$
X6$ lea -4(a0),a5
X lea buffer+100,a3
X9$ move.l 0(a5),a5
X tst.l 0(a5)
X beq.s 11$
X move.l a5,(a3)+
X bne.s 9$
X11$ clr.l (a3)+
X CALL Enable,_SysBase(PC)
X lea buffer+100,a3
X7$ move.l (a3)+,d0
X beq.s 3$
X move.l d0,a5
X cmp.w #20,28(a5)
X bne.s 7$
X move.l 40(a5),a4
X move.l a4,d0
X move.l d0,node
X bsr hexan
X move.l a4,d0
X beq.s 10$
X move.l 14(a4),d0
X bsr hexan
X move.l 18(a4),d0
X bsr hexan
X10$ move.l d5,d3
X or.b #48,d3
X move.b d3,tddrives+2
X move.l #tddrives,d0
X bsr putstr
X move.l 14(a5),d0
X beq.s 8$
X move.l d0,a0
X move.l 16(a0),d0
X8$ bsr getaskname2
X bsr newline
X bra.s 7$
X3$ addq #1,d5
X cmp.w #4,d5
X bmi 2$
XR_T_S rts
X
X
XDATASTART EQU *
X
Xdosbase dc.l 0
Xintuibase dc.l 0
Xgfxbase dc.l 0
Xcondev dc.l 0
Xparmtxt dc.l 0
Xinfile dc.l 0
Xptr dc.l 0
Xoldidl dc.l 0
Xolddisp dc.l 0
Xmysignal dc.l 0
Xauxsig dc.l 0
Xtrapsignal dc.l 0
Xiostatus dc.l -1
Xdevstatus dc.l -1
Xtasksigs dc.l 0
Xcancelbit dc.l 0
Xcancelbnum dc.l 0
X_SysBase dc.l 0
XInputMsg dc.l 0
XInRequest dc.l 0
Xstartmess dc.l 0
Xsavedat dc.l 0
Xwnptr dc.l 0
Xaliaslist dc.l 0
Xscreenptr dc.l 0
Xintuimsg dc.l 0
Xmytask dc.l 0
Xwbmsg dc.l 0
Xpointer dc.l 0
Xreplyport dc.l 0
Xtimerport dc.l 0
Xfinfoptr dc.l 0
Xmyseg dc.l 0
Xdispatches dc.l 0
Xmaxdisp dc.l 0
Xdeltadisp dc.l 0
Xwbaddr dc.l 0
Xnode dc.l 0
Xremembr dc.l 0
Xremembr2 dc.l 0
Xcaptask dc.l 0
Xsnoopport dc.l 0
Xtasksnum dc.l 0
Xblanks dc.l 0
Xhidestart dc.l 0
Xdispnum dc.l 0
Xiocount dc.l 0
Xdummyinput dc.l 0
Xrastport dc.l 0
Xoutchain dc.l 0
Xfirstline dc.l 0
Xoldfirstline dc.l 0
Xtimeoutm dc.l 0
Xnumlines dc.l 0
Xoldnumlines dc.l 0
Xgothline dc.l 0
Xlastprinted dc.l 0
Xoldlastprinted dc.l 0
Xoldpageend dc.l 0
Xmaxlines dc.l 500
Xrealstack dc.l 0
X
X
Xwnnormflgs dc.l $646
X dc.l $1104f
X
Xwnscrflags dc.l $600
X dc.l $31948
X
Xfkeys dc.l *+4
X dc.l 0
X dc.l fkeys
X
Xhistory dc.l *+4
X dc.l 0
X dc.l history
Xcurhist dc.l 0
X
Xsecs dc.l 0
Xmics dc.l 0
Xtime10 dc.l 0
X
Xtattr dc.l fontname
X dc.w 8
X dc.w 0
X
Xstplist dc.l lh_tail
Xlh_tail dc.l 0
X dc.l stplist
X dc.b 1
X dc.b 0
X
XInInterrupt dc.l 0 ;ln_Succ
X dc.l 0 ;ln_Pred
X dc.b 2 ;ln_Type
X dc.b 60 ;ln_Pri
X dc.l xopsleep ;ln_Name
X dc.l 0 ;is_Data
X dc.l Keyhandler ;is_Code()
X
XIOCounter dc.l 0 ;ln_Succ
X dc.l 0 ;ln_Pred
X dc.b 2 ;ln_Type
X dc.b -1 ;ln_Pri
X dc.l IOcntname ;ln_Name
X dc.l 0 ;is_Data
X dc.l countio ;is_Code()
X
Xnewwindow dc.w 0,0
X dc.w 500,100
X dc.b 0,1
Xnwflgs dc.l $646
X dc.l $1104f
Xwn_firstgad dc.l 0
X dc.l 0
X dc.l windowname
Xnwscreen dc.l 0
X dc.l 0
X dc.w 110,50
X dc.w 808,-1
Xnwtype dc.w 1
X
Xnewscreen dc.w 0,0
Xnssize dc.w 0,0
X dc.w 1
X dc.b 0
X dc.b 1
Xnsviewmode dc.w 0
X dc.w $1f
X dc.l 0
X dc.l windowname
X dc.l 0,0
X
Xexcpterror dc.l 0
Xexcpttask dc.l 0
Xexcptaddr dc.l 0
Xexcptpc dc.l 0
X
Xwindow_l dc.w 0
Xwindow_t dc.w 0
Xwindow_w dc.w 550
Xwindow_h dc.w 200
X
Xcolms dc.w 0
Xtimersig dc.w 0
Xintuisig dc.w 0
Xibufferlen dc.w 0
Xcposy dc.w 0
Xcurpos dc.w 0
Xbottomin dc.w 1
Xipos dc.w 0
Xhnum dc.w 0
Xminnumchars dc.w 2
Xmaxhlines dc.w 10
Xqualifier dc.w 0
Xrows dc.w 0
Xmaxllength dc.w 0
Xloffset dc.w 0
Xrepeat dc.w 0
Xrepeatlen dc.w 0
Xedline dc.w 999
Xcmdptr dc.w 0
Xgetanswer dc.w 0
Xcurrenty dc.w 0
Xcmdcompnr dc.w 0
Xcmdcomplen dc.w -1
Xcmdcompflag dc.w 0
X
Xbinarea dc.b ' ',0
X EVEN
Xminus dc.b ' '
Xdecimal dc.b ' ',0
Xentries dc.b 0
Xtimeout dc.b 5
Xprocnum dc.b 0
Xtimerstate dc.b 0
Xrunning dc.b 0
Xnewpri dc.b 0
Xtasktyp dc.b 0
Xbackground dc.b 0
Xbool dc.b 0
Xprinted dc.b 0
Xcbreak dc.b 0
Xusageflag dc.b 0
Xmnflag dc.b 1
Xtports dc.b 1
Xheadon dc.b 1
Xhideon dc.b 1
Xsorton dc.b 1
Xwanttraps dc.b 0
Xaddlines dc.b 0
Xeof dc.b 0
Xfromfile dc.b 0
Xiconifyon dc.b 1
Xgotguru dc.b 0
Xownscreen dc.b 0
Xinsmode dc.b 0
Xcmdcli dc.b 1
Xparams dc.b 'tfdlrempisc'
Xparmnum equ *-params
X dc.b 0
Xt2header dc.b ' ID STATE SIGALLOC SIGWAIT SIGRECVD PC TASKNAME',0
Xtheader dc.b ' ID TYPE STATE PRI CPUSE NUM TASKNAME',0
Xlheader dc.b ' NODE CNT VER REV FLAGS ',0
Xlibnam dc.b 'LIBRARY NAME',0
Xdevnam dc.b 'DEVICE NAME',0
Xresnam dc.b 'RESOURCE NAME',0
Xmheader dc.b ' LOWER UPPER FREE ATTR PRI HUNK NAME',0
Xcr dc.b 10,0
Xiheader dc.b ' NODE DATA CODE PRI T S TYPE INTERRUPT NAME',0
Xinheader dc.b ' NODE DATA CODE PRI NAME',0
Xrheader dc.b ' ADDR PRI FLAGS VER TYPE RESIDENT NAME',0
Xpheader dc.b ' NODE PORTNAME FLAGS SIGBT NUM SIGTASK',0
Xhunkheader dc.b ' NUM BCPL DATA LENGTH',0
Xddheader dc.b 'DEVICE HDS SECTORS TRACKS BUFFERS STATE HANDLER',0
Xcdheader dc.b 'PROCESSNAME CURRENT DIRECTORY',0
Xofheader dc.b ' LOCK ACCESS SIZE PATH/FILENAME',0
Xscrheader dc.b 'NUM ADDR TITLE',0
Xwnheader dc.b ' ADDR OWNERTASK TITLE',0
Xfohead dc.b ' NODE CNT Y X TYPE LO HI NAME',0
Xkickhead dc.b 'START END LENGTH',0
Xsnoophead dc.b 'ACTION REQUIREMENTS LENGTH FROM TO CALLER',0
Xstackhead dc.b 'SPLower SIZE USED TASKNAME',0
Xclicomhead dc.b ' ID STATE TYPE MODE NUM PROCESSNAME COMMAND',0
Xtiohead dc.b 'IORQUEST UNIT SECS REQUESTING TASK',0
Xdchead dc.b ' NODE DATA CODE UNIT TASK',0
Xalhead dc.b 'ALIAS NAME COMMAND',0
Xtdd dc.b 'trackdisk.device',0
Xtddrives dc.b 'DF : ',0
Xtimerunits dc.b 'MicroHz ',0
X dc.b 'VBlank ',0
Xaccess dc.b ' Read ',0
X dc.b ' Write ',0
Xromfnt dc.b 'Rom ',0
Xdiskfnt dc.b 'Disk ',0
Xwbname dc.b 'Workbench',0
Xstatus dc.b 'Added ',0
X dc.b 'Running ',0
X dc.b 'Ready ',0
X dc.b 'Waiting ',0
X dc.b 'Exeption ',0
X dc.b 'Removed ',0
X dc.b 'Frozen ',0
X dc.b 'Frozen ',0
Xtype dc.b 'Unknown ',0
Xtasktype dc.b 'Task ',0
X dc.b 'Interrupt ',0
X dc.b 'Device ',0
X dc.b 'Msgport ',0
X dc.b 'Message ',0
X dc.b 'Freemsg ',0
X dc.b 'Replymsg ',0
X dc.b 'Resource ',0
X dc.b 'Library ',0
X dc.b 'Memory ',0
Xsoftinttype dc.b 'Softint ',0
X dc.b 'Font ',0
Xproctype dc.b 'Process ',0
X dc.b 'Semaphore ',0
Xmp_flags dc.b 'Signal ',0
X dc.b 'Softint ',0
X dc.b 'Ignore ',0
Xwindowname dc.b 'Xoper V2.2 (c) 1989 Werner G',$fc,'nther',0
Xnewname dc.b 'Xoper',0
Xmemportname dc.b 'MemSnoop',0
Xxopcon dc.b 'XopPackets',0
Xxopsleep dc.b 'Xop-A-A-x',0
XIOcntname dc.b 'Xop-I/O-counter',0
X
Xcmdnum set 0
Xcommds ADDCMD 'time'
X ADDCMD 'taskpri'
X ADDCMD 'info'
X ADDCMD 'pri'
X ADDCMD 'flush'
X ADDCMD 'freeze'
X ADDCMD 'warm'
X ADDCMD 'signal'
X ADDCMD 'break'
X ADDCMD 'alert'
X ADDCMD 'lastalert'
X ADDCMD 'hold'
X ADDCMD 'exit'
X ADDCMD 'clear'
X ADDCMD 'cancel'
X ADDCMD 'taskports'
X ADDCMD 'hunks'
X ADDCMD 'devices'
X ADDCMD 'openlib'
X ADDCMD 'closelib'
X ADDCMD 'currentdir'
X ADDCMD 'cd'
X ADDCMD 'mypri'
X ADDCMD 'files'
X ADDCMD 'locks'
X ADDCMD 'unlock'
X ADDCMD 'screens'
X ADDCMD 'windows'
X ADDCMD 'closescreen'
X ADDCMD 'closewindow'
X ADDCMD 'fonts'
X ADDCMD 'windowfonts'
X ADDCMD 'lockdrive'
X ADDCMD 'freedrive'
X ADDCMD 'capture'
X ADDCMD 'clrcold'
X ADDCMD 'clrcool'
X ADDCMD 'clrwarm'
X ADDCMD 'snoop'
X ADDCMD 'usage'
X ADDCMD 'inputhandler'
X ADDCMD 'header'
X ADDCMD 'sort'
X ADDCMD 'hide'
X ADDCMD 'hidden'
X ADDCMD 'window'
X ADDCMD 'kill'
X ADDCMD 'iconifyoff'
X ADDCMD 'historylines'
X ADDCMD 'minimumchars'
X ADDCMD 'showhistory'
X ADDCMD 'repeat'
X ADDCMD 'remresident'
X ADDCMD 'saveoutput'
X ADDCMD 'killhistory'
X ADDCMD 'backdropicon'
X ADDCMD 'setfont'
X ADDCMD 'trapguru'
X ADDCMD 'outputlines'
X ADDCMD 'usescreen'
X ADDCMD 'usewindow'
X ADDCMD 'timerio'
X ADDCMD 'diskchange'
X ADDCMD 'alias'
X ADDCMD 'remnode'
X ADDCMD 'setfkey'
X ADDCMD 'clicmd'
Xhexarea dc.b ' ',0
Xhextab dc.b '0123456789abcdef'
Xinfoh2 dc.b 'Dispat/Sec:',0
Xinfoh1 dc.b 'CPU:',0
Xinfoh3 dc.b 'CPU activity: ',0
Xinfoh6 dc.b 'Total:',0
Xinfoh4 dc.b '% ',0
Xinfoh7 dc.b 'I/O Ints/Sec: ',0
Xcpu0 dc.b '68000',0
Xcpu1 dc.b '68010',0
Xcpu2 dc.b '68020',0
Xcpu3 dc.b '/68881',0
Xdevload dc.b 'loaded ',0
Xdevnload dc.b 'unloaded ',0
Xinten dc.b 'E ',0
Xintdis dc.b 'D ',0
Xintserv dc.b 'S ',0
Xinthand dc.b 'H ',0
Xnotfile dc.b '--- ------- ------- ------- ',0
Xlongnix dc.b '-'
Xsmallnix dc.b '----'
Xnix dc.b '--- ',0
Xnoinfo dc.b 'No Info on'
Xoneblank dc.b ' ',0
Xequal dc.b '= ',0
Xopenbrak dc.b '[ ',0
Xclosebrak dc.b ' ]',0
Xnamerr dc.b 'Unable to find ',0
Xfonterr dc.b "Can't open ",0
Xadrerr dc.b 'Address Error!',0
Xaliaserr dc.b 'Single character alias names using "',0
Xaliaserr2 dc.b '"',10,'are not allowed.',0
Xnoworkbench dc.b "Workbench isn't active !",0
Xopenerr dc.b 'Could not open file ',0
Xnoderr dc.b "Can't find this Node. Continue anyway ? (Y/N)",0
Xlisterr dc.b 'Unable to find ListHeader. Sort aborted.',0
Xwiwerr dc.b 'Script file only',0
Xgurutxt dc.b 'Guru Meditation #',0
Xclrtxt dc.b 'Memory Hunks cleared.',0
Xcanerr0 dc.b 'Process is not a CLI-task',10
X dc.b 'Has it been started from Workbench ? (Y/N)',10,0
Xcanerr1 dc.b 'Process was created by CreateProc()',10
X dc.b 'Shall I UnLoad() ? (Y/N)',10,0
Xunloaderr dc.b "Arrrgh.. can't find segments, aborting",0
Xnoprocs dc.b 'Not a Process.',0
Xnotload dc.b 'No program loaded.',0
Xcliprocs dc.b 'Cli-Process',0
Xprocloaded dc.b 'Loaded as a command: ',0
Xsegloaded dc.b 'Created by CreateProc()',0
Xcoldtxt dc.b 'Cold Capture: ',0
Xcooltxt dc.b 'Cool Capture: ',0
Xwarmtxt dc.b 'Warm Capture: ',0
Xkicktxt dc.b 'KickMem : ',0
Xunset dc.b 'unset',0
Xintnames dc.b 'Serial Out ',0
X dc.b 'Disk Block ',0
X dc.b 'SoftInt ',0
X dc.b 'Ports ',0
X dc.b 'Coper ',0
X dc.b 'Vert.Blank ',0
X dc.b 'Blitter ',0
X dc.b 'Audio Ch.0 ',0
X dc.b 'Audio Ch.1 ',0
X dc.b 'Audio Ch.2 ',0
X dc.b 'Audio Ch.3 ',0
X dc.b 'Serial In ',0
X dc.b 'Disk Sync ',0
X dc.b 'External ',0
X dc.b 'SoftInt ',0
X dc.b 'NMI ',0
Xinttyp dc.b 0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1
Xfontname dc.b 'topaz.font',0
Xdevicenam dc.b 'input.device',0
Xtimernam dc.b 'timer.device',0
Xmemlarg dc.b 'LARGEST ',0
Xmemclr dc.b 'CLEAR ',0
Xmemfast dc.b 'FAST ',0
Xmemchip dc.b 'CHIP ',0
Xmempubl dc.b 'PUBLIC ',0
Xfailed dc.b 'Failed !',0
Xallok dc.b 'ALLOC: ',0
Xfree dc.b 'FREE: ',0
Xbackg dc.b 'Bckg ',0
Xforeg dc.b 'Frgr ',0
Xscript dc.b 'Batch ',0
Xinteract dc.b 'Intct ',0
Xstartupname dc.b 'S:Xoper.Startup',0
Xnameerr dc.b 'Name or address is missing.',10
Xsynerr dc.b 'Syntax Error, type "?" for help',10,0
Xwberr dc.b "Can't examine Workbench locks",0
Xdnotf dc.b 'Directory not found',0
Xnotdir dc.b 'Not a directory',0
Xnomount dc.b ' not mounted.',0
Xdishelp dc.b 10,'Names are case sensitive and followed by a ":"',0
Xunlerr dc.b 'Lock not found',0
Xunl1 dc.b 'Lock is on ',0
Xunltxt dc.b 'Old lock was: ',0
Xunltxt2 dc.b 'Unlock ? (Y/N)',10,0
Xscnofound dc.b 'Screen not found.',0
Xwinnofound dc.b 'Window not found.',0
Xstperr dc.b 'Task must be "READY" or "WAITING"',10,0
Xwaerr dc.b 'Task must be "FROZEN"',10,0
Xwhatsthis dc.b '???.?',0
Xtoomuch dc.b '??? ',0
Xtimenotset dc.b ' disabled.',0
Xwhattime dc.b 'Refresh time in secs:',0
Xstoped dc.b '<Break>',0
Xonscr dc.b 'On Screen: ',0
Xwhatnow dc.b 'Kill, ignore (K/I)?',0
Xnoguru dc.b 'None found.',0
Xsoftfail dc.b 'Software failure!',10,'Task: ',0
Xaddrserr dc.b 'Bad aligned address was: ',0
Xprocount dc.b 'PC: ',0
Xdiskfont dc.b 'diskfont.library',0
Xusetxt dc.b 'USAGE: Xoper [T] [F] [L] [D] [R] [E] [M] [P] [I] [S] [C]',10
X dc.b 'OR Xoper -b',10
X dc.b 'DISPLAY:',10
X dc.b '[T]asks [F]=taskflags [L]ibraries [D]evices [R]esources',10
X dc.b 'r[E]sident [M]emory [P]orts [I]nterrupts [S]tack',10
X dc.b '[C]litasks [Q]uit',10,10
X dc.b 'OTHER SYSTEM LISTS:',10
X dc.b 'Windows Screens Fonts WindowFonts CurrentDir',10
X dc.b 'Files Locks Devices InputHandler Capture',10
X dc.b 'TimerIO DiskChange',10,10
X dc.b 'COMMANDS:',10
X dc.b 'Time <secs>',10
X dc.b 'Taskpri <priority> [processnum] <taskname>',10
X dc.b 'Mypri <priority>',10
X dc.b 'Signal <mask(hex)> [processnum] <taskname>',10
X dc.b 'Break [processnum] <taskname>',10
X dc.b 'Freeze|Warm [processnum] <taskname>',10
X dc.b 'Kill [processnum] <taskname>',10
X dc.b 'Snoop [processnum] <taskname>',10
X dc.b 'Hide <taskname>',10
X dc.b 'Pri <priority> <nodename>',10
X dc.b 'Info <name>',10
X dc.b 'RemResident <resident module name>',10
X dc.b 'Clear <longword(hex)>',10
X dc.b 'Hunks [processnum] <procname>',10
X dc.b 'CD <directory> [processnum] <procname>',10
X dc.b 'UnLock <lock>',10
X dc.b 'OpenLib | Closelib <libraryname>',10
X dc.b 'CloseWindow| Closescreen <title>',10
X dc.b 'SetFont [size] <fontname> <windowtitle>',10
X dc.b 'LockDrive | Freedrive <drivename:>',10
X dc.b 'Window <leftedge topedge width height> (scriptfile only) ',10
X dc.b 'OutputLines <maximum # of lines>',10
X dc.b 'HistoryLines <maximum # of lines>',10
X dc.b 'MinimumChars <minimum # of characters>',10
X dc.b 'SaveOutput <filename>',10
X dc.b 'Repeat <Command line>',10
X dc.b 'SetFKey <number> <string>',10
X dc.b 'Alias [<aliasname> <commandname>]',10,10
X dc.b 'COMMANDS WITHOUT PARAMETERS:',10
X dc.b 'Flush LastAlert ClrCool ClrCold ClrWarm',10
X dc.b 'TrapGuru',10,10
X dc.b 'OPTIONS:',10
X dc.b 'Sort TaskPorts Hidden Usage Header',10
X dc.b 'IconifyOff BackDropIcon ShowHistory KillHistory UseScreen',10
X dc.b 'UseWindow CLICmd',10
X dc.b 'Hold Exit'
Xnull dc.b 0
X
X IFD DEBUG
Xdosname dc.b 'dos.library',0
Xintuiname dc.b 'intuition.library',0
Xgfxname dc.b 'graphics.library',0
Xconname dc.b 'console.device',0
X EVEN
X ENDC
X
X BSS blabla
Xbuffer ds.b 2200
Xout ds.b 100
Xdummy ds.b 80
Xin ds.b 80
Xcputime ds.b 1000
Xievent ds.b 32
Xoutevent ds.b 20
Xinputbuffer ds.b 88
Xrepeatbuffer ds.b 81
X
Xmypacket BSS standardpacket
X
XLN_SUCC ds.l 1
XLN_PRED ds.l 1
XLN_TYPE ds.b 1
XLN_PRI ds.b 1
XLN_NAME ds.l 1
XMP_FLAGS ds.b 1
XMP_SIGBIT ds.b 1
XMP_SIGTASK ds.l 1
XMN_SIZE ds.w 1
XLH_HEAD ds.l 1
XLH_TAIL ds.l 1
XLH_TAILPRED ds.l 1
XLH_TYPE ds.b 1
XLH_pad ds.b 1
Xdp_Link ds.l 1
Xdp_Port ds.l 1
Xdp_Type ds.l 1
Xdp_Res1 ds.l 1
Xdp_Res2 ds.l 1
Xdp_Arg1 ds.l 1
Xdp_Arg2 ds.l 1
Xdp_Arg3 ds.l 1
Xdp_Arg4 ds.l 1
Xdp_Arg5 ds.l 1
Xdp_Arg6 ds.l 1
Xdp_Arg7 ds.l 1
X
Xtimerio ds.b 40
X
X CODE ICONIFY,CHIP
X
Xiconify lea icnwindow,a0
X CALL OpenWindow,intuibase
X move.l d0,iconwindow
X
Xwaitforcall move.l iconwindow,a0
X move.l $56(a0),a0 ;wn->UserPort
X
X moveq #0,d1
X move d1,d0
X move.b 15(a0),d1 ;UserPort->SigBit
X bset d1,d0
X move.l d0,d6
X or.l mysignal,d0
X or.l trapsignal,d0
X CALL Wait,_SysBase
X and.l d0,d6
X bne.s fromwindow
X move.l mysignal,d1
X and.l d0,d1
X bne icondone
X and.l trapsignal,d0
X beq.s waitforcall
X move.b #1,gotguru
X bra.s icondone
X
Xfromwindow move.l iconwindow,a0
X move.l $56(a0),a0 ;wn->UserPort
X CALL GetMsg,_SysBase
X tst.l d0
X beq.s waitforcall
X move.l d0,a1
X CALL ReplyMsg,_SysBase
X
X move.l iconwindow(PC),a0
X move.l 4(a0),d5
X cmp.l icnwindow(PC),d5
X bne.s 1$
X lea nsecs(PC),a0
X lea nmics(PC),a1
X CALL CurrentTime,intuibase
X movem.l osecs,d0-d3
X CALL DoubleClick,intuibase
X tst.l d0
X bne.s icondone
X move.l nsecs(PC),osecs
X move.l nmics(PC),omics
X1$ move.l d5,icnwindow
X bra waitforcall
X
Xicondone move.l iconwindow,a0
X move.l 4(a0),icnwindow ;LeftEdge+TopEdge
X CALL CloseWindow,intuibase
X rts
X
Xosecs dc.l 0
Xomics dc.l 0
Xnsecs dc.l 0
Xnmics dc.l 0
X
Xiconwindow dc.l 0
Xicnwindow dc.w 40,170,72,28
X dc.b 0,1
X dc.l $20,$800
X dc.l gadget,0,0,0,0
X dc.w 72,28,72,28
X dc.w 1
X
Xgadget dc.l 0
X dc.w 0,0,72,28,4,2,$20
X dc.l image
X dc.l 0,0,0,0
X dc.w 0
X dc.l 0
X
Ximage dc.w 0,0,72,28,2
X dc.l imagedata
X dc.b 3,0
X dc.l 0
X
Ximagedata dc.w $000F,$FFFF,$FFFF,$FFF8,$0000,$001F,$FFFF,$FFFF
X dc.w $FFFC,$0000,$001F,$0000,$0000,$007C,$0000,$001F
X dc.w $7FFF,$FFFF,$FF7C,$0000,$001F,$4A46,$0244,$557C
X dc.w $0000,$001F,$5108,$D411,$817C,$0000,$001F,$7FFF
X dc.w $FFFF,$FF7C,$0000,$001F,$0000,$0000,$007C,$0000
X dc.w $001F,$30C0,$0000,$007C,$0000,$001F,$1980,$0000
X dc.w $007C,$0000,$001F,$0F0F,$1F0F,$1F7C,$0000,$001F
X dc.w $0619,$9999,$997C,$0000,$001F,$0F19,$999F,$987C
X dc.w $0000,$001F,$1999,$9F18,$187C,$0000,$001F,$30CF
X dc.w $180F,$187C,$0000,$001F,$0000,$1800,$007C,$0000
X dc.w $001F,$0000,$0000,$007C,$0000,$001F,$FFFF,$FFFF
X dc.w $FFFC,$0000,$000F,$FFFF,$FFFF,$FF18,$0000,$0000
X dc.w $0000,$0000,$0000,$0000,$3FFF,$FFFF,$FFFF,$FFFF
X dc.w $FC00,$FDFF,$FFFF,$FFFF,$FFFF,$FF00,$EBFF,$FFFF
X dc.w $FFFF,$FFFF,$FF00,$F7FF,$FFFF,$FFFF,$F800,$0700
X dc.w $FFFF,$FFFF,$FFFF,$FFFF,$FF00,$FFFF,$FFFF,$FFFF
X dc.w $FFFF,$FF00,$FFFF,$FFFF,$FFFF,$FFFF,$FF00,$3FFF
X dc.w $FFFF,$FFFF,$FFFF,$FC00,$0000,$0000,$0000,$0000
X dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$FFFF
X dc.w $FFFF,$FF80,$0000,$0000,$FFFF,$FFFF,$FF80,$0000
X dc.w $0000,$FFFF,$FFFF,$FF80,$0000,$0000,$FFFF,$FFFF
X dc.w $FF80,$0000,$0000,$FFFF,$FFFF,$FF80,$0000,$0000
X dc.w $FFFF,$FFFF,$FF80,$0000,$0000,$8000,$0000,$0080
X dc.w $0000,$0000,$8000,$0000,$0080,$0000,$0000,$8000
X dc.w $0000,$0080,$0000,$0000,$8000,$0000,$0080,$0000
X dc.w $0000,$8000,$0000,$0080,$0000,$0000,$8000,$0000
X dc.w $0080,$0000,$0000,$8000,$0000,$0080,$0000,$0000
X dc.w $8000,$0000,$0080,$0000,$0000,$FFFF,$FFFF,$FF80
X dc.w $0000,$0000,$0000,$0000,$00E0,$0000,$0000,$0000
X dc.w $0000,$00E0,$0000,$0000,$1FFF,$FFFF,$F800,$0000
X dc.w $0000,$0080,$0040,$0000,$0000,$0200,$0080,$0040
X dc.w $0000,$0000,$1400,$0080,$0040,$003F,$0000,$0800
X dc.w $0080,$0040,$07FF,$F800,$0000,$0080,$0040,$003F
X dc.w $0000,$0000,$0080,$0040,$0000,$3800,$FFFF,$FFFF
X dc.w $FFFF,$FFFF,$FE00,$0000,$0080,$0040,$0000,$0000
X
Xiconifgad dc.l 0
X dc.w -83,0
X dc.w 31,10
X dc.w $14
X dc.w $41
X dc.w 1
X dc.l iconifimg
X dc.l 0
X dc.l 0
X dc.l 0
X dc.l 0
X dc.w 0
X dc.l 0
X
Xiconifimg dc.w 0,0
X dc.w 31,10
X dc.w 2
X dc.l iconifdata
X dc.b $0003,$0000
X dc.l 0
X
Xiconifdata dc.w $7FFF,$FFFC,$601F,$FFFC,$6000,$000C,$607F,$FFCC
X dc.w $6060,$00CC,$6067,$FCCC,$7E60,$00CC,$7E7F,$FFCC
X dc.w $7E00,$000C,$7FFF,$FFFC,$0000,$0000,$1FE0,$0000
X dc.w $1FFF,$FFF0,$1F80,$0030,$1F9F,$FF30,$1F98,$0330
X dc.w $019F,$FF30,$0180,$0030,$01FF,$FFF0,$0000,$0000
X
X
X END
X
END_OF_FILE
if test 40356 -ne `wc -c <'Xoper.a.ac'`; then
echo shar: \"'Xoper.a.ac'\" unpacked with wrong size!
fi
# end of 'Xoper.a.ac'
fi
echo shar: End of archive 2 \(of 4\).
cp /dev/null ark2isdone
MISSING=""
for I in 1 2 3 4 ; do
if test ! -f ark${I}isdone ; then
MISSING="${MISSING} ${I}"
fi
done
if test "${MISSING}" = "" ; then
echo You have unpacked all 4 archives.
rm -f ark[1-9]isdone
else
echo You still need to unpack the following archives:
echo " " ${MISSING}
fi
## End of shell archive.
exit 0
--
Submissions to comp.sources.amiga and comp.binaries.amiga should be sent to:
amiga@cs.odu.edu
or amiga@xanth.cs.odu.edu ( obsolescent mailers may need this address )
or ...!uunet!xanth!amiga ( very obsolescent mailers need this address )
Comments, questions, and suggestions s should be addressed to ``amiga-request''
(only use ``amiga'' for submissions) at the above addresses.