root%swap@Sun.COM (Operator) (10/28/89)
Submitted-by: g35@dhdurz1@bitnet (Werner Guenther) Posting-number: Volume 89, Issue 192 Archive-name: kernel/xoper20.3 # This is a shell archive. # Remove anything above and including the cut line. # Then run the rest of the file through 'sh'. # Unpacked files will be owned by you and have default permissions. #----cut here-----cut here-----cut here-----cut here----# #!/bin/sh # shar: SHell ARchive # Run the following text through 'sh' to create: # xoper.a3 # Xoper.startup # Xoper.doc # This is archive 3 of a 3-part kit. # This archive created: Fri Oct 27 23:48:53 1989 echo "extracting xoper.a3" sed 's/^X//' << \SHAR_EOF > xoper.a3 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 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 Xhistory dc.l *+4 X dc.l 0 X dc.l history Xcurhist dc.l 0 X 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 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 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 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.0 ) 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' 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 '-----' Xnix dc.b '--- ',0 Xnoinfo dc.b 'No Info on' Xoneblank dc.b ' ',0 Xequal 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 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 'Refresh 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 alligned 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 'Alias [<aliasname> <commandname>]',10,10 X dc.b 'COMMADS 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',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.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.s 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 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 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 SHAR_EOF echo "extracting Xoper.startup" sed 's/^X//' << \SHAR_EOF > Xoper.startup X;eine dumme Xoper Demo Xtime 2 Xusescreen Xt l f d m e p i s c ? Xalias ih inputhandler Xalias dc diskchange Xalias tio timerio X X SHAR_EOF echo "extracting Xoper.doc" sed 's/^X//' << \SHAR_EOF > Xoper.doc X Xoper V2.0 X X Copyright (c) Werner Gunther 1989 X XXoper is a freeware program to display and to control system activity. XPermition is granted to freely distribute this program. X X-------------------------------------------------------------------------- XChanges in V1.2: XNew commands: Snoop, Capture, ClrCool, ClrWarm, ClrCold. XAdded : CPU usage by task. X XCancel command has been rewritten, some minor bugs removed. X--------------------------------------------------------------------------- XChanges in V1.3: XNew commands: [S]=Stack usage, Sort, Hide, Hidden, Header, Window, X InputHandler. XAdded : Support of startup-scripts, I/O Interrupts/second, 'Kill' an X alias for 'Cancel'. XSome BIG bugs have been removed: The port-display used to GURU if more than X32 Ports did exist. The Cli Xoper has been started did act like having a Xpriority of 128. Unlock didn't unlock sometimes, the interrupt/priority Xfield did contain rubbish, Currentdir didn't examine all Processes. XThere were some more, minor bugs, all (hopefully) removed. X--------------------------------------------------------------------------- XChanges in V1.3b: XNew commands: [C] information on CLI-Tasks. XAdded : 'Time 0' stops any update, System-Requesters are now handeled X correctly (affects 'Kill' and 'Closewindow'). X--------------------------------------------------------------------------- XChanges in V2.0: XThe 'user interface' (what user interface ?) has been rewritten from Xscratch, and a small iconify routine has been added. To customize the whole Xthing a little bit, there are a few new commands: X MinimumChars, HistoryLines, ShowHistory, KillHistory, OutputLines, XIconifyOff, BackDropIcon, UseScreen, UseWindow. XOther new commands include: XTimerIO, RemResident, Repeat, TrapGuru, Setfont, DiskChange, Alias, XSaveOutput. XAddresses are now shown as 32-Bit values for 68020 compatibility. The 'More' Xcommand is obsolete and has been removed. The 'interrupt list' has two new Xfields. 'Time' w/o parameters shows current setting. 'display commands' Xseparated by blanks will display the lists one by one, instead of Xdisplaying them all at once. X--------------------------------------------------------------------------- XStarting Xoper from CLI: X XXoper [T] [F] [S] [L] [D] [R] [E] [M] [P] [I] [C] X XThese parameters are described below. For all those who like long XStartup-Sequences, overcrowded memory and hot-keys enter X XXoper -b X XThis will install Xoper in background waiting for LeftAmiga-RightAmiga-X Xto pop up. In both cases you don't have to RUN or RUNBACK Xoper, it will Xalways create its own process. X XAt startup Xoper loads and executes a file named S:Xoper.Startup if such a Xfile is available. This startup-script is used to set default values, the Xwindow size or the initial default list to be displayed. The Xoper-window Xwill only be opened after the startup-script has been processed. Look at the Xend of the document for a sample startup file. X XXoper Window: X------------- X The window (or screen if you request one) is devided into two sections: a Xvery small input line on the bottom and a large output area on the top. If Xthe output exceeds the size of the window you may scroll or 'page' through Xthe text using the num-pad keys: X XA1000 A2000/A500 X 7 Home Top of display X 1 End Bottom X 9 Pg Up one page up X 3 Pg Dn one page down X 8 Up Arrow one line up X 2 Down Arrow one line down X 4 Left Arrow one page left X 6 Right Arrow one page right X X The input section has some line editing facilities and a history buffer Xcontollable with the following keys (similar to NewCon and ConMan): X XCursor left cursor one character left XShift left cursor to the start of the next word XCursor right one character right XShift right previous word XCursor Up previous line in history buffer XShift Up top of buffer XCursor Down next line in history buffer XShift Down bottom of buffer XDEL DEL XBS backspace XCtrl X delete line XCtrl Y delete EOL XIns (numpad '0') toggles insert mode (default is 'on') XDel (numpad '.') same as DEL X XESC moves the input area from the bottom into the X output section. Entering a command here (i.e X overwiting an output line), will cause Xoper to add X the address of that node to your command line. X Example: Show the hunks of a 'File.System' process: X type 'T' to get a list of all tasks, press <esc>, X move the cursor to the line displaying the X File.System process and type 'Hunks <enter>'. Press X <enter> once more to return to the usual Xoper X display. XHelp displays a help panel. X XThe Xoper window has, beside the usual closewindow and depth-arrange Xgadgets, a custom gadget on its title bar, used to iconify Xoper. The icon Xmay be moved anywhere on the screen just by dragging it, double clicking Xthe icon will restart the program. The window itself is a simple_refresh Xwindow, so it may look a little bit sluggish when it needs a refresh. X XXoper Commands: X--------------- X X Commands are entered in the command line at the bottom of the window, Xthese are divided into two groups: X XDisplay commands: These are always single character entries and may be Xspecified in any order, upper or lower case, after the prompt or from CLI Xas parameters. If more than one list has to be displayed, you may enter Xseveral commands in one line. Separating them with blanks display the lists Xone by one instead of showing them all at once. X XT = Tasks (Default if Xoper is called without parameters) XTask node (HEX), Display type, status, priority (decimal), CPU usage X(percent), processnumber for Dos-Processes (decimal), taskname. X XF = Task Flags XTask node (HEX), Allocated Signals (HEX), Signals the Task is waiting for X(HEX), Signals received (HEX), Address of the next instruction to be Xexecuted (HEX). X XC = Cli Commands XTask node (HEX), Type (interactive/batch), Mode (Background/Foreground), XCLI number, CLI name, program it executes. X XL = Libraries XBase address (HEX), open count (decimal), version (decimal), revision X(decimal), flags (binary), libraryname. X XD = Devices XBase address (HEX), open count (decimal), version (decimal), revision X(decimal), flags (binary), devicename. X XE = Resident (sorry) XBase address (HEX), priority (decimal), flags (binary), version X(decimal), type, name. X XR = Resources XBase address (HEX), open count (decimal), version (decimal), revision X(decimal), flags (binary), resource name. X XM = Memory XLower and upper bounds (HEX), bytes free (decimal), attributes, priority X(decimal), hunk name. X XP = Ports XNode address (HEX), portname, flags, signal bit (decimal), queue length X[number of messages] (decimal), taskname. X XI = Interrupts XNode address (HEX), pointer to interrupt data (HEX), pointer to interrupt Xcode (HEX), priority (decimal),[T]ype ([S]erver/[H]andler), [S]tate X([E]nabled/[D]isabled), type (interrupt queue the interrupt belongs to), Xinterrupt name. X XS = Stack XLower limit of the stack, stack size, currently used stacksize, taskname. XIf you want to minimize your stack using this utility, please note that XDOS-functions use 1500 Bytes at the bottom of the Stack frame for their own Xpurposes and note that the stacksize is only checked one time per second by Xthis command. X XH = Help ( or ?) XShow a list of commands. X X; = NOP XSkip this line (used for remarks in a script file) X XQ = Quit XSame as QUIT (see below). X XExample: Entering TPM would display Tasks, Ports and Memory. The display Xwould be updated after a few seconds (5 by default, may be changed Xanytime, see below.) X XOther commands that do not display EXEC lists: XThese commands may be entered upper or lower case. Parameters enclosed Xin '<>' must be, enclosed in '[]' may be specified. Names are usually Xentered as ascii strings, it can however happen that two or more nodes of Xthe same name exist. On tasks you may specify the DOS-Processnumber to Xsort them out. If everything fails, you can enter the Node-Address with a Xleading '$'. This address will be checked first before the command is being Xexecuted. If the check fails, you'll get an error message or a warning or Xa prompt, depending on what went wrong. Names are always the last parameter Xto enter. This may seem strange, but it is the simplest way to get rid of Xembedded blanks. X XTime <seconds> XSet time between updates. Minimum is 1 second, maximum is 255, default is 5 Xseconds. Time 0 stops automatic update and waits for a kepress. XExample: Time 1 X XTaskpri <priority> [processnumber] <taskname> XChange the priority of a task. Values may range from -127 to 127, better Xuse values between -5 and 5. XExample: Taskpri 1 New Cli X XMypri <priority> XShortcut for "Taskpri Xoper <priority>" XExample: Mypri 2 X XPri <priority> <nodename> XChange the priority of any other node. This command does not work for Tasks. XIf the specified node has been found, the entire list the node belongs to Xwill be resorted. XExample: Pri 1 Chip Memory (try to allocate memory in CHIP first) X XBreak [processnumber] <taskname> XSet break signals. Useful for tasks running in background or from Workbench. XExample: Break 3 New CLI X XHunks [processnumber] <processname> XShow location, BCPL-Pointers and length of memory blocks the process uses. XExample: Hunks RAM X XSnoop [processnumber] <taskname> XTrack memory allocation/deallocation of a task. Press break (CTRL-C) to Xstop. List includes: action (alloc/free), memory requirements (CHIP/ FAST/ XPUBLIC etc), memory size, memory location (start, end) and the address from Xwhere AllocMem() was called. X XFiles XList lock, access, size and name of open files. X XLocks XList any lock. XBUG: Trying to lock the Volume "RAM Disk" crashes the machine sometimes. If Xa Volume "RAM Disk" is found it will be replaced by the devicename "RAM:" X(this has been fixed on WB 1.3). Make sure you don't have a disk labeled X"RAM Disk" or you'll never see its locks:-) X XCurrentdir XList current directory settings of all processes. X XDevices XList name,heads,sectors,tracks,startup-buffers and handler-process of every XDOS-device. X XInputhandler XDisplay node, priority and name (if any) of the input-handlers currently in Xuse. X XCapture XShow vectors controlling the reset, i.e. CoolCapture, ColdCapture and XWarmCapture pointers, KickMem allocations. Useful when searching Xfor Viruses, but remember that the RAD: device in 1.3 uses the KickMem Xpointer to recover from a reset. X XClrCool XClrCold XClrWarm XClear one of those pointers. X XTimerIO XDisplay pending timer requests. It shows the address of the XIORequest-structure, the unit (MICROHZ or VBLANK), the time to complete (up Xto 255 secs) and the task submitting the request. X XRemResident <resident module name> XKicks the resident module out of the ResModules-List. It does not free the Xmodule itself, but only makes sure it won't be reactivated during the next Xreset. Removing a ROM-based module does not have any effect. X XRepeat <Command string> XRepeats the command string at the current refresh rate (see 'Time'). XHowever, commands not producing any output won't be repeated, but only Xexecuted once. Press <enter> to stop. XExample: Time 1 X Repeat TimerIO X XTrapGuru XActivates a trap handler similar to GOMF. It only works with a 68000 Xprocessor, as it relys on a specified stack frame (at least I think so, Xcouldn't check it out). If an exeption occurs (i.e. GURU) Xoper will Xstop (or popup, if running in background) and display some information Xabout what happened (the taskname causing the error, its program counter, Xthe alert number etc.) and you'll be asked if you want to (K)ill the task Xor (I)gnore the exeption. Choosing (i)gnore will do nothing at all if the Xerroneous program was a process (as it will stop itself displaying a X'Task held...' requester), but force a task to execute a 'Wait(0L)' (i.e. Xwait forever) as tasks do directly display an alert box. X XAlias <AliasName> <CommandName> XDefines a new name to be used along with the original command name. The new Xname should not contain any blanks. XExample: Alias ih InputHandler X XLockdrive <drivename:> XPrevent DOS, Workbench and Disk-Validator from cluttering on the drive. XThis command isn't very useful, but I needed it myself. Please note that Xthe drivename is case sensitive and has to end with a ':'. X XFreedrive <drivename:> XRe-enable a drive. X XDiskChange XShow all installed diskchange interrupts. It displays the node, data and Xcode fields of the interrupt, the device it is attached to (df0:-df3:) and Xthe task which added the interrupt (if available). The main purpose for Xthis command is to check for a virus, as the diskchange interrupt is a Xwonderful place to install them. X XWindows XList address and title of all windows. X XScreens XList address and title of screens. X XFonts XList address,height,width,type,fist character and last character of all Xloaded fonts. X XWindowfonts XList Windows and associated fonts. X XSetFont [size] <fontname> <window> XChange the default font of a window. To avoid confusion, you should use a Xfont with the same font size as the original font, as many programs rely on Xthe point size. XExample: Windows X Press <esc>, move the cursor to the Xoper window line and type X Setfont diamond.font X (now you know what I mean by 'relying on a font size' :-)) X XFreeze [processnumber] <taskname> XHalt a Task. The task should be READY or WAITING. Frozen tasks are queued in Xa new list called FROZEN. When you leave Xoper, halted Task will be Xreleased. XExample: Freeze Killer Graphics Task X XWarm [processnum] <taskname> XRestart a halted Task. Task must be FROZEN. XExample: Warm Killer Graphics Task X XHide <taskname> XThe task-list tend to be longer than the window size. You may inhibit the Xoutput of some tasks you are not interested in using his command. XExample: Hide trackdisk.device X XHidden XTurn those hidden Tasks back on. It is actually a toggle. X XHeader XToggle the (rather long) header on the task display on/off. X XSort XThe tasks listing is sorted (on V1.3 and above) to avoid 'jumping' of the Xdisplay. Sort toggles this feature on/off. (Stupid command, but was easy Xto implement). X XInfo <librarynode | devicenode> XShow additional information stored in the lib_IdString field. XExample: Info arp.library X XOpenlib <libraryname> XOpen a library. This is useful if you don't want a specified library being X'flushed' out. XExample: Openlib arp.library X XClear [longword] XFill unused memory chunks with pattern, default is 0. Handy for debuggers. XExample: Clear $66726565 X XFlush XClean up memory, flush unused libraries, devices and fonts. X XLastalert XShow last Guru Meditation code or rubbish. X XUsage XToggle CPUSE field on the task display between usage relative to all Xpossible dispatches and usage relative to actually dispatched tasks. XAhem...not very clear I think. Well, let me try again... XIf you add all CPUSE fields together you get 100 % (more or less 1%). After Xentering "Usage" adding the fields together will give you the same value as Xshown in the 'CPU Activity field'. (I HATE having to write docs) X XTaskports XDisable / enable a listing of taskports if ports are displayed. X XWindow <leftedge> [toptedge [width [height]]] XWorks only on script files. Defines the window to be opened. XExample: Window 0 0 550 190 X XHistoryLines <number of lines> XSet the maximum number of input lines the history buffer should hold. XDefault is 10 lines. X XMinimumChars <number of characters> XSet the minimum number of characters an inputline should have to be added to Xthe history buffer. XDefault is 2 characters. X XShowHistory XShow the history buffer. (quite useless, I know) X XKillHistory XDelete all lines from the history buffer. (still useless) X XOutputLines <number of lines> XSet the maximum number of lines the output buffer may hold. If the buffer Xoverflows, a line from the top of the buffer will be deleted for each new Xline. XThe default value is 500, using a maximum of 500 * 104 = 52000 bytes. X XSaveOutput <filename> XWrite the contents of the output buffer to a file. X XIconifyOff XTurns the iconifying routine off, freeing all memory associated with its Xcode and image. X XBackDropIcon XPuts the Xoper icon behind all other windows, instead of creating it on top Xof them. X XUseScreen XOpens Xoper on a screen. The new screen will take its data (width, colors, Xviewmodes etc.) from the Workbench screen and open a borderless backdrop Xwindow on it. X XUseWindow XOpens Xoper on a window. X XQuit or just Q XExit Xoper. If Xoper was started with '-b' or if 'Hold' was specified it Xwill stay in background waiting for LeftAmiga-RightAmiga-X. X XHold XExit Xoper but install a key-handler and stay in background. Window Xsettings and display commands are saved. X XExit XClean up and quit. X X!!!! WARNING: The next few commands are dangerous and 'dirty' !!!!! X!!!!!!!!!!!! don't use them if not strictly necessary !!!!!!!!!!!!! X XKill [processnumber] <taskname> XKill a task or a process. If the task has been called from CLI, the Task Xitself and the CLI will be killed. Hunks, Windows, Screens and the Xteminal-window will be freed. Simple tasks are just RemTask()'ed. If it is Xnot a CLI Task you'll be asked if it is a Workbench task, if the answer is X'Yes' unloading will be done by the Workbench. If not, you will be prompted Xif Xoper should unload the code. Enter 'No' if you don't know how the task Xhas been started. X XClosewindow <title> XCloses a Window. Please, use it only if the corresponding Task has been X'Cancel'ed. Use the Window-Structure address if the window has no name. X XClosescreen <title> Xsame as above, but for screens. X XUnlock <lock (BPTR)> XUnlock a file. X XCloselib <libraryname> XThis is exactly the same as CloseLibrary(). X XCD [processnumber] <processname> XChange the current directory of a process. You are prompted if the old Xdirectory lock should be unlocked. X XSignal <mask> [processnumber] <taskname> XSet any task-signal. Mask is a hexadecimal value with or w/o leading '$'. XSee task's SIGWAIT field for sensible values. Tasks normaly do not wait for Xsignals only, but for messages, that's why this command may not have the Xdesired effect, but it is quite useful for tasks hanging around and waiting Xfor events that may never happen. Warning: Using Signal without any Xknowledge about what you are going to signal may cause a system-crash! XExample: Signal 10000000 PopCLI III X X---------------------------------------------------------------------------- X;Sample Startup Script (to be placed in s:Xoper.Startup) X; X; Window definition on a overscanned + PAL Workbench screen XWindow 122 0 550 230 X; X;don't display some Tasks X; XHide CON XHide trackdisk.device X; X;but turn them on on Startup X; XHidden X; X;Change the default list to Ports X; XP X;don't display any prompt if the window is full XMore X---------------------------------------------------------------------------- XPlease send flames, bug reports and especially a list of features you would Xlike to have included in the next version to X X Werner Gunther X Wingertspfad 12 X D 6900 Heidelberg X (Germany) X Xor to my EMAIL address for a fast response: X X G35@DHDURZ1.BITNET SHAR_EOF echo "End of archive 3 (of 3)" # if you want to concatenate archives, remove anything after this line exit