home *** CD-ROM | disk | FTP | other *** search
- * ANTIBORDER V1.0 RECONSTRUCTION (I LOST THE SOURCE)
- * (C) 1990,91 Paul Hayter
- * LATE JUNE 91
-
- INCLUDE "PHAD:DEFS/INTUITION.DEFS"
- INCLUDE "PHAD:DEFS/GRAPHICS.DEFS"
- INCLUDE "PHAD:DEFS/LIBRARIES.DEFS"
- INCLUDE "PHAD:OFFS/DOS.I"
- INCLUDE "PHAD:OFFS/EXEC.I"
- INCLUDE "PHAD:OFFS/INTUITION.I"
-
- BEGIN
- move.l (4).w,a6
- move.l a0,a5
- cmp.b #10,(a0)
- bne.s gotoit
- rts
- gotoit
- moveq #0,d0
- lea dosname(pc),a1
- jsr _LVOOpenLibrary(a6)
- move.l d0,dosbase
- cmpi.b #'?',(a5)
- beq query
-
- move.b (a5),yesorno
- cmpi.b #$0A,$01(a5)
- beq.s noram
- cmpi.b #'r',$02(a5)
- bne.s noram
- move.l dosbase(pc),a4 IF r OPTION SPECIFIED
- lea ramname(pc),a0 THEN LOCK RAM:
- move.l a0,d1
- moveq #ACCESS_READ,d2 WHICH MAKES SURE RAM-HANDLER IS LOADED
- jsr _LVOLock(a4)
- tst.l d0
- beq.s noram
- move.l d0,d1
- jsr _LVOUnLock(a4)
- noram
- moveq #$00,d0
- lea intname(pc),a1
- jsr _LVOOpenLibrary(a6)
- move.l d0,intbase
- move.l d0,a6
- move.l ib_ActiveWindow(a6),a4
- bsr.s move_and_resize
- move.b yesorno(pc),d0
- cmp.b #'y',d0
- beq.s noframe
- RESTORE_OLD_STATE
- bsr clear_screen
- bsr restore_borders
- 1$
- bsr null_resize
- bsr home_cursor
- moveq #$00,d1
- bsr.s read_screen
- cmp.l #$FFFFFFFF,d0 Check if top line has menu bar still there
- bne.s 1$
-
- bsr clear_screen
- bra.s finish_up
-
- noframe bsr kill_borders
- 1$ bsr clear_screen
- moveq #$08,d1
- bsr.s read_screen
- tst.b d0
- bne.s 1$
-
- finish_up move.l intbase(pc),a1
- move.l (4).w,a6
- jsr _LVOCloseLibrary(a6)
- closedos move.l dosbase(pc),a1
- jsr _LVOCloseLibrary(a6)
- moveq #0,d0
- rts
-
-
- query move.l d0,a5
- lea query_text(pc),a0
- move.l a0,d2
- move.l #query_text_end-query_text,d3
- bsr.s clr2
- bra.s closedos
-
- read_screen
- move.l wd_RPort(a4),a1
- move.l rp_BitMap(a1),a0
- move.l bm_Planes(a0),a1
- move.l 0(a1,d1.l),d0 Read 32 pixels
- rts
-
- move_and_resize
- moveq #0,d1 A4=WINDOW
- move.w wd_LeftEdge(a4),d1
- moveq #0,d0
- sub.l d1,d0
- moveq #0,d2
- move.w wd_TopEdge(a4),d2
- moveq #0,d1
- sub.l d2,d1
- move.l a4,a0
- jsr _LVOMoveWindow(a6)
- move.l ib_ActiveScreen(a6),a5 A5=SCREEN
- move.w wd_Height(a4),d2
- move.w sc_Height(a5),d1
- sub.w d2,d1
- ext.l d1
- move.w wd_Width(a4),d2
- move.w sc_Width(a5),d0
- sub.w d2,d0
- ext.l d0
- move.l a4,a0
- jsr _LVOSizeWindow(a6) KEEP SIZING WINDOW UNTIL THE SIZE
- 1$ move.w sc_Height(a5),d0 READS BACK OK
- cmp.w wd_Height(a4),d0
- bne.s 1$
-
- move.w sc_Width(a5),d0
- cmp.w wd_Width(a4),d0
- bne.s 1$
- rts
-
- home_cursor
- lea home(pc),a0
- move.l a0,d2
- moveq #3,d3
- bra.s clr2
- clear_screen
- lea cls(pc),a0
- move.l a0,d2
- moveq #1,d3
- clr2 move.l dosbase(pc),a5
- jsr _LVOOutput(a5)
- move.l d0,d1
- jsr _LVOWrite(a5)
- rts
-
- kill_borders
- moveq #0,d0
- jsr _LVOLockIBase(a6)
- move.l d0,-(sp)
- bset.b #3,wd_Flags+2(a4)
- clr.b wd_BorderTop(a4)
- clr.b wd_BorderBottom(a4)
- clr.b wd_BorderRight(a4)
- clr.b wd_BorderLeft(a4)
- move.l a4,a0
- jsr _LVORefreshWindowFrame(a6)
- move.l (sp)+,a0
- jsr _LVOUnlockIBase(a6)
- jsr _LVORemakeDisplay(a6)
- rts
-
- null_resize
- moveq #$00,d0
- moveq #$00,d1
- move.l a4,a0
- jsr _LVOSizeWindow(a6)
- move.l a4,a0
- jsr _LVORefreshWindowFrame(a6)
- rts
-
- restore_borders
- moveq #0,d0
- jsr _LVOLockIBase(a6)
- move.l d0,-(sp)
- bclr.b #3,wd_Flags+2(a4)
- move.b #11,wd_BorderTop(a4)
- move.b #2,wd_BorderBottom(a4)
- move.b #18,wd_BorderRight(a4)
- move.b #4,wd_BorderLeft(a4)
- move.l a4,a0
- jsr _LVORefreshWindowFrame(a6)
- move.l (sp)+,a0
- jsr _LVOUnlockIBase(a6)
- jsr _LVORemakeDisplay(a6)
- rts
-
- dosbase dc.l 0
- intbase dc.l 0
- yesorno dc.b 0
-
- intname dc.b 'intuition.library',0
- dosname dc.b 'dos.library',0
- ramname dc.b 'ram:',0
-
- query_text
- dc.b $1b,'[33mAntiBorderV1.0 (C)1990 Paul Hayter',$1b,'[31m',10
- dc.b 'Usage: AntiBorder y -Big Window, No Border.',10
- dc.b ' AntiBorder n -Big Window with Border.',10
- dc.b ' AntiBorder y r -Big Window, No Border, Lock RAM:',10
- dc.b ' AntiBorder n r -Big Window with Border, Lock RAM:',10
- query_text_end
-
- cls dc.b $0C
- home dc.b $9b,'H '
-