;***************************************************************************; ; ; ; BOX ; ; Draws a graphics box on the screen ; ; ; ;***************************************************************************; ;Copyright (C) 1986 by UltraSoft. All Rights Reserved. ; ;Written by: David Pallmann ; ;Usage: XCALL BOX, StartRow, StartCol, EndRow, EndCol ; ;To assemble: (1) .M68 BOX ; (2) .LNKLIT BOX ;1.0 12-Nov-85 created. /DFP OBJNAM .SBR SEARCH SYS SEARCH SYSSYM SEARCH TRM EXTERN $GTARG ;XCALL Argument List - indexed by A3 .OFINI .OFDEF XC.ARG,2 .OFDEF XC.TY1,2 .OFDEF XC.AD1,4 .OFDEF XC.SZ1,4 .OFDEF XC.TY2,2 .OFDEF XC.AD2,4 .OFDEF XC.SZ2,4 .OFDEF XC.TY3,2 .OFDEF XC.AD3,4 .OFDEF XC.SZ3,4 .OFDEF XC.TY4,2 .OFDEF XC.AD4,4 .OFDEF XC.SZ4,4 .OFSIZ XC.SIZ ;Variable type codes XC$UNF=0 ; unformatted XC$STR=2 ; string XC$FLT=4 ; floating point XC$BIN=6 ; binary DEFINE TCALL CODE MOVW #-1_8.+^D,D1 TCRT ENDM DEFINE CLS=TCALL 0 DEFINE GRAFIX=TCALL 23 DEFINE TEXT=TCALL 24 DEFINE CURSOR ROW,COL MOVW ROW,D1 ROLW D1,#8. ADDW COL,D1 TCRT ENDM MEM=A4 .OFINI .OFDEF STAROW,2 ; start row .OFDEF STACOL,2 ; start column .OFDEF ENDROW,2 ; end row .OFDEF ENDCOL,2 ; end column .OFDEF WIDTH,2 ; box width .OFSIZ MEMSIZ DEFINE MOVWL SRC,DST CLR DST MOVW SRC,DST ENDM DEFINE TCALL CHAR1 MOVW #-1_8.+^D,D1 TCRT ENDM VMAJOR=1 VMINOR=0 START: PHDR -1,0,PH$REE!PH$REU CHKCNT: CMMW XC.ARG(A3),#4 BEQ GETARG TYPECR ?Invalid number of arguments in BOX.SBR RTN GETARG: MOV #XC.TY1,D1 CALL $GTARG MOVW D1,STAROW(MEM) GETAG2: MOV #XC.TY2,D1 CALL $GTARG MOVW D1,STACOL(MEM) GETAG3: MOV #XC.TY3,D1 CALL $GTARG MOVW D1,ENDROW(MEM) GETAG4: MOV #XC.TY4,D1 CALL $GTARG MOVW D1,ENDCOL(MEM) CHECK: CMMW STAROW(MEM),#1 JLT RANGE CMMW ENDROW(MEM),#24. JGT RANGE CMMW STAROW(MEM),ENDROW(MEM) JGE RANGE CMMW STACOL(MEM),#1 JLT RANGE CMMW ENDCOL(MEM),#80. JGT RANGE CMMW STACOL(MEM),ENDCOL(MEM) JGE RANGE CALC: CLR D0 MOVW ENDCOL(MEM),D0 SUBW STACOL(MEM),D0 MOVW D0,WIDTH(MEM) TOPLIN: GRAFIX CURSOR STAROW(MEM),STACOL(MEM) TCALL 38 MOVWL WIDTH(MEM),D0 BEQ 20$ DEC D0 BEQ 20$ 10$: TCALL 46 SOB D0,10$ 20$: TCALL 39 INCW STAROW(MEM) MIDLIN: CTRLC EXIT CMMW STAROW(MEM),ENDROW(MEM) BEQ BTMLIN CURSOR STAROW(MEM),STACOL(MEM) TCALL 47 CURSOR STAROW(MEM),ENDCOL(MEM) TCALL 47 INCW STAROW(MEM) BR MIDLIN BTMLIN: CURSOR ENDROW(MEM),STACOL(MEM) TCALL 40 MOVWL WIDTH(MEM),D0 BEQ 20$ DEC D0 BEQ 20$ 10$: TCALL 46 SOB D0,10$ 20$: TCALL 41 EXIT: TEXT RTN RANGE: TYPECR ?Argument out of range in BOX.SBR RTN END .