GRAFIK PAS9 CODE  DEMO PASx1) end else begin PX2 := X; PY2 := Y; GetCode(X,Y,C2) end end; inline ( $CD/ $C0/ $27 ); RETURN: end; procedure EX(X,Y:integer); external $2F10; procedure WIPE; external $2F27; procedure INVERT; external $2F35type ST = string[40]; procedure DR; label RETURN; var X1 : integer absolute $2106; PX1 : integer absolute $2117; X2 : integer absolute $2104; PX2 : integer absolute $211B; Y1 : integer absolute $2100; PY1 : iX2-PX1; DY := PY2-PY1; if C and 1 <> 0 then begin Y := PY1 + DY * (WX1-PX1) div DX; X := WX1 end else if C and 2 <> 0 then begin Y := PY1 + DY * (WX2-PX1) div DX; X := WX2 end else if C anDX,DY : integer; procedure GetCode( X,Y:integer; var C:integer); begin C := 0; if XWX2 then C := C or 2; if YWY2 then C := C or 8; end; begin Bound:=fanteger absolute $2119; Y2 : integer absolute $2102; PY2 : integer absolute $211D; WX1 : integer absolute $210A; WY1 : integer absolute $210C; WX2 : integer absolute $210E; WY2 : integer absolute $2110; X,Y,C,C1,C2,d 4 <> 0 then begin X := PX1 + DX * (WY1-PY1) div DY; Y := WY1 end else if C and 8 <> 0 then begin X := PX1 + DX * (WY2-PY1) div DY; Y := WY2 end; if C = C1 then begin PX1 := X; PY1 := Y; GetCode(X,Y,C { Turbographics 1.2 --- 13. Nov. 1985 } { by Juergen Friedrich } var RANGECHECK : boolean absolute $2FED; BOUND : boolean absolute $2FEB; IOERROR : boolean absolute $2FFF; lse; PX1:=X1; PY1:=Y1; PX2:=X2; PY2:=Y2; GetCode(PX1,PY1,C1); GetCode(PX2,PY2,C2); while RangeCheck and ((C1<>0) or (C2<>0)) do begin if (C1 and C2) <> 0 then goto RETURN; Bound:=true; C := C1; if C = 0 then C := C2; DX := P; procedure SHIFT; external $2F39; procedure TEXTMODE; external $2F57; procedure GRAPHMODE; external $2F61; procedure COLOR (H:integer); external $2EF2; procedure CH; var T1 : integer absolute $2FFD; begin if (T1>359) or (T1<0r P : array[1..8191] of byte absolute $3000; H : file; begin assign(H,STR); rewrite(H); blockwrite(H,P,64); close(H); IOERROR:=ioresult<>0 end; procedure PICLOAD(STR:ST); var P : array[1..8191] of byte absolute $3000; H : file; begi (STR:ST; X,Y,Z:byte); var A : integer absolute $2135; B : byte absolute $2134; C : byte absolute $2133; D : byte absolute $2132; begin A:=addr(STR); B:=Z; C:=X; D:=Y; inline ( $CD/ $57/ $2E ) end; procedure FRAME(A:integer); $2106; Y1 : integer absolute $2100; T1 : integer absolute $2FFD; begin if Y=Y1 then if X>X1 then T1:=90 else T1:=270 else begin T1:=round(180*arctan((X-X1)/(Y-Y1))/Pi); if Y359 then T1:=T1 mod 360 else if T1<-359 then T1:=360+T1 mod 360 else if T1<0 then T1:=360+T1 end; procedure TURN(H:integer); var T1 : integer absolute $2FFD; begin T1:=T1+H; CH end; ); DRAWTW(WX1,WY2); DRAWTW(WX2,WY2); DRAWTW(WX2,WY1); DRAWTW(WX1,WY1); COLOR(M) end; procedure WINDOW( A,B,C,D:integer ); var WX1 : integer absolute $210A; WY1 : integer absolute $210C; WX2 : integer absolute $210E; WY2 : integ var WX1 : integer absolute $210A; WY1 : integer absolute $210C; WX2 : integer absolute $210E; WY2 : integer absolute $2110; M : integer absolute $2135; CO : integer absolute $2108; begin M:=CO; COLOR(A); POINT(WX1,WY1re DRAWTW (X,Y:integer); begin EX(X,Y); DR end; procedure POINT (X,Y:integer); begin EX(X,Y) end; procedure PLOT (X,Y:integer); begin EX(X,Y); EX(X,Y); DR end; function TURTLEX: integer; var X1 : integer absolute $2106; begin TURTLEX:= $32/ $D0/ $F3/ $3E/ $FB/ $32/ $D1/ $F3/ $2A/ $DE/ $F3/ $77/ $3A/ $47/ $F0/ $32/ $FF/ $1F ); PADDLE:= mem[$1FFF] end; function BUTTON(N:byte): boolean; begin BUTTON:= mem[$E061+abs(N) mod 3]>127 end; {$I-} procedure PICSAVE(STR:ST); va absolute $2135; CO : integer absolute $2108; begin PX1 := WX1 div 7; PX2 := WX2 div 7; PY1 := 1 shl (WX1 mod 7) - 1 xor 255; PY2 := 1 shl (WX2 mod 7 + 1) + 127; M:=CO; COLOR(A); inline ( $CD/ $10/ $2D ); COLOR(M) end; procedure PRINT procedure GO (H:integer); external $2C80; procedure DRAW (H:integer); begin GO(H); DR end; procedure TURNTO (H:integer); var T1 : integer absolute $2FFD; begin T1:=H; CH end; procedure TURNTW (X,Y:integer); var X1 : integer absoluteer absolute $2110; begin if (A>=0) and (A<280) and (C>=0) and (C<280) and (B>=0) and (B<192) and (D>=0) and (D<192) and (A0 end; procedure PAINT(A:INTEGER); var WX1 : integer absolute $210A;X1 end; function TURTLEY: integer; var Y1 : integer absolute $2100; begin TURTLEY:=Y1 end; function COL: byte; var CO : byte absolute $2108; begin COL:=CO end; function TURTLEANG: integer; var T1 : integer absolute $2FFD; begin TURTn assign(H,STR); reset(H); blockread(H,P,64); close(H); IOERROR:=ioresult<>0 end; {$I+} procedure SCROLL(S:byte); procedure MOV(A,B,C:integer); external $2EE3; var WX1 : integer absolute $210A; WY1 : integer absolute $210C; WX2 : i!*![!R""!!"(!*$!'*"!'ѷR0":%!':#!(*"!'""!!"(!ͨ$:#!':%!(*$!'"$!!"(!&!*!"!"!ɷ*![!R"$!*![!R""!!"(!*$!'*"!'ѷR0":%!':#!(*"!'"  --> -͟-JE:y  Compilation aborted;" li "&*2" > ""  >>" >""8 >"""" <"">> "<:*""">""""""""""""">>><"2<""">"""" "  ">"""**6"00; B : file; C : string[4]; begin C:= 'CODE'; assign(B,C); reset(B); blockread(B,A,30); close(B); inline ( $3A/ $52/ $E0 ); WIPE; GRAPHMODE; RANGECHECK:=true; IOERROR:=false; BOUND:=false; POINT(140,95); TURNTO(0); COLOR(3); WINDOW(0,0wr8' :5!:!(8(4(0W:!W:!B(*![(!J&} | ++##"! !/"' !"' !"':(! > 2'2Q'2V'2a'>82'2Q'2V'2a'*!͒$|(G"B>23!>22!:(!( >23!>@22!s.!*!)):(!_:3!W:"!G{"!![$!:!( ((0~#" !fnteger absolute $210E; WY2 : integer absolute $2110; D : array[0..191] of integer absolute $2900; A,B,I,DX,DY : integer; begin A:=WX1 div 7; B:=WX2 div 7; if WX1 mod 7<>0 then A:=A+1; DY:=WY2-WY1; if (DY>8) and (A,2""""""***""" <""">>8  80,@'D'H'P'n'! )R0 19:! !"+% !/"+% !"+%*(!)"(!*!͒$Q|(D!A*!))~fo: !O""2*&""""""""".*"""" """ ">""""""""""""6**"""""""""> >>> >00000>"><"< """<<<"""< <>"$ <""""""  "" ****,279,191) end; / $52/ $E0 ); WIPE; GRAPHMODE; RANGECHECK:=true; IOERROR:=false; BOUND:=false; POINT(140,95); TURNTO(0); COLOR(3); WINDOW(0,0oxw* !#r8 z :2!G{O9{.!: !Wٯ:y#" !fo~w* !#r8":3! ( ( :2!G :2!GyO9{.!0~#" !foxw* !#r *| ;"EntEnter PCa"-"'!"y>22|}/o|/g#*![!R"$!*![!R""!*!"!*!"!ɷ*![!R"$Ä :BE:AEĤ-͏-K-%:D=(2BE;"---------------------------------------  *< "D<2D >(!TURBO Pascal system>>( <02&,*  **>>egin DX:=B-A; if S=1 then S:=127 else S:=0; begin for I:=WY2-1 downto WY1+9 do MOV(D[I-8]+A,D[I]+A,DX) end; for I:=WY1+1 to WY1+8 do FillChar(mem[D[I]+A],DX,S) end end; procedure GRAPHINIT; var A : array[0..3839] of byte absolute $21s.!K(!["!!{$!*$!:!( ((:xO x(q#Nr8 qz݆foN9+"!:! q{.!_:!_z25!: !WC H~wr8' :5!݆fo@(C( +~w# ~w9 x( :5!<25!#+"!:! {.!!:! q{.!_:!_z25!: !WC H~OKGC?;73POPKPGPCP?P;P7P3NJFB>:62PNPJPFPBP>P:P6P2MIEA=951PMPIPEPAP=P9P5P1LHD@<840PLPHPDP@P:62(N(J(F(B(>(:(6(2MIEA=951(M(I(E(A(=(9(5(1LHD@<840(L(H(D(@(<(8(4(0r; O : array[0..10] of integer; L : array[0..10] of integer; R : array[0..10] of integer; H : array[0..10] of integer; begin for I:=0 to 10 do U[I]:= 140+(I-5)*DX; for I:=0 to 10 do H[I]:=GY+round((PY-GY)*(U[10]-U[I])/(P2-U[I forward; procedure B(I : integer); forward; procedure C(I : integer); forward; procedure D(I : integer); forward; procedure A; begin if I>0 then begin A(I-1); X := X+H; Y := Y-H; DrawTw(X,Y); B(I-1); X := X+H+H; 468:<>?ACEGIKLNPRSUWXZ[]^`acdeghiklmnopqrstuvwwxyyz{{||}}}~~~d>26>2729>228:T:Q>26>28>2729:X:P:U:W z( !R8 !R0S5!!*[/!*^,[!S!"!^,[!S!"!{(*5!KB!z> S>))0 = |( 'edure SIERPINSKI; begin I := 0; H := H0 div 4; X0 := 2*H; Y0 := 3*H; repeat I := I+1; X0 := X0-H; H := H shr 1; Y0 := Y0+H; X := X0+15; Y := Y0-20; Point(X,Y); A(I); X := X+H; Y := Y-H; DrawTw(X,Y); B(I); X := X-H; OKGC?;73OKGC?;73NJFB>:62NJFB>:62MIEA=951MIEA=951LHD@<840LHD@<840 !#%')+.02468:<>?ACEGIKLNPRSUWXZ[]^`acdeghiklmnopqrstuvwwxyyz{{||}}}~~~~~~}}}||{{zyyxwwvutsrqponmlkihge; Y := Y-H; DrawTw(X,Y); B(I-1); end; end; procedure C; begin if I>0 then begin C(I-1); X := X-H; Y := Y+H; DrawTw(X,Y); D(I-1); X := X-H-H; DrawTw(X,Y); B(I-1); X := X-H; Y := Y-H; DrawTw(X,Y); C(IDrawTw(X,Y); D(I-1); X := X+H; Y := Y+H; DrawTw(X,Y); A(I-1); end; end; procedure B; begin if I>0 then begin B(I-1); X := X-H; Y := Y-H; DrawTw(X,Y); C(I-1); Y := Y-H-H; DrawTw(X,Y); A(I-1); X := X+H$i`'͒$`iU*:!_!-N:!G:! :!G:!2!2!=2!*![ !RE!)):!( :!WyB 2$!:$!O:!#f#o!!͞-:!-!!͞-:!(~W~/w,yO~ݦW~/w,PG:!( yw,OB~w#B :!WyB 2$!:$!O:!#Y := Y-H; DrawTw(X,Y); C(I); X := X-H; Y := Y+H; DrawTw(X,Y); D(I); X := X+H; Y := Y+H; DrawTw(X,Y); until I = Order end; procedure GRID; const P1=140; P2=260; PY=120; DX=20; GY=30; var U : array[0..10] of intege program DEMO; {$I GRAFIK} const order = 5; H0 = 256; var I,J,K,L : integer; H,X,Y : integer; X0,Y0 : integer; G : real; F : array[1..4,1..4] of integer; {$A-} procedure A(I : integer); dca`^][ZXWUSRPNLKIGECA@><:86420.+)'%#!  !#%')+.02-1); end; end; procedure D; begin if I>0 then begin D(I-1); X := X+H; Y := Y+H; DrawTw(X,Y); A(I-1); Y := Y+H+H; DrawTw(X,Y); C(I-1); X := X-H; Y := Y+H; DrawTw(X,Y); D(I-1); end; end; {$A+} proc8>>2 !2_*!"!*!"!"!"! 0!/6!)nf##(~w, 2:^E,2:_^,!͢!D~#~ͨ/= < >^@ N#0O # >>O 2B͏B!tf#o!!!͞-: x>./-!\Q.:DwQ.>wQ.6- not found:4!G(> O(>>~2.:3!(:2!޶*5!~G:3!Oڒ.(8>(GyO#~Wz(3o&)))!:2!o&)|)gy݆#V#_# G(> (͒$|2!]-P1+U[10])); G:=(H[0]-GY)/(PY-GY); for I:=0 to 10 do O[I]:=round((P1-U[I])*G)+U[I]; for I:=0 to 10 do L[I]:=U[0]+round((H[I]-GY)*(P1-U[0])/(PY-GY)); for I:=0 to 10 do R[I]:=U[10]+round((H[I]-GY)*(P1-U[10])/(PY-GY)); for I:=0 to 10 do beg('CODE',1,41,2); SCROLL(1); PRINT('enthaelt alle System-',1,41,2); SCROLL(1); PRINT('routinen, und wird',1,41,2); SCROLL(1); PRINT('automatisch in den',1,41,2); SCROLL(1); PRINT('Bereich $2000-$31FF',1,41,2); SCROLL(1); PRINT('gela A:=mem[$E010] end; procedure FARBLEISTE; begin WINDOW(18,5,143,25); PAINT(3); FRAME(0); WINDOW(21,10,34,20); PAINT(0); WINDOW(42,10,55,20); PAINT(1); FRAME(0); WINDOW(63,10,76,20); PAINT(2); FRAME(0); WINDOW(84,10,97,20); FRAME(0); n S1; delay(20); S1 end; S1; delay(700); for I:=0 to 150 do begin S2; S2 end; S2 end; procedure WECHSEL; begin delay(2500); INVERT; delay(500); INVERT; delay(500); INVERT; delay(500); INVERT; delay(500); INVERT; delay(500); INVERT end; SCHRIFT; WECHSEL; BILD2; FT; COLOR(0); delay(1000); { '---------------------' } PRINT('Kurzbeschreibung:',1,145,2); POINT(7,144); DRAWTW(126,144); PRINT('TURBOGRAPHICS ist',1,129,2); PRINT('eine Grafikerweiter-',1,121,2); 5,163); DRAWTW(275,163); PRINT('Grafik',28,163,0); WINDOW(174,12,267,82); PAINT(0); WINDOW(174,88,267,158); PAINT(0); end; procedure DISKERROR; var A : integer; begin PRINT('Diskettenfehler !',1,150,0); PRINT('Checken Sie biin POINT(U[I],GY); DRAWTW(O[I],H[0]); POINT(L[I],H[I]); DRAWTW(R[I],H[I]) end end; procedure RAND(R:integer); begin COLOR(R); POINT(0,0); DRAWTW(279,0); DRAWTW(279,191); DRAWTW(0,191); DRAWTW(0,0); POINT(2,2); DRAWTW(277,2); DRAWure KEY; var A : byte; begin WINDOW(28,30,140,36); PRINT(' Taste druecken ',4,29,0); while not(KeyPressed) do; A:=mem[$E010]; PAINT(3); FT end; procedure QUADRAT(L:integer); var I : integer; begin for I:=1 to 4 do begin DRAW(L); TURN(90) enWINDOW(105,10,118,20); PAINT(4); FRAME(0); WINDOW(126,10,139,20); PAINT(5); FRAME(0) end; procedure F1; begin WINDOW(175,12,266,82) end; procedure F2; begin WINDOW(175,88,266,158) end; procedure FT; begin WINDOW(6,39,154,162) end; proced procedure BILD2; begin RANGECHECK:=false; delay(1500); L:=85; WINDOW(0,0,279,191); PAINT(2); WINDOW(2,178,276,189); PAINT(3); FRAME(0); PRINT('TURBOGRAPHICS 1.2 - Apple',7,180,2); COLOR(0); PLOT(18,187); PLOT(19,187); PLOT(18,186) PRINT('ung fuer den Apple',1,113,2); PRINT('Computer,und arbeitet',1,105,2); PRINT('unter TURBOPASCAL.',1,97,2); PRINT('TG besteht aus zwei',1,81,2); PRINT('Dateien:',1,73,2); PRINT('CODE und GRAFIK.PAS',1,57,2); KEY; PRINTtte nach dem',1,140,0); PRINT('Programmende die Diskette.',1,130,0); PRINT('Es muessen ca. 8 Kbyte fuer',1,120,0); PRINT('das File BEISPIEL frei sein.',1,110,0); PRINT('Taste druecken.',1,100,0); while not(Keypressed) do;TW(277,189); DRAWTW(2,189); DRAWTW(2,2); end; procedure SCHRIFT; procedure S1; begin PRINT('TURBOGRAPHICS 1.2',12,I,2) end; procedure S2; begin PRINT('Grafikmodul fuer den Apple',7,I,2) end; begin delay(1500); for I:=0 to 165 do begid end; procedure QUIRL(A,B,C,D:integer); var I : integer; begin COLOR(D); POINT(A,B); for I:=1 to C do begin QUADRAT(I); TURN(15) end end; procedure ABSATZ; begin for I:=1 to 12 do SCROLL(1) end; begin GRAPHINIT; GRID; RAND(1); ); POINT(4,166); DRAWTW(160,166); POINT(154,29); DRAWTW(154,165); POINT(4,37); DRAWTW(160,37); PRINT('Kommentar',7,166,0); RANGECHECK:=true; end; procedure GRAFIK; begin WINDOW(165,7,275,171); PAINT(3); FRAME(0); POINT(16; PLOT(15,185); DRAWTW(21,185); PLOT(14,184); DRAWTW(20,184); PLOT(14,183); DRAWTW(20,183); PLOT(15,182); DRAWTW(21,182); PLOT(16,181); PLOT(17,181); PLOT(19,181); PLOT(20,181); WINDOW(4,29,160,174); PAINT(3); FRAME(0); COLOR(0den.',1,41,2); SCROLL(1); SCROLL(1); KEY; PRINT('GRAFIK.PAS',1,41,2); SCROLL(1); PRINT('ist ein Sourcefile,',1,41,2); SCROLL(1); PRINT('das zusammen mit dem',1,41,2); SCROLL(1); PRINT('Anwenderprogramm com-',1,41,2); SCROLL(1); PRIATZ; { '---------------------' }; PRINT('2. APPLE-STUFF:',1,41,2); COLOR(0); PLOT(7,40); DRAWTW(112,40); SCROLL(1); SCROLL(1); SCROLL(1); PRINT('TG ermoeglicht es,',1,41,2); SCROLL(1); PRINT('den eingebauten Laut-',1,41,2); SCR; PAINT(0); FT; { '---------------------' }; PRINT('Die von TURBOGRAPHICS',1,41,2); SCROLL(1); PRINT('erzeugten farbigen',1,41,2); SCROLL(1); PRINT('Linien sind im Gegen-',1,41,2); SCROLL(1); PRINT('satz zu APPLESOFT nie',1,41,ROLL(1); PRINT(' * APPLE-STUFF',1,41,2); SCROLL(1); PRINT(' * WINDOW',1,41,2); SCROLL(1); PRINT(' * HIRES-TEXT',1,41,2); for I:=1 to 3 do SCROLL(1); KEY; ABSATZ; PRINT('1. TURTLE-GRAFIK:',1,41,2); COLOR(0); POINT(7,40); DRARINT('Turtlegrafik-Befehle:',1,41,2); COLOR(0); POINT(7,40); DRAWTW(147,40); SCROLL(1); SCROLL(1); SCROLL(1); PRINT('GO',2,41,2); SCROLL(1); PRINT('PLOT,POINT',2,41,2); SCROLL(1); PRINT('COLOR',2,41,2); SCROLL(1); PRINT('TURN,TURNTOLL(1); PRINT('fehlen wird die',1,41,2); SCROLL(1); PRINT('Kroete bewegt bzw.',1,41,2); SCROLL(1); PRINT('gedreht.',1,41,2); SCROLL(1); PRINT('So lassen sich auf',1,41,2); SCROLL(1); PRINT('einfache Weise auch',1,41,2); SCROLL(1); NT('piliert wird, und die',1,41,2); SCROLL(1); PRINT('Verbindung zu den',1,41,2); SCROLL(1); PRINT('Systemroutinen her-',1,41,2); SCROLL(1); PRINT('stellt.',1,41,2); SCROLL(1); SCROLL(1); SCROLL(1); KEY; PRINT('TG beeinhaltet insge-',1,TURNTO(0); COLOR(1); for I:=1 to 30 do begin POINT(220,47); DRAW(100); TURN(12) end; WINDOW(185,90,220,120); PAINT(3); WINDOW(217,120,260,155); PAINT(3); WINDOW(200,100,250,145); PAINT(6); F2; COLOR(6); TURNTO(0); for I:=1 to 30 do begi2); SCROLL(1); PRINT('gebrochen.',1,41,2); SCROLL(1); SCROLL(1); PRINT('Ferner koennen Linien',1,41,2); SCROLL(1); PRINT('auch im XOR-Modus ge-',1,41,2); SCROLL(1); PRINT('zeichnet werden.',1,41,2); for I:=1 to 6 do SCROLL(1); F1; WTW(119,40); SCROLL(1); SCROLL(1); { '---------------------' } PRINT('Turtlegrafik soll be-',1,41,2); SCROLL(1); PRINT('deuten: Auf Ihrem',1,41,2); SCROLL(1); PRINT('Bildschirm befindet',1,41,2); SCROLL(1); PRINT('sich auf eineO,TURNTW',2,41,2); SCROLL(1); PRINT('DRAW,DRAWTW',2,41,2); SCROLL(1); PRINT('WIPE,INVERT,SHIFT',2,41,2); SCROLL(1); PRINT('TURTLEX,TURTLEY,COL',2,41,2); SCROLL(1); PRINT('TURTLEANG,SCREENBIT',2,41,2); SCROLL(1); SCROLL(1); KEY; ABS PRINT('komplizierte geomet-',1,41,2); SCROLL(1); PRINT('rische Muster erzeu-',1,41,2); SCROLL(1); PRINT('gen.',1,41,2); for I:=1 to 5 do SCROLL(1); KEY; GRAFIK; F1; QUIRL(220,47,35,3); F2; QUIRL(220,123,35,3); KEY; F2; PAINT(0); F141,2); SCROLL(1); PRINT('samt 29 neue Grafik-',1,41,2); SCROLL(1); PRINT('befehle, die folgen-',1,41,2); SCROLL(1); PRINT('de Bereiche abdecken:',1,41,2); SCROLL(1); for I:=1 to 3 do SCROLL(1); PRINT(' * TURTLE-GRAFIK',1,41,2); SCn POINT(220,123); DRAW(100); TURN(12) end; KEY; PRINT('Alle Apple-Farben',1,73,2); PRINT('werden unterstuetzt.',1,65,2); FARBLEISTE; KEY; F1; PAINT(0); F2; PAINT(0); FT; SCROLL(1); SCROLL(1); { '---------------------' }; P Alle Punkte,',1,41,2); SCROLL(1); PRINT('ueber die die Kroete',1,41,2); SCROLL(1); PRINT('geht,werden gesetzt.',1,41,2); SCROLL(1); SCROLL(1); KEY; SCROLL(1); { '---------------------' }; PRINT('Mit einfachen Be-',1,41,2); SCRr be-',1,41,2); SCROLL(1); PRINT('stimmten Position',1,41,2); SCROLL(1); PRINT('eine "Schildkroete"',1,41,2); SCROLL(1); PRINT('(Turtle),die in eine',1,41,2); SCROLL(1); PRINT('bestimmte Richtung',1,41,2); SCROLL(1); PRINT('schaut.OLL(1); PRINT('sprecher zu benutzen.',1,41,2); SCROLL(1); SCROLL(1); PRINT('SOUND(H,D) erzeugt',1,41,2); SCROLL(1); PRINT('einen Ton mit der',1,41,2); SCROLL(1); PRINT('Dauer D und der',1,41,2); SCROLL(1); PRINT('Tonhoehe H.',1,41, um-',1,41,2); SCROLL(1); PRINT('fasst alle 96 Zeichen',1,41,2); SCROLL(1); PRINT('des Apple.',1,41,2); for I:=1 to 3 do SCROLL(1); KEY; PRINT(' !"#$%&''()*+,',25,148,2); PRINT('-./0123456789',25,140,2); PRINT(':;<=>?@ABCDEF',25,132); DRAWTW(267,82); POINT(267,88); DRAWTW(267,158); F1; PAINT(6); delay(400); F2; PAINT(6); delay(400); F1; PAINT(0); delay(400); F2; PAINT(5); delay(400); F1; PAINT(1); delay(400); F2; PAINT(4); delay(400); F1; PAINT(2); delay(40(' SOUND(A,B)',1,57,2); PRINT(' end',1,49,2); PRINT('end;',1,41,2); KEY; for I:=1 to 30 do SOUND(4+random(80),random(35)); KEY; for I:=1 to 5 do SCROLL(1); PRINT('Ferner koennen Sie',1,49,2); SCROLL(1); PRINT('mittels PADD PRINT('WINDOW',2,97,2); PRINT('SCROLL',2,89,2); KEY; ABSATZ; PRINT('4. HIRES-TEXT:',1,41,2); POINT(7,40); DRAWTW(105,40); SCROLL(1); SCROLL(1); { '---------------------' }; PRINT('Neben Grafiken kann',1,41,2); SCROLLunkte, die ueber das',1,41,2); SCROLL(1); PRINT('Fenster hinaus-',1,41,2); SCROLL(1); PRINT('reichen, werden',1,41,2); SCROLL(1); PRINT('unterdrueckt.',1,41,2); SCROLL(1); KEY; F1; QUIRL(220,47,65,1); F2; QUIRL(220,123,65,5); KEY; 2); for I:=1 to 3 do SCROLL(1); KEY; SCROLL(1); PRINT('Beispiel:',1,41,2); COLOR(0); PLOT(7,40); DRAWTW(70,40); for I:=1 to 14 do SCROLL(1); PRINT('SOUND(10,50)',1,137,2); KEY; SOUND(10,50); KEY; PRINT('SOUND(80,20)',1,121,2); KEY; ein Fenster zur',1,105,2); PRINT('Textausgabe benutzt',1,97,2); PRINT('werden, und ist der',1,89,2); PRINT('Text groesser als das',1,81,2); PRINT('Fenster, so koennen',1,73,2); PRINT('mit SCROLL neue',1,65,2); PRINT('Zeilen n0); F2; PAINT(3); delay(400); F1; PAINT(3); delay(400); F2; PAINT(2); delay(400); F1; PAINT(4); delay(400); F2; PAINT(1); delay(400); F1; PAINT(5); delay(400); F2; PAINT(0); delay(400); F1; PAINT(0); delay(700); PRINT('SollLE und',1,49,2); SCROLL(1); PRINT('BUTTON die Werte von',1,49,2); SCROLL(1); PRINT('bis zu 4 Signalgebern',1,49,2); SCROLL(1); PRINT('abfragen.',1,49,2); SCROLL(1); SCROLL(1); KEY; ABSATZ; PRINT('3. WINDOW:',1,41,2); POINT(7,4(1); PRINT('TG auch Text ver-',1,41,2); SCROLL(1); PRINT('arbeiten. Mischen von',1,41,2); SCROLL(1); PRINT('Text und Grafik ist',1,41,2); SCROLL(1); PRINT('problemlos moeglich.',1,41,2); SCROLL(1); SCROLL(1); PRINT('Der Zeichensatzfor I:=1 to 15 do SCROLL(1); { '---------------------' }; PRINT('Die Fenster koennen',1,137,2); PRINT('mit jeder beliebigen',1,129,2); PRINT('Farbe gefuellt werden',1,121,2); KEY; COLOR(0); WINDOW(0,0,279,191); POINT(267,1 SOUND(80,20); KEY; PRINT('procedure TOENE;',1,105,2); PRINT('begin',1,97,2); PRINT(' for I:=1 to 30 do',1,89,2); PRINT(' begin',1,81,2); PRINT(' A:= 4+random(80);',1,73,2); PRINT(' B:= random(35);',1,65,2); PRINTachgeschoben',1,57,2); PRINT('werden.',1,49,2); KEY; for I:=1 to 14 do begin SCROLL(1); delay(250) end; PRINT('WINDOW-Befehle:',1,137,2); COLOR(0); POINT(7,136); DRAWTW(112,136); PRINT('PAINT',2,113,2); PRINT('FRAME',2,105,2);re Grafikaus-',1,41,2); SCROLL(1); PRINT('gaben zu reservieren.',1,41,2); SCROLL(1); PRINT('Dieser Teil heisst',1,41,2); SCROLL(1); PRINT('Fenster (Window).',1,41,2); SCROLL(1); PRINT('Alle Linien oder',1,41,2); SCROLL(1); PRINT('P0); DRAWTW(77,40); SCROLL(1); SCROLL(1); { '---------------------' }; PRINT('TG erlaubt es Ihnen,',1,41,2); SCROLL(1); PRINT('einen bestimmten',1,41,2); SCROLL(1); PRINT('Teil des Bildschirms',1,41,2); SCROLL(1); PRINT('fuer Ih2,2); PRINT('GHIJKLMNOPQRS',25,124,2); PRINT('TUVWXYZ[\]^_ ',25,116,2); PRINT('abcdefghijklm',25,108,2); PRINT('nopqrstuvwxyz',25,100,2); PRINT('{|}~',25,92,2); KEY; F2; PAINT(0); FT; ABSATZ; ABSATZ; { '--------------RROR; KEY; ABSATZ; ABSATZ; BILD2; PRINT('Ende des Demonstra-',1,121,2); PRINT('tionsprogramms.',1,105,2); KEY; WIPE; TEXTMODE; end. -------' } PRINT('Diskettenspeicher:',1,137,2); POINT(7,136); DRAWTW(133,136); PRINT('Die mittels TG er-',1,121,2); PRINT('zeugten Grafiken',1,113,2); PRINT('koennen ueber die Be-',1,105,2); PRINT('fehle PICSAVE,PICLOAD',1,97,2); PRINT('abgespeichert und',1,89,2); PRINT('geladen werden.',1,81,2); KEY; PICSAVE('BEISPIEL'); if IOERROR then DISKERROR; FRAME(3); WIPE; WINDOW(0,0,279,191); COLOR(3); Sierpinski; PICLOAD('BEISPIEL'); if IOERROR then DISKE