Program Asciibox; Uses CRT; {ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ} Procedure Horizontal_Line (HLLC,HLRC,HLR: Integer); {Puts a Ansi Horizontal Lines inside Boxes} { HLLC = Horizontal Line Left Column } { HLRC = Horizontal Line Right Column } { HLR = Horizontal Line Row } Var I : Integer; Begin GotoXY (HLLC,HLR); Write ('Ì'); For I := HLLC+1 to HLRC-1 do Write ('Í'); Write ('¹'); End; {ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ} Procedure Vertical_Line (VLTR,VLBR,VLC: Integer); {Puts a Ansi Vertiacl Lines inside Boxes} { VLTR = Vertical Line Top Row } { VLBR = Vertical Line Bottom Row } { VLC = Vertical Line Column } Var I : Integer; Begin GotoXY (VLC,VLTR); Write ('Ë'); For I := VLTR+1 to VLBR-1 do Begin GotoXY (VLC,I); Write ('º'); End; GotoXY (VLC,VLBR); Write ('Ê'); End; {ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ} Procedure Intersect_Line (IR,IC: Integer); {Puts a Ansi Intersection} { IR = Intersection Row } { IC = Intersection Column } Var I : Integer; Begin GotoXY (IC,IR); Write ('Î'); End; {ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ} Procedure Box (BULC,BULR,BLRC,BLRR: Integer); {Puts a Ansi Character BOX on the screen at the specIfIed coordInates} { BULC = Box Upper Left Column } { BULR = Box Upper Left Row } { BLRC = Box Lower Right Column } { BLRR = Box Lower Right Row } Var I : Integer; BegIn GotoXY (BULC,BULR); Write ('É'); // This is a Character #201 for I := BULC+1 to BLRC-1 do Write ('Í'); Write ('»'); For I := 1 to BLRR-BULR-1 do BegIn GotoXY (BLRC,I+BULR); Write ('º'); End; GotoXY (BLRC,BLRR); Write ('¼'); For I := BLRC-1 downto BULC+1 do BegIn GotoXY (I,BLRR); Write ('Í'); End; GotoXY (BULC,BLRR); Write ('È'); For I := BLRR-1 downto BULR+1 do BegIn GotoXY (BULC,I); Write ('º'); End; End; {ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ} Procedure ClearBox (CBULR,CBULC,CBLRR,CBLRC: Integer); {Clears a Portion of the screen at the specIfIed coordInates} { CBULC = Clear Box Upper Left Column } { CBULR = Clear Box Upper Left Row } { CBLRC = Clear Box Lower Right Column } { CBLRR = Clear Box Lower Right Row } var R,I : Integer; BegIn For R := CBULR to CBLRR do Begin GOTOXY (CBULC,R); For I := CBULC to CBLRC do Write (' '); end; end; {ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ} Begin SetTextCodePage(output,cp_utf8); Clrscr; Box(10,5,40,30); Vertical_Line(5,30,25); Horizontal_line(10,40,15); Intersect_Line(15,25); End. {ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ}