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).