Home » CEEFAX disks » telesoftware1.adl » Utils/DUALSC2
Utils/DUALSC2
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » CEEFAX disks » telesoftware1.adl |
Filename: | Utils/DUALSC2 |
Read OK: | ✔ |
File size: | 0CCF bytes |
Load address: | 1900 |
Exec address: | 8023 |
File contents
10REM Demo of BBC second processor dual screen utility 20REM (C) The Micro User 30REM By Pete Gaunt 40REM Run code in I/O processor 50*RUN DUALSCN 60REM Switch to Mode 4 and set up two screens 70*CODE22,4 80REM Output to screen 2 and set graphics origin 90ELSE 2,0 100VDU29,640;512;23;8202;0;0;0; 110REM Output to screen 1 and set up origin 120*CODE1,0 130VDU29,640;512;23;8202;0;0;0; 140REM Turn off separate palettes (slight speed increase) 150*CODE20 160ON ERROR GOTO810 170VDU19,1,6;0; 180PROCget_data 190x_rot=3:y_rot=-2:z_rot=-1 200x_rot=90-x_rot:y_rot=90-y_rot:z_rot=90-z_rot 210cos_x=COSRADx_rot:sin_x=SINRADx_rot 220cos_y=COSRADy_rot:sin_y=SINRADy_rot 230cos_z=COSRADz_rot:sin_z=SINRADz_rot 240REM This could be done more briefly with an inner loop and using the 250REM OSCLI command. Done this way for clarity. 260REPEAT 270REM Output to screen 1 280*CODE1,0 290PROCrotate_coordinates 300PROCconvert_to_2D 310CLS 320PROCdraw_shape 330REM Reveal screen 1 340*CODE1,1 350REM Output to screen 2 360*CODE2,0 370PROCrotate_coordinates 380PROCconvert_to_2D 390CLS 400PROCdraw_shape 410REM Reveal screen 2 420*CODE2,1 430UNTIL FALSE 440END 450DEFPROCconvert_to_2D 460LOCAL C%,D 470FORC%=1 TO no_of_points% 480D=2500/(5000-Z(C%)) 490X_2D(C%)=X(C%)*D 500Y_2D(C%)=Y(C%)*D 510NEXT 520ENDPROC 530DEFPROCrotate_coordinates 540LOCAL C%,X,Y,Z 550FOR C%=1 TO no_of_points% 560IF x_rot<>0:X=X(C%):Y=Y(C%):Z=Z(C%):Z(C%)=Z*sin_x-Y*cos_x:Y(C%)=Y*sin_x+Z*cos_x 570IF y_rot<>0:X=X(C%):Y=Y(C%):Z=Z(C%):Z(C%)=Z*sin_y-X*cos_y:X(C%)=X*sin_y+Z*cos_y 580IF z_rot<>0:X=X(C%):Y=Y(C%):Z=Z(C%):Y(C%)=Y*sin_z-X*cos_z:X(C%)=X*sin_z+Y*cos_z 590NEXT 600ENDPROC 610DEFPROCdraw_shape 620LOCAL C% 630FOR C%=1 TO no_of_lines% 640MOVE X_2D(start_corner%(C%)),Y_2D(start_corner%(C%)) 650PLOT5,X_2D(end_corner%(C%)),Y_2D(end_corner%(C%)) 660NEXT 670ENDPROC 680DEFPROCget_data 690LOCAL C% 700READ no_of_points% 710DIM X(no_of_points%),Y(no_of_points%),Z(no_of_points%),X_2D(no_of_points%),Y_2D(no_of_points%) 720FOR C%=1 TO no_of_points% 730READ X(C%),Y(C%),Z(C%) 740NEXT 750READ no_of_lines% 760DIM start_corner%(no_of_lines%),end_corner%(no_of_lines%) 770FOR C%=1 TO no_of_lines% 780READ start_corner%(C%),end_corner%(C%) 790NEXT 800ENDPROC 810ON ERROR OFF 820*CODE1,2 830IF ERR<>17 THEN MODE7:REPORT:PRINT" at line ";ERL:END 840CLS 850CLEAR 860GOTO160 870REM Cube 880REM Co-ordinates of points (8) 890DATA 8,-560,560,560,560,560,560,560,-560,560,-560,-560,560,-560,560,-560,560,560,-560,560,-560,-560,-560,-560,-560 900REM Connections between points (12 lines) 910DATA 12,1,2,2,3,3,4,4,1,1,5,2,6,3,7,4,8,5,6,6,7,7,8,8,5 920: 930: 940REM New commands available: 950REM *CODE22,Y Switch to mode Y and set up two screens (4 to 6). 960REM *CODEX,0 Use screen X for output (X=1 or 2) 970REM *CODEX,1 Display screen X 980REM *CODEX,2 Output to and display screen X 990REM *CODE3 Copy current output screen to other screen 1000REM *CODE4 Tell the user which is the current output screen 1010REM *CODE5 Tell the user which screen is currently on display 1020REM *CODE26 Restore all windows to the whole screen 1030REM *CODE28 Restore text window only to the whole screen 1040REM *CODE24 Restore graphics window only to the whole screen 1050REM *CODE19 Palettes of two screens to be semi-independent 1060REM *CODE20 Both screens to use the same palette 1070REM 1080REM Error Messages: 1100REM 1110REM Mode! (252) You can only use Modes 4, 5 or 6. 1120REM Not set up (254) You haven't yet set up screens with *CODE22 1130REM Mode changed (235) You've changed mode since the last *CODE22
6� Demo of BBC second processor dual screen utility � (C) The Micro User � By Pete Gaunt (� Run code in I/O processor 2*RUN DUALSCN <-� Switch to Mode 4 and set up two screens F *CODE22,4 P0� Output to screen 2 and set graphics origin Z� 2,0 d�29,640;512;23;8202;0;0;0; n*� Output to screen 1 and set up origin x*CODE1,0 ��29,640;512;23;8202;0;0;0; �8� Turn off separate palettes (slight speed increase) �*CODE20 � � � �TjC ��19,1,6;0; � �get_data �x_rot=3:y_rot=-2:z_rot=-1 �0x_rot=90-x_rot:y_rot=90-y_rot:z_rot=90-z_rot �cos_x=��x_rot:sin_x=��x_rot �cos_y=��y_rot:sin_y=��y_rot �cos_z=��z_rot:sin_z=��z_rot �F� This could be done more briefly with an inner loop and using the �/� OSCLI command. Done this way for clarity. � � Output to screen 1 *CODE1,0 "�rotate_coordinates ,�convert_to_2D 6� @�draw_shape J� Reveal screen 1 T*CODE1,1 ^� Output to screen 2 h*CODE2,0 r�rotate_coordinates |�convert_to_2D �� ��draw_shape �� Reveal screen 2 �*CODE2,1 �� � �� ���convert_to_2D � � C%,D ��C%=1 � no_of_points% �D=2500/(5000-Z(C%)) �X_2D(C%)=X(C%)*D �Y_2D(C%)=Y(C%)*D �� � ��rotate_coordinates � C%,X,Y,Z &� C%=1 � no_of_points% 0R� x_rot<>0:X=X(C%):Y=Y(C%):Z=Z(C%):Z(C%)=Z*sin_x-Y*cos_x:Y(C%)=Y*sin_x+Z*cos_x :R� y_rot<>0:X=X(C%):Y=Y(C%):Z=Z(C%):Z(C%)=Z*sin_y-X*cos_y:X(C%)=X*sin_y+Z*cos_y DR� z_rot<>0:X=X(C%):Y=Y(C%):Z=Z(C%):Y(C%)=Y*sin_z-X*cos_z:X(C%)=X*sin_z+Y*cos_z N� X� b��draw_shape l� C% v� C%=1 � no_of_lines% �5� X_2D(start_corner%(C%)),Y_2D(start_corner%(C%)) �2�5,X_2D(end_corner%(C%)),Y_2D(end_corner%(C%)) �� �� ���get_data �� C% �� no_of_points% �`� X(no_of_points%),Y(no_of_points%),Z(no_of_points%),X_2D(no_of_points%),Y_2D(no_of_points%) �� C%=1 � no_of_points% �� X(C%),Y(C%),Z(C%) �� �� no_of_lines% �;� start_corner%(no_of_lines%),end_corner%(no_of_lines%) � C%=1 � no_of_lines% '� start_corner%(C%),end_corner%(C%) � � * � � � 4*CODE1,2 >#� �<>17 � �7:�:�" at line ";�:� H� R� \ �t`@ f � Cube p � Co-ordinates of points (8) zs� 8,-560,560,560,560,560,560,560,-560,560,-560,-560,560,-560,560,-560,560,560,-560,560,-560,-560,-560,-560,-560 �+� Connections between points (12 lines) �8� 12,1,2,2,3,3,4,4,1,1,5,2,6,3,7,4,8,5,6,6,7,7,8,8,5 �: �: �� New commands available: �B� *CODE22,Y Switch to mode Y and set up two screens (4 to 6). �3� *CODEX,0 Use screen X for output (X=1 or 2) �!� *CODEX,1 Display screen X �/� *CODEX,2 Output to and display screen X �;� *CODE3 Copy current output screen to other screen �A� *CODE4 Tell the user which is the current output screen �C� *CODE5 Tell the user which screen is currently on display �8� *CODE26 Restore all windows to the whole screen =� *CODE28 Restore text window only to the whole screen A� *CODE24 Restore graphics window only to the whole screen ?� *CODE19 Palettes of two screens to be semi-independent $5� *CODE20 Both screens to use the same palette .� 8� Error Messages: L� V7� Mode! (252) You can only use Modes 4, 5 or 6. `C� Not set up (254) You haven't yet set up screens with *CODE22 jD� Mode changed (235) You've changed mode since the last *CODE22 �
00000000 0d 00 0a 36 f4 20 44 65 6d 6f 20 6f 66 20 42 42 |...6. Demo of BB| 00000010 43 20 73 65 63 6f 6e 64 20 70 72 6f 63 65 73 73 |C second process| 00000020 6f 72 20 64 75 61 6c 20 73 63 72 65 65 6e 20 75 |or dual screen u| 00000030 74 69 6c 69 74 79 0d 00 14 18 f4 20 28 43 29 20 |tility..... (C) | 00000040 54 68 65 20 4d 69 63 72 6f 20 55 73 65 72 0d 00 |The Micro User..| 00000050 1e 13 f4 20 42 79 20 50 65 74 65 20 47 61 75 6e |... By Pete Gaun| 00000060 74 0d 00 28 1f f4 20 52 75 6e 20 63 6f 64 65 20 |t..(.. Run code | 00000070 69 6e 20 49 2f 4f 20 70 72 6f 63 65 73 73 6f 72 |in I/O processor| 00000080 0d 00 32 10 2a 52 55 4e 20 44 55 41 4c 53 43 4e |..2.*RUN DUALSCN| 00000090 0d 00 3c 2d f4 20 53 77 69 74 63 68 20 74 6f 20 |..<-. Switch to | 000000a0 4d 6f 64 65 20 34 20 61 6e 64 20 73 65 74 20 75 |Mode 4 and set u| 000000b0 70 20 74 77 6f 20 73 63 72 65 65 6e 73 0d 00 46 |p two screens..F| 000000c0 0d 2a 43 4f 44 45 32 32 2c 34 0d 00 50 30 f4 20 |.*CODE22,4..P0. | 000000d0 4f 75 74 70 75 74 20 74 6f 20 73 63 72 65 65 6e |Output to screen| 000000e0 20 32 20 61 6e 64 20 73 65 74 20 67 72 61 70 68 | 2 and set graph| 000000f0 69 63 73 20 6f 72 69 67 69 6e 0d 00 5a 0c 05 cc |ics origin..Z...| 00000100 0d 0d 00 32 2c 30 0d 00 64 1e ef 32 39 2c 36 34 |...2,0..d..29,64| 00000110 30 3b 35 31 32 3b 32 33 3b 38 32 30 32 3b 30 3b |0;512;23;8202;0;| 00000120 30 3b 30 3b 0d 00 6e 2a f4 20 4f 75 74 70 75 74 |0;0;..n*. Output| 00000130 20 74 6f 20 73 63 72 65 65 6e 20 31 20 61 6e 64 | to screen 1 and| 00000140 20 73 65 74 20 75 70 20 6f 72 69 67 69 6e 0d 00 | set up origin..| 00000150 78 0c 2a 43 4f 44 45 31 2c 30 0d 00 82 1e ef 32 |x.*CODE1,0.....2| 00000160 39 2c 36 34 30 3b 35 31 32 3b 32 33 3b 38 32 30 |9,640;512;23;820| 00000170 32 3b 30 3b 30 3b 30 3b 0d 00 8c 38 f4 20 54 75 |2;0;0;0;...8. Tu| 00000180 72 6e 20 6f 66 66 20 73 65 70 61 72 61 74 65 20 |rn off separate | 00000190 70 61 6c 65 74 74 65 73 20 28 73 6c 69 67 68 74 |palettes (slight| 000001a0 20 73 70 65 65 64 20 69 6e 63 72 65 61 73 65 29 | speed increase)| 000001b0 0d 00 96 0b 2a 43 4f 44 45 32 30 0d 00 a0 0d ee |....*CODE20.....| 000001c0 20 85 20 e5 8d 54 6a 43 0d 00 aa 0e ef 31 39 2c | . ..TjC.....19,| 000001d0 31 2c 36 3b 30 3b 0d 00 b4 0d f2 67 65 74 5f 64 |1,6;0;.....get_d| 000001e0 61 74 61 0d 00 be 1d 78 5f 72 6f 74 3d 33 3a 79 |ata....x_rot=3:y| 000001f0 5f 72 6f 74 3d 2d 32 3a 7a 5f 72 6f 74 3d 2d 31 |_rot=-2:z_rot=-1| 00000200 0d 00 c8 30 78 5f 72 6f 74 3d 39 30 2d 78 5f 72 |...0x_rot=90-x_r| 00000210 6f 74 3a 79 5f 72 6f 74 3d 39 30 2d 79 5f 72 6f |ot:y_rot=90-y_ro| 00000220 74 3a 7a 5f 72 6f 74 3d 39 30 2d 7a 5f 72 6f 74 |t:z_rot=90-z_rot| 00000230 0d 00 d2 1f 63 6f 73 5f 78 3d 9b b2 78 5f 72 6f |....cos_x=..x_ro| 00000240 74 3a 73 69 6e 5f 78 3d b5 b2 78 5f 72 6f 74 0d |t:sin_x=..x_rot.| 00000250 00 dc 1f 63 6f 73 5f 79 3d 9b b2 79 5f 72 6f 74 |...cos_y=..y_rot| 00000260 3a 73 69 6e 5f 79 3d b5 b2 79 5f 72 6f 74 0d 00 |:sin_y=..y_rot..| 00000270 e6 1f 63 6f 73 5f 7a 3d 9b b2 7a 5f 72 6f 74 3a |..cos_z=..z_rot:| 00000280 73 69 6e 5f 7a 3d b5 b2 7a 5f 72 6f 74 0d 00 f0 |sin_z=..z_rot...| 00000290 46 f4 20 54 68 69 73 20 63 6f 75 6c 64 20 62 65 |F. This could be| 000002a0 20 64 6f 6e 65 20 6d 6f 72 65 20 62 72 69 65 66 | done more brief| 000002b0 6c 79 20 77 69 74 68 20 61 6e 20 69 6e 6e 65 72 |ly with an inner| 000002c0 20 6c 6f 6f 70 20 61 6e 64 20 75 73 69 6e 67 20 | loop and using | 000002d0 74 68 65 0d 00 fa 2f f4 20 4f 53 43 4c 49 20 63 |the.../. OSCLI c| 000002e0 6f 6d 6d 61 6e 64 2e 20 44 6f 6e 65 20 74 68 69 |ommand. Done thi| 000002f0 73 20 77 61 79 20 66 6f 72 20 63 6c 61 72 69 74 |s way for clarit| 00000300 79 2e 0d 01 04 05 f5 0d 01 0e 18 f4 20 4f 75 74 |y........... Out| 00000310 70 75 74 20 74 6f 20 73 63 72 65 65 6e 20 31 0d |put to screen 1.| 00000320 01 18 0c 2a 43 4f 44 45 31 2c 30 0d 01 22 17 f2 |...*CODE1,0.."..| 00000330 72 6f 74 61 74 65 5f 63 6f 6f 72 64 69 6e 61 74 |rotate_coordinat| 00000340 65 73 0d 01 2c 12 f2 63 6f 6e 76 65 72 74 5f 74 |es..,..convert_t| 00000350 6f 5f 32 44 0d 01 36 05 db 0d 01 40 0f f2 64 72 |o_2D..6....@..dr| 00000360 61 77 5f 73 68 61 70 65 0d 01 4a 15 f4 20 52 65 |aw_shape..J.. Re| 00000370 76 65 61 6c 20 73 63 72 65 65 6e 20 31 0d 01 54 |veal screen 1..T| 00000380 0c 2a 43 4f 44 45 31 2c 31 0d 01 5e 18 f4 20 4f |.*CODE1,1..^.. O| 00000390 75 74 70 75 74 20 74 6f 20 73 63 72 65 65 6e 20 |utput to screen | 000003a0 32 0d 01 68 0c 2a 43 4f 44 45 32 2c 30 0d 01 72 |2..h.*CODE2,0..r| 000003b0 17 f2 72 6f 74 61 74 65 5f 63 6f 6f 72 64 69 6e |..rotate_coordin| 000003c0 61 74 65 73 0d 01 7c 12 f2 63 6f 6e 76 65 72 74 |ates..|..convert| 000003d0 5f 74 6f 5f 32 44 0d 01 86 05 db 0d 01 90 0f f2 |_to_2D..........| 000003e0 64 72 61 77 5f 73 68 61 70 65 0d 01 9a 15 f4 20 |draw_shape..... | 000003f0 52 65 76 65 61 6c 20 73 63 72 65 65 6e 20 32 0d |Reveal screen 2.| 00000400 01 a4 0c 2a 43 4f 44 45 32 2c 31 0d 01 ae 07 fd |...*CODE2,1.....| 00000410 20 a3 0d 01 b8 05 e0 0d 01 c2 13 dd f2 63 6f 6e | ............con| 00000420 76 65 72 74 5f 74 6f 5f 32 44 0d 01 cc 0a ea 20 |vert_to_2D..... | 00000430 43 25 2c 44 0d 01 d6 19 e3 43 25 3d 31 20 b8 20 |C%,D.....C%=1 . | 00000440 6e 6f 5f 6f 66 5f 70 6f 69 6e 74 73 25 0d 01 e0 |no_of_points%...| 00000450 17 44 3d 32 35 30 30 2f 28 35 30 30 30 2d 5a 28 |.D=2500/(5000-Z(| 00000460 43 25 29 29 0d 01 ea 14 58 5f 32 44 28 43 25 29 |C%))....X_2D(C%)| 00000470 3d 58 28 43 25 29 2a 44 0d 01 f4 14 59 5f 32 44 |=X(C%)*D....Y_2D| 00000480 28 43 25 29 3d 59 28 43 25 29 2a 44 0d 01 fe 05 |(C%)=Y(C%)*D....| 00000490 ed 0d 02 08 05 e1 0d 02 12 18 dd f2 72 6f 74 61 |............rota| 000004a0 74 65 5f 63 6f 6f 72 64 69 6e 61 74 65 73 0d 02 |te_coordinates..| 000004b0 1c 0e ea 20 43 25 2c 58 2c 59 2c 5a 0d 02 26 1a |... C%,X,Y,Z..&.| 000004c0 e3 20 43 25 3d 31 20 b8 20 6e 6f 5f 6f 66 5f 70 |. C%=1 . no_of_p| 000004d0 6f 69 6e 74 73 25 0d 02 30 52 e7 20 78 5f 72 6f |oints%..0R. x_ro| 000004e0 74 3c 3e 30 3a 58 3d 58 28 43 25 29 3a 59 3d 59 |t<>0:X=X(C%):Y=Y| 000004f0 28 43 25 29 3a 5a 3d 5a 28 43 25 29 3a 5a 28 43 |(C%):Z=Z(C%):Z(C| 00000500 25 29 3d 5a 2a 73 69 6e 5f 78 2d 59 2a 63 6f 73 |%)=Z*sin_x-Y*cos| 00000510 5f 78 3a 59 28 43 25 29 3d 59 2a 73 69 6e 5f 78 |_x:Y(C%)=Y*sin_x| 00000520 2b 5a 2a 63 6f 73 5f 78 0d 02 3a 52 e7 20 79 5f |+Z*cos_x..:R. y_| 00000530 72 6f 74 3c 3e 30 3a 58 3d 58 28 43 25 29 3a 59 |rot<>0:X=X(C%):Y| 00000540 3d 59 28 43 25 29 3a 5a 3d 5a 28 43 25 29 3a 5a |=Y(C%):Z=Z(C%):Z| 00000550 28 43 25 29 3d 5a 2a 73 69 6e 5f 79 2d 58 2a 63 |(C%)=Z*sin_y-X*c| 00000560 6f 73 5f 79 3a 58 28 43 25 29 3d 58 2a 73 69 6e |os_y:X(C%)=X*sin| 00000570 5f 79 2b 5a 2a 63 6f 73 5f 79 0d 02 44 52 e7 20 |_y+Z*cos_y..DR. | 00000580 7a 5f 72 6f 74 3c 3e 30 3a 58 3d 58 28 43 25 29 |z_rot<>0:X=X(C%)| 00000590 3a 59 3d 59 28 43 25 29 3a 5a 3d 5a 28 43 25 29 |:Y=Y(C%):Z=Z(C%)| 000005a0 3a 59 28 43 25 29 3d 59 2a 73 69 6e 5f 7a 2d 58 |:Y(C%)=Y*sin_z-X| 000005b0 2a 63 6f 73 5f 7a 3a 58 28 43 25 29 3d 58 2a 73 |*cos_z:X(C%)=X*s| 000005c0 69 6e 5f 7a 2b 59 2a 63 6f 73 5f 7a 0d 02 4e 05 |in_z+Y*cos_z..N.| 000005d0 ed 0d 02 58 05 e1 0d 02 62 10 dd f2 64 72 61 77 |...X....b...draw| 000005e0 5f 73 68 61 70 65 0d 02 6c 08 ea 20 43 25 0d 02 |_shape..l.. C%..| 000005f0 76 19 e3 20 43 25 3d 31 20 b8 20 6e 6f 5f 6f 66 |v.. C%=1 . no_of| 00000600 5f 6c 69 6e 65 73 25 0d 02 80 35 ec 20 58 5f 32 |_lines%...5. X_2| 00000610 44 28 73 74 61 72 74 5f 63 6f 72 6e 65 72 25 28 |D(start_corner%(| 00000620 43 25 29 29 2c 59 5f 32 44 28 73 74 61 72 74 5f |C%)),Y_2D(start_| 00000630 63 6f 72 6e 65 72 25 28 43 25 29 29 0d 02 8a 32 |corner%(C%))...2| 00000640 f0 35 2c 58 5f 32 44 28 65 6e 64 5f 63 6f 72 6e |.5,X_2D(end_corn| 00000650 65 72 25 28 43 25 29 29 2c 59 5f 32 44 28 65 6e |er%(C%)),Y_2D(en| 00000660 64 5f 63 6f 72 6e 65 72 25 28 43 25 29 29 0d 02 |d_corner%(C%))..| 00000670 94 05 ed 0d 02 9e 05 e1 0d 02 a8 0e dd f2 67 65 |..............ge| 00000680 74 5f 64 61 74 61 0d 02 b2 08 ea 20 43 25 0d 02 |t_data..... C%..| 00000690 bc 13 f3 20 6e 6f 5f 6f 66 5f 70 6f 69 6e 74 73 |... no_of_points| 000006a0 25 0d 02 c6 60 de 20 58 28 6e 6f 5f 6f 66 5f 70 |%...`. X(no_of_p| 000006b0 6f 69 6e 74 73 25 29 2c 59 28 6e 6f 5f 6f 66 5f |oints%),Y(no_of_| 000006c0 70 6f 69 6e 74 73 25 29 2c 5a 28 6e 6f 5f 6f 66 |points%),Z(no_of| 000006d0 5f 70 6f 69 6e 74 73 25 29 2c 58 5f 32 44 28 6e |_points%),X_2D(n| 000006e0 6f 5f 6f 66 5f 70 6f 69 6e 74 73 25 29 2c 59 5f |o_of_points%),Y_| 000006f0 32 44 28 6e 6f 5f 6f 66 5f 70 6f 69 6e 74 73 25 |2D(no_of_points%| 00000700 29 0d 02 d0 1a e3 20 43 25 3d 31 20 b8 20 6e 6f |)..... C%=1 . no| 00000710 5f 6f 66 5f 70 6f 69 6e 74 73 25 0d 02 da 17 f3 |_of_points%.....| 00000720 20 58 28 43 25 29 2c 59 28 43 25 29 2c 5a 28 43 | X(C%),Y(C%),Z(C| 00000730 25 29 0d 02 e4 05 ed 0d 02 ee 12 f3 20 6e 6f 5f |%).......... no_| 00000740 6f 66 5f 6c 69 6e 65 73 25 0d 02 f8 3b de 20 73 |of_lines%...;. s| 00000750 74 61 72 74 5f 63 6f 72 6e 65 72 25 28 6e 6f 5f |tart_corner%(no_| 00000760 6f 66 5f 6c 69 6e 65 73 25 29 2c 65 6e 64 5f 63 |of_lines%),end_c| 00000770 6f 72 6e 65 72 25 28 6e 6f 5f 6f 66 5f 6c 69 6e |orner%(no_of_lin| 00000780 65 73 25 29 0d 03 02 19 e3 20 43 25 3d 31 20 b8 |es%)..... C%=1 .| 00000790 20 6e 6f 5f 6f 66 5f 6c 69 6e 65 73 25 0d 03 0c | no_of_lines%...| 000007a0 27 f3 20 73 74 61 72 74 5f 63 6f 72 6e 65 72 25 |'. start_corner%| 000007b0 28 43 25 29 2c 65 6e 64 5f 63 6f 72 6e 65 72 25 |(C%),end_corner%| 000007c0 28 43 25 29 0d 03 16 05 ed 0d 03 20 05 e1 0d 03 |(C%)....... ....| 000007d0 2a 09 ee 20 85 20 87 0d 03 34 0c 2a 43 4f 44 45 |*.. . ...4.*CODE| 000007e0 31 2c 32 0d 03 3e 23 e7 20 9f 3c 3e 31 37 20 8c |1,2..>#. .<>17 .| 000007f0 20 eb 37 3a f6 3a f1 22 20 61 74 20 6c 69 6e 65 | .7:.:." at line| 00000800 20 22 3b 9e 3a e0 0d 03 48 05 db 0d 03 52 05 d8 | ";.:...H....R..| 00000810 0d 03 5c 09 e5 8d 74 60 40 0d 03 66 0a f4 20 43 |..\...t`@..f.. C| 00000820 75 62 65 0d 03 70 20 f4 20 43 6f 2d 6f 72 64 69 |ube..p . Co-ordi| 00000830 6e 61 74 65 73 20 6f 66 20 70 6f 69 6e 74 73 20 |nates of points | 00000840 28 38 29 0d 03 7a 73 dc 20 38 2c 2d 35 36 30 2c |(8)..zs. 8,-560,| 00000850 35 36 30 2c 35 36 30 2c 35 36 30 2c 35 36 30 2c |560,560,560,560,| 00000860 35 36 30 2c 35 36 30 2c 2d 35 36 30 2c 35 36 30 |560,560,-560,560| 00000870 2c 2d 35 36 30 2c 2d 35 36 30 2c 35 36 30 2c 2d |,-560,-560,560,-| 00000880 35 36 30 2c 35 36 30 2c 2d 35 36 30 2c 35 36 30 |560,560,-560,560| 00000890 2c 35 36 30 2c 2d 35 36 30 2c 35 36 30 2c 2d 35 |,560,-560,560,-5| 000008a0 36 30 2c 2d 35 36 30 2c 2d 35 36 30 2c 2d 35 36 |60,-560,-560,-56| 000008b0 30 2c 2d 35 36 30 0d 03 84 2b f4 20 43 6f 6e 6e |0,-560...+. Conn| 000008c0 65 63 74 69 6f 6e 73 20 62 65 74 77 65 65 6e 20 |ections between | 000008d0 70 6f 69 6e 74 73 20 28 31 32 20 6c 69 6e 65 73 |points (12 lines| 000008e0 29 0d 03 8e 38 dc 20 31 32 2c 31 2c 32 2c 32 2c |)...8. 12,1,2,2,| 000008f0 33 2c 33 2c 34 2c 34 2c 31 2c 31 2c 35 2c 32 2c |3,3,4,4,1,1,5,2,| 00000900 36 2c 33 2c 37 2c 34 2c 38 2c 35 2c 36 2c 36 2c |6,3,7,4,8,5,6,6,| 00000910 37 2c 37 2c 38 2c 38 2c 35 0d 03 98 05 3a 0d 03 |7,7,8,8,5....:..| 00000920 a2 05 3a 0d 03 ac 1e f4 20 20 4e 65 77 20 63 6f |..:..... New co| 00000930 6d 6d 61 6e 64 73 20 61 76 61 69 6c 61 62 6c 65 |mmands available| 00000940 3a 0d 03 b6 42 f4 20 20 2a 43 4f 44 45 32 32 2c |:...B. *CODE22,| 00000950 59 20 53 77 69 74 63 68 20 74 6f 20 6d 6f 64 65 |Y Switch to mode| 00000960 20 59 20 61 6e 64 20 73 65 74 20 75 70 20 74 77 | Y and set up tw| 00000970 6f 20 73 63 72 65 65 6e 73 20 28 34 20 74 6f 20 |o screens (4 to | 00000980 36 29 2e 0d 03 c0 33 f4 20 20 2a 43 4f 44 45 58 |6)....3. *CODEX| 00000990 2c 30 20 20 55 73 65 20 73 63 72 65 65 6e 20 58 |,0 Use screen X| 000009a0 20 66 6f 72 20 6f 75 74 70 75 74 20 28 58 3d 31 | for output (X=1| 000009b0 20 6f 72 20 32 29 0d 03 ca 21 f4 20 20 2a 43 4f | or 2)...!. *CO| 000009c0 44 45 58 2c 31 20 20 44 69 73 70 6c 61 79 20 73 |DEX,1 Display s| 000009d0 63 72 65 65 6e 20 58 0d 03 d4 2f f4 20 20 2a 43 |creen X.../. *C| 000009e0 4f 44 45 58 2c 32 20 20 4f 75 74 70 75 74 20 74 |ODEX,2 Output t| 000009f0 6f 20 61 6e 64 20 64 69 73 70 6c 61 79 20 73 63 |o and display sc| 00000a00 72 65 65 6e 20 58 0d 03 de 3b f4 20 20 2a 43 4f |reen X...;. *CO| 00000a10 44 45 33 20 20 20 20 43 6f 70 79 20 63 75 72 72 |DE3 Copy curr| 00000a20 65 6e 74 20 6f 75 74 70 75 74 20 73 63 72 65 65 |ent output scree| 00000a30 6e 20 74 6f 20 6f 74 68 65 72 20 73 63 72 65 65 |n to other scree| 00000a40 6e 0d 03 e8 41 f4 20 20 2a 43 4f 44 45 34 20 20 |n...A. *CODE4 | 00000a50 20 20 54 65 6c 6c 20 74 68 65 20 75 73 65 72 20 | Tell the user | 00000a60 77 68 69 63 68 20 69 73 20 74 68 65 20 63 75 72 |which is the cur| 00000a70 72 65 6e 74 20 6f 75 74 70 75 74 20 73 63 72 65 |rent output scre| 00000a80 65 6e 0d 03 f2 43 f4 20 20 2a 43 4f 44 45 35 20 |en...C. *CODE5 | 00000a90 20 20 20 54 65 6c 6c 20 74 68 65 20 75 73 65 72 | Tell the user| 00000aa0 20 77 68 69 63 68 20 73 63 72 65 65 6e 20 69 73 | which screen is| 00000ab0 20 63 75 72 72 65 6e 74 6c 79 20 6f 6e 20 64 69 | currently on di| 00000ac0 73 70 6c 61 79 0d 03 fc 38 f4 20 20 2a 43 4f 44 |splay...8. *COD| 00000ad0 45 32 36 20 20 20 52 65 73 74 6f 72 65 20 61 6c |E26 Restore al| 00000ae0 6c 20 77 69 6e 64 6f 77 73 20 74 6f 20 74 68 65 |l windows to the| 00000af0 20 77 68 6f 6c 65 20 73 63 72 65 65 6e 0d 04 06 | whole screen...| 00000b00 3d f4 20 20 2a 43 4f 44 45 32 38 20 20 20 52 65 |=. *CODE28 Re| 00000b10 73 74 6f 72 65 20 74 65 78 74 20 77 69 6e 64 6f |store text windo| 00000b20 77 20 6f 6e 6c 79 20 74 6f 20 74 68 65 20 77 68 |w only to the wh| 00000b30 6f 6c 65 20 73 63 72 65 65 6e 0d 04 10 41 f4 20 |ole screen...A. | 00000b40 20 2a 43 4f 44 45 32 34 20 20 20 52 65 73 74 6f | *CODE24 Resto| 00000b50 72 65 20 67 72 61 70 68 69 63 73 20 77 69 6e 64 |re graphics wind| 00000b60 6f 77 20 6f 6e 6c 79 20 74 6f 20 74 68 65 20 77 |ow only to the w| 00000b70 68 6f 6c 65 20 73 63 72 65 65 6e 0d 04 1a 3f f4 |hole screen...?.| 00000b80 20 20 2a 43 4f 44 45 31 39 20 20 20 50 61 6c 65 | *CODE19 Pale| 00000b90 74 74 65 73 20 6f 66 20 74 77 6f 20 73 63 72 65 |ttes of two scre| 00000ba0 65 6e 73 20 74 6f 20 62 65 20 73 65 6d 69 2d 69 |ens to be semi-i| 00000bb0 6e 64 65 70 65 6e 64 65 6e 74 0d 04 24 35 f4 20 |ndependent..$5. | 00000bc0 20 2a 43 4f 44 45 32 30 20 20 20 42 6f 74 68 20 | *CODE20 Both | 00000bd0 73 63 72 65 65 6e 73 20 74 6f 20 75 73 65 20 74 |screens to use t| 00000be0 68 65 20 73 61 6d 65 20 70 61 6c 65 74 74 65 0d |he same palette.| 00000bf0 04 2e 05 f4 0d 04 38 16 f4 20 20 45 72 72 6f 72 |......8.. Error| 00000c00 20 4d 65 73 73 61 67 65 73 3a 0d 04 4c 05 f4 0d | Messages:..L...| 00000c10 04 56 37 f4 20 20 4d 6f 64 65 21 20 20 20 20 28 |.V7. Mode! (| 00000c20 32 35 32 29 20 59 6f 75 20 63 61 6e 20 6f 6e 6c |252) You can onl| 00000c30 79 20 75 73 65 20 4d 6f 64 65 73 20 34 2c 20 35 |y use Modes 4, 5| 00000c40 20 6f 72 20 36 2e 0d 04 60 43 f4 20 20 4e 6f 74 | or 6...`C. Not| 00000c50 20 73 65 74 20 75 70 20 28 32 35 34 29 20 59 6f | set up (254) Yo| 00000c60 75 20 68 61 76 65 6e 27 74 20 79 65 74 20 73 65 |u haven't yet se| 00000c70 74 20 75 70 20 73 63 72 65 65 6e 73 20 77 69 74 |t up screens wit| 00000c80 68 20 2a 43 4f 44 45 32 32 0d 04 6a 44 f4 20 20 |h *CODE22..jD. | 00000c90 4d 6f 64 65 20 63 68 61 6e 67 65 64 20 28 32 33 |Mode changed (23| 00000ca0 35 29 20 59 6f 75 27 76 65 20 63 68 61 6e 67 65 |5) You've change| 00000cb0 64 20 6d 6f 64 65 20 73 69 6e 63 65 20 74 68 65 |d mode since the| 00000cc0 20 6c 61 73 74 20 2a 43 4f 44 45 32 32 0d ff | last *CODE22..| 00000ccf