-+-+-+-+-+-+-+-+ START OF PART 4 -+-+-+-+-+-+-+-+ X `7B begin shape 3 definition, four rotations `7D X X binshape`5B3`5D.ch := '-'; X binshape`5B3`5D.max := 3; X X binshape`5B3`5D.pointv`5B1`5D := 6;`20 X binshape`5B3`5D.sm_no`5B1`5D := 6; X binshape`5B3`5D.delta_x`5B1`5D := 0; X X binshape`5B3`5D.pointv`5B2`5D := 7;`20 X binshape`5B3`5D.sm_no`5B2`5D := 7; X binshape`5B3`5D.delta_x`5B2`5D := 0; X X binshape`5B3`5D.pointv`5B3`5D := 6;`20 X binshape`5B3`5D.sm_no`5B3`5D := 6; X binshape`5B3`5D.delta_x`5B3`5D := 0; X X binshape`5B3`5D.pointv`5B4`5D := 7;`20 X binshape`5B3`5D.sm_no`5B4`5D := 7; X binshape`5B3`5D.delta_x`5B4`5D := 0; X X `20 X `7B begin shape 4 definition, four rotations `7D X X binshape`5B4`5D.ch := '`60'; X binshape`5B4`5D.max := 3; X X binshape`5B4`5D.pointv`5B1`5D := 6;`20 X binshape`5B4`5D.sm_no`5B1`5D := 8; X binshape`5B4`5D.delta_x`5B1`5D := 0; X X binshape`5B4`5D.pointv`5B2`5D := 7;`20 X binshape`5B4`5D.sm_no`5B2`5D := 9; X binshape`5B4`5D.delta_x`5B2`5D := 0; X X binshape`5B4`5D.pointv`5B3`5D := 6;`20 X binshape`5B4`5D.sm_no`5B3`5D := 8; X binshape`5B4`5D.delta_x`5B3`5D := 0; X X binshape`5B4`5D.pointv`5B4`5D := 7;`20 X binshape`5B4`5D.sm_no`5B4`5D := 9; X binshape`5B4`5D.delta_x`5B4`5D := 0; X X X `7B begin shape 5 definition, four rotations `7D X X binshape`5B5`5D.ch := '`5B'; X binshape`5B5`5D.max := 3; X X binshape`5B5`5D.pointv`5B1`5D := 6; X binshape`5B5`5D.sm_no`5B1`5D := 10; X binshape`5B5`5D.delta_x`5B1`5D := 0; X `20 X binshape`5B5`5D.pointv`5B2`5D := 7;`20 X binshape`5B5`5D.sm_no`5B2`5D := 11; X binshape`5B5`5D.delta_x`5B2`5D := 1; X X binshape`5B5`5D.pointv`5B3`5D := 6; X binshape`5B5`5D.sm_no`5B3`5D := 12; X binshape`5B5`5D.delta_x`5B3`5D := 0; X X binshape`5B5`5D.pointv`5B4`5D := 7;`20 X binshape`5B5`5D.sm_no`5B4`5D := 13; X binshape`5B5`5D.delta_x`5B4`5D := 0; X X X `7B begin shape 6 definition, four rotations `7D X X binshape`5B6`5D.ch := ':'; X binshape`5B6`5D.max := 3; X X binshape`5B6`5D.pointv`5B3`5D := 6;`20 X binshape`5B6`5D.sm_no`5B3`5D := 16; X binshape`5B6`5D.delta_x`5B3`5D := 0; X X binshape`5B6`5D.pointv`5B4`5D := 7;`20 X binshape`5B6`5D.sm_no`5B4`5D := 17; X binshape`5B6`5D.delta_x`5B4`5D := 0; X X binshape`5B6`5D.pointv`5B1`5D := 6; X binshape`5B6`5D.sm_no`5B1`5D := 14; X binshape`5B6`5D.delta_x`5B1`5D := 0; X `20 X binshape`5B6`5D.pointv`5B2`5D := 7;`20 X binshape`5B6`5D.sm_no`5B2`5D := 15; X binshape`5B6`5D.delta_x`5B2`5D := 1; X X `7B begin shape 7 definition, four rotations `7D X `20 X binshape`5B7`5D.ch := '+'; X binshape`5B7`5D.max := 2; X X binshape`5B7`5D.pointv`5B4`5D := 6;`20 X binshape`5B7`5D.sm_no`5B4`5D := 18; X binshape`5B7`5D.delta_x`5B4`5D := 0; X X binshape`5B7`5D.pointv`5B1`5D := 6;`20 X binshape`5B7`5D.sm_no`5B1`5D := 18; X binshape`5B7`5D.delta_x`5B1`5D := 0; X X binshape`5B7`5D.pointv`5B2`5D := 6;`20 X binshape`5B7`5D.sm_no`5B2`5D := 18; X binshape`5B7`5D.delta_x`5B2`5D := 0; X X binshape`5B7`5D.pointv`5B3`5D := 6;`20 X binshape`5B7`5D.sm_no`5B3`5D := 18; X binshape`5B7`5D.delta_x`5B3`5D := 0; X XEND; X XPROCEDURE PutShape( Greebie : Greebie_Type; Clr : INTEGER ); XBEGIN X Posn( x_offset + Greebie.x_pos, y_offset+Greebie.y_pos ); X IF clr = s_draw THEN QIO_Write( Inv ); X QIO_Write( Shape`5B Greebie.shape, Greebie.rot, clr `5D ); X QIO_Write( Nml ); XEND; X XPROCEDURE PutShape_Abs( Greebie : Greebie_Type; Clr : INTEGER ); XBEGIN X Posn( Greebie.x_pos, Greebie.y_pos ); X IF clr = s_draw THEN QIO_Write( Inv ); X QIO_Write( Shape`5B Greebie.shape, Greebie.rot, clr `5D ); X QIO_Write( Nml ); XEND; X XPROCEDURE PutGrid( x,y: INTEGER; str : VARYING`5B max_str_len `5D OF CHAR ); XBEGIN X Posn( x_offset + x, y_offset + y ); X QIO_Write( str ); XEND; X XPROCEDURE DrawHoriz ( InCh : CHAR; Length : INTEGER ); XVAR Str : VARYING`5B81`5D OF CHAR; X I, J : integer; XBEGIN X Str := ''; X Str := PAD( Str, InCh, length ); X QIO_Write( Str ); XEND; X X`7B************************************************************************* V** XPROCEDURE BOX: XUpLCnrX - X upper left XUpLCnrY - Y upper left Xwidth - width of box Xlength - length of box XClr - Clear inside of box XState - 0= clear box border X 1= draw box border X***************************************************************************` V7D XPROCEDURE BOX ( UpLCnrX, UpLCnrY, width, length, Clr : integer;`20 X State : INTEGER ); X XVAR Str : VARYING`5B81`5D OF CHAR; X ChrAr: ARRAY`5B1..6,0..1`5D OF CHAR; X x, y : integer; X i : INTEGER; XBEGIN X ChrAr`5B1,1`5D := 'x';`20 X ChrAr`5B2,1`5D := 'q'; X ChrAr`5B3,1`5D := 'l'; X ChrAr`5B4,1`5D := 'k'; X ChrAr`5B5,1`5D := 'm'; X ChrAr`5B6,1`5D := 'j'; X FOR i := 1 TO 6 DO X ChrAr`5Bi,0`5D := ' ';`20 X Posn( UpLCnrX, UpLCnrY ); X QIO_Write ( VT100_esc+'(0'+ChrAr`5B3,State`5D ); X DrawHoriz( ChrAr`5B2,State`5D, width-2 ); X QIO_Write ( ChrAr`5B4,State`5D ); X FOR y := 1 TO (Length -1 ) DO BEGIN`20 X Posn( UpLCnrX, UpLCnrY + y );`20 X QIO_Write( ChrAr`5B1,State`5D ); X IF Clr = -1 THEN`20 X DrawHoriz (' ', width-2 ) X ELSE X Posn(UpLCnrX + width -1, UpLCnrY + y ); X QIO_Write( ChrAr`5B1,State`5D ); X END; X Posn( UpLCnrX, UpLCnrY + length ); X QIO_Write ( ChrAr`5B5,State`5D ); X DrawHoriz( ChrAr`5B2,State`5D, width -2); X QIO_Write ( ChrAr`5B6,State`5D+ VT100_esc + '(B' ); XEND; `20 X X XPROCEDURE Set40Screen; XVAR i : integer; XBEGIN X FOR i := 1 TO 24 DO BEGIN X Posn( 1, i ); X QIO_Write( VT100_esc+'#6' ); X END; XEND; X X XEND. X X $ CALL UNPACK TETSHAPES.PAS;1 89572626 $ v=f$verify(v) $ EXIT