Listing of file='9P2.BAS;01' on disk='vmedia/color_graphics_2_suits-sector.ccvf'
5 REM PROGRAM 9.2 6 REM DISPLAY CREATE/EDIT/DUP 7 10 REM NOTE: INPUT ERROR CHECKING IS 11 REM NOT FULLY IDIOT PROOF 12 13 REM MAJOR VARIABLES 14 15 REM KB......LOCATION OF KEYBOARD CHARACTER. 16 17 REM KF......LOCATION OF KEYBOARD CHARACTER FLAG. 18 19 REM SC......2 LESS THAN START OF SCREEN REFRESH. 20 21 REM STP.....ASCII VALUE OF WHATEVER CHARACTER YOU WISH 22 REM TO USE TO STOP THE DRAW (EDIT) ROUTINE AND 23 REM BEGIN TO SAVE THE DISPLAY ROUTINE. I'VE 24 REM CHOSEN THE "!". 25 26 REM OD$.....NAME OF OLD DISPLAY. 27 28 REM OV$.....VERSION OF OLD DISPLAY. 29 30 REM ND$.....NAME OF NEW DISPLAY. 31 32 REM NV$.....VERSION OF NEW DISPLAY. 33 34 REM CH( )...CHARACTERS PEEKED FROM SCREEN (SEE LINE 940). 35 36 REM CO( )...CCI CODES PEEKED FROM SCREEN (SEE LINE 940). 37 38 39 REM POKE IN THE NO-ECHO PATCH 40 GOTO 63000 49 50 DIM CH(49),CO(49) 60 KB= 33278:KF= 33247:SC= 28670 70 STP= ASC ("!") 79 80 PLOT 14:REM LARGE CHARACTERS 90 PLOT 30,16,29,22,12:REM SET COLORS;FLAG OFF; CLEAR SCREEN 100 PLOT 27,11:REM SCROLL MODE 109 110 PRINT :PRINT TAB( 20)"DISPLAY CREATE/EDIT/DUP" 120 PRINT TAB( 20)"DAVID B. SUITS, 12 A.L.":PRINT 129 130 PLOT 15:REM SMALL CHARACTERS 139 140 PRINT :PRINT TAB( 15)"CREATE A NEW DISPLAY . . . . . .1" 150 PRINT :PRINT TAB( 15)"EDIT AN OLD DISPLAY . . . . . .2" 160 PRINT :PRINT TAB( 15)"DUP A DISPLAY TO ANOTHER DISK. .3" 170 PRINT 180 PRINT TAB( 35);:INPUT "YOUR CHOICE? ";CH$ 190 CH= VAL (CH$) 200 IF CH< 1OR CH< > INT (CH)OR CH> 3THEN PLOT 28,11:GOTO 180 210 ON CHGOTO 300,400,400 298 299 REM GET FILE NAME FOR THE DISPLAY 300 T$= "NEW":GOSUB 700:ND$= D$:NV$= V$ 308 309 REM CREATE AND SAVE THE DISPLAY 310 GOTO 800 397 398 REM EDIT/DUP A DISPLAY 399 REM GET FILE NAME OF OLD DISPLAY 400 PRINT 410 INPUT "PLEASE MOUNT DISK WITH DISPLAY AND PRESS RETURN ";A$ 419 420 PLOT 18:REM GREEN 430 PLOT 27,4:REM FCS 440 PRINT "DIR" 450 PLOT 27,27:REM EXIT FCS 459 460 T$= "OLD":GOSUB 700:OD$= D$:OV$= V$ 468 469 REM GET FILE NAME FOR NEW DISPLAY 470 T$= "NEW":GOSUB 700:ND$= D$:NV$= V$ 478 479 REM DOES USER WISH TO EDIT THE DISPLAY 480 IF CH= 2THEN 800 488 489 REM NO, SO JUST DUP THE DISPLAY 490 GOTO 870 698 699 REM GET NAME OF DISPLAY 700 PRINT :PRINT "WHAT IS THE SIMPLE NAME OF THE "T$" DISPLAY?" 710 PRINT "(MAXIMUM 6 CHARACTERS. DO NOT INCLUDE '.DSP' OR THE" 720 INPUT "VERSION NUMBER): ";D$ 730 IF LEN (D$)> 6OR LEFT$ (D$,1)< "A"OR LEFT$ (D$,1)> "Z"THEN 700 740 PRINT 750 INPUT "VERSION NUMBER? ";V$ 760 RETURN 798 799 REM CREATE/EDIT THE DISPLAY 800 PRINT :PRINT :PRINT 810 PRINT TAB( 15)"***** PSEUDO-CRT MODE *****" 820 PRINT :PRINT 830 PRINT "USE THE KEYBOARD JUST AS YOU WOULD IN CRT MODE." 840 PRINT "TYPE ";:PLOT STP:PRINT " WHEN YOU'RE FINISHED." 849 REM SET COLORS; HOME CURSOR 850 PRINT 860 INPUT "PRESS RETURN TO BEGIN ";A$ 868 869 REM ERASE SCREEN AND SET TO PAGE MODE 870 PLOT 12,27,24:IF CH= 1THEN 900 879 880 PLOT 27,4:PRINT "LOA "OD$".DSP;"OV$:PLOT 27,27 890 IF CH= 3THEN 900 898 899 REM MIMIC THE CRT MODE 900 POKE KF,31:REM NO-ECHO 910 POKE KB,0 919 920 A= PEEK (KB):IF A= 0THEN 920 929 930 IF A< > STPTHEN PLOT A:GOTO 910 935 936 REM END OF PSEUDO-CRT MODE 937 REM GET 1ST 49 CHARACTERS & CCI CODES OF SCREEN FOR 938 REM REDRAWING THE DISPLAY AFTER THE MESSAGE BELOW 939 REM IS PRINTED 940 FOR J= 1TO 49:CH(J)= PEEK (SC+ J+ J):CO(J)= PEEK (SC+ J+ J+ 1):NEXT 947 948 REM SMALL CHARACTERS (& TURN OFF POSSIBLE BLINK) 959 960 PRINT "TYPE E TO EDIT, OR MOUNT DISK & TYPE S TO SAVE "; 970 PLOT 26:INPUT "";A$ 978 979 REM DOES USER WISH TO SAVE THE DISPLAY? 980 IF A$= "S"THEN 1100 988 989 REM NO, SO JUST GIVE REMINDER INSTRUCTION 990 PLOT 8:PRINT "TYPE ";:PLOT STP 1000 PRINT " WHEN YOU'RE DONE EDITING"SPC( 16)"" 1008 1009 REM NO-ECHO WHILE DELAYING FOR MESSAGE 1010 POKE KF,31:FOR J= 1TO 2000:NEXT 1018 1019 REM REPLACE MESSAGE WITH DISPLAY & GOTO PSUEDO-CRT MODE 1020 GOSUB 1200:GOTO 910 1098 1099 REM REPLACE MESSAGE WITH DISPLAY 1100 GOSUB 1200 1108 1109 REM SAVE THE DISPLAY 1110 PLOT 27,4:PRINT "SAVE "ND$".DSP;"NV$" 7000 1000":PLOT 27,27 1119 1120 PLOT 27,11:REM SCROLL MODE 1128 1129 REM PUT TOP OF MEMORY BACK TO WHERE IT WAS 1130 TM= 256* PEEK (32941)+ PEEK (32940)+ 7 1140 HI= INT (TM/ 256):POKE 32941,HI 1150 POKE 32940,TM- 256* HI 1159 1160 END :REM (OR ELSE LOAD "MENU" & RUN 1197 1198 1199 REM REPLACE THE 49 CHARACTERS PEEKED FROM SCREEN 1200 FOR J= 1TO 49 1210 POKE SC+ J+ J,CH(J):POKE SC+ J+ J+ 1,CO(J) 1220 NEXT 1229 1230 RETURN 62998 62999 REM BEN BARLOW'S NO-ECHO PATCH 63000 DATA 245,175,50,255,129,241,201 63010 TM= 256* PEEK (32941)+ PEEK (32940)- 7 63020 RESTORE 63000 63030 FOR X= 1TO 7 63040 READ D:POKE TM+ X,D 63050 NEXT 63060 BR= INT (TM/ 256) 63070 POKE 33221,195:POKE 33222,TM- BR* 256+ 1 63080 POKE 33223,BR:POKE 32941,BR:POKE 32940,TM- BR* 256 63090 CLEAR 50:GOTO 50 63091 63092 REM FOR NO-ECHO, POKE 33247,31 63093 REM TO RETURN TO ECHO, POKE 33247,12. 63094 REM (AN INPUT STATEMENT OR THE END 63095 REM OF THE PROGRAM WILL ALSO DO IT).