home *** CD-ROM | disk | FTP | other *** search
- OpenLibrary = -552
- CloseLibrary = -414
- Forbid = -132
- Permit = -138
- SetFunction = -420
- Wait = -318
-
- GetVar = -906
- Output = -60
- Write = -48
-
- OpenScreen = -198
- OpenScreenTagList = -612
- OpenWindow = -204
- OpenWindowTagList = -606
-
- SIGBREAKF_CTRL_C = (1<<12)
-
-
- move.l 4.w,a6
- lea IntuiName(pc),a1
- move.l #37,d0
- jsr OpenLibrary(a6)
- move.l d0,IntuiBase
- beq.w NoIntui
-
- lea DosName(pc),a1
- move.l #36,d0
- jsr OpenLibrary(a6)
- move.l d0,DosBase
- beq.w NoDos
-
- move.l 4.w,a6
- jsr Forbid(a6)
-
- move.l IntuiBase(pc),a1
- lea 0,a0
- move.w #OpenScreen,a0
- lea NewOpenScreen(pc),a2
- move.l a2,d0
- jsr SetFunction(a6)
- move.l d0,OldOpenScreen
-
- move.l IntuiBase(pc),a1
- lea 0,a0
- move.w #OpenScreenTagList,a0
- lea NewOpenScreenTagList(pc),a2
- move.l a2,d0
- jsr SetFunction(a6)
- move.l d0,OldOpenScreenTagList
-
- move.l IntuiBase(pc),a1
- lea 0,a0
- move.w #OpenWindow,a0
- lea NewOpenWindow(pc),a2
- move.l a2,d0
- jsr SetFunction(a6)
- move.l d0,OldOpenWindow
-
- move.l IntuiBase(pc),a1
- lea 0,a0
- move.w #OpenWindowTagList,a0
- lea NewOpenWindowTagList(pc),a2
- move.l a2,d0
- jsr SetFunction(a6)
- move.l d0,OldOpenWindowTagList
-
- jsr Permit(a6)
-
- bsr.w PrintC
- jsr Output(a6)
- move.l d0,d1
- lea Installed_Msg(pc),a0
- move.l a0,d2
- moveq #Installed_Len,d3
- jsr Write(a6)
-
- move.l 4.w,a6
- move.l #SIGBREAKF_CTRL_C,d0
- jsr Wait(a6)
- ;Ctrl-C received
- move.l IntuiBase(pc),a1
- lea 0,a0
- move.w #OpenScreenTagList,a0
- move.l OldOpenScreenTagList(pc),d0
- jsr SetFunction(a6)
-
- move.l IntuiBase(pc),a1
- lea 0,a0
- move.w #OpenScreen,a0
- move.l OldOpenScreen(pc),d0
- jsr SetFunction(a6)
-
- move.l IntuiBase(pc),a1
- lea 0,a0
- move.w #OpenWindowTagList,a0
- move.l OldOpenWindowTagList(pc),d0
- jsr SetFunction(a6)
-
- move.l IntuiBase(pc),a1
- lea 0,a0
- move.w #OpenWindow,a0
- move.l OldOpenWindow(pc),d0
- jsr SetFunction(a6)
-
- bsr.w PrintC
- jsr Output(a6)
- move.l d0,d1
- lea Removed_Msg(pc),a0
- move.l a0,d2
- moveq #Removed_Len,d3
- jsr Write(a6)
-
- move.l DosBase(pc),a1
- jsr CloseLibrary(a6)
- NoDos:
- move.l IntuiBase(pc),a1
- jsr CloseLibrary(a6)
- NoIntui:
- moveq #0,d0
- rts
-
-
- NewOpenScreen:
- movem.l d0-d7/a0-a6,-(sp)
- jsr CheckVar
- bne.s OpenScreen_OK
- movem.l (sp)+,d0-d7/a0-a6
- moveq #0,d0
- rts
- OpenScreen_OK:
- movem.l (sp)+,d0-d7/a0-a6
- move.l OldOpenScreen(pc),-(sp)
- rts
-
- NewOpenScreenTaglist:
- movem.l d0-d7/a0-a6,-(sp)
- jsr CheckVar
- bne.s OpenScreenTaglist_OK
- movem.l (sp)+,d0-d7/a0-a6
- moveq #0,d0
- rts
- OpenScreenTaglist_OK:
- movem.l (sp)+,d0-d7/a0-a6
- move.l OldOpenScreenTaglist(pc),-(sp)
- rts
-
- NewOpenWindow:
- movem.l d0-d7/a0-a6,-(sp)
- jsr CheckVar
- bne.s OpenWindow_OK
- movem.l (sp)+,d0-d7/a0-a6
- moveq #0,d0
- rts
- OpenWindow_OK:
- movem.l (sp)+,d0-d7/a0-a6
- move.l OldOpenWindow(pc),-(sp)
- rts
-
- NewOpenWindowTaglist:
- movem.l d0-d7/a0-a6,-(sp)
- jsr CheckVar
- bne.s OpenWindowTaglist_OK
- movem.l (sp)+,d0-d7/a0-a6
- moveq #0,d0
- rts
- OpenWindowTaglist_OK:
- movem.l (sp)+,d0-d7/a0-a6
- move.l OldOpenWindowTaglist(pc),-(sp)
- rts
-
- CheckVar:
- move.l DosBase(pc),a6
- lea VarName(pc),a0
- move.l a0,d1
- lea VarBuf(pc),a0
- move.l a0,d2
- moveq #1,d3
- move.l #$200,d4 ;GVF_LOCAL_ONLY
- jsr GetVar(a6)
- cmpi.l #-1,d0
- bne.s CV_IOSer
- moveq #1,d0
- rts
- CV_IOSer:
- move.l DosBase(pc),a6
- jsr Output(a6)
- move.l d0,d1
- lea ErrorNoDisplay_Msg(pc),a0
- move.l a0,d2
- move.l #ErrorNoDisplay_Len,d3
- jsr Write(a6)
- moveq #0,d0
- rts
-
- PrintC:
- move.l DosBase(pc),a6
- jsr Output(a6)
- move.l d0,d1
- lea Copyright_Msg(pc),a0
- move.l a0,d2
- move.l #Copyright_Len,d3
- jsr Write(a6)
- rts
-
- OldOpenscreen: dc.l 0
- OldOpenscreentaglist: dc.l 0
- OldOpenwindow: dc.l 0
- OldOpenwindowtaglist: dc.l 0
- IntuiBase: dc.l 0
- DosBase: dc.l 0
- OutputHandle: dc.l 0
- ShellTask: dc.l 0
- VarBuf: dc.w 0
- VarName: dc.b "RSHELL-PROTECTOR",0
- IntuiName: dc.b "intuition.library",0
- DosName: dc.b "dos.library",0
- ErrorNoDisplay_Msg: dc.b $7,"You are using an ASCII-only terminal.",$a
- dc.b "Could not open intuition GUI!",$a
- ErrorNoDisplay_Len: EQU *-ErrorNoDisplay_Msg
- Copyright_Msg: dc.b $1b,"[32mRemoteShell-Protector V37.1",$a
- dc.b "(L) 1994 by Lunkwill & Skywalker",$a
- dc.b $1b,"[0mPatches "
- Copyright_Len: EQU *-Copyright_Msg
- Installed_Msg: dc.b "installed!",$a
- Installed_Len: EQU *-Installed_Msg
- Removed_Msg: dc.b "removed!",$a
- Removed_Len: EQU *-Removed_Msg
-