Listing of file='MENU.BAS;16' on disk='vmedia/word_king_v1.6-sector.ccvf'
0 REM !,fb$ )#''' V1.6LC DO NOT REMOVE 100 REM 110 REM COPYRIGHT:B.F.MULDOWNEY 5 DIXON ST. WANGARATTA 13 MAR 1982 120 REM 130 POKE 61440,PEEK (33027) 140 GOSUB 5100:PLOT 15,6,2 150 POKE 33283,0:POKE 33284,176:PLOT 27,4:PRINT "LOA PATCH.PRG":PLOT 27,27 160 POKE 32940,255:POKE 32941,175:REM T OF M AFFF 170 POKE 33289,255 180 Z= CALL (3):REM ENABLE GETCHR AND OVERLAY 190 CLEAR 500:Z9= PEEK (61440) 200 DIM C(127),B$(9),R(7) 210 B0= 11* 4096:REM 0B000H 220 FS= PEEK (B0+ 3)+ PEEK (B0+ 4)* 256:REM FILSPC 230 CN= PEEK (B0+ 5)+ PEEK (B0+ 6)* 256:REM COPNO 240 DD= PEEK (B0+ 7)+ PEEK (B0+ 8)* 256:REM VARIABLES 250 RF= 33439:FOR I= 0TO 7:R(I)= PEEK (RF+ I)- 32:NEXT :REM GET PRAMS FROM LINE 0 260 FOR I= 0TO 9:READ B$(I):NEXT I:DATA 14A,60,7A,94,AE,C8,E2,FC,116,130 270 DEF FN C(X)= SS+ 2* IX+ 128* IY+ X 280 EM= 65536:OF= 24576:SS= OF:SP= 25344:SB= SP+ OF 290 ZE= 0:RD= 1:GR= 2:YE= 3:CY= 6:OS= 127 300 CU= 6:CD= 31:CL= 0:CR= 63:IX= CL:IY= CU:IT= DD+ 14 310 P$= " 6300-6FFF":Q$= " C300-CFFF" 320 FOR I= 0TO 127:READ C(I):NEXT I 330 DATA 0,0,0,3,4,0,0,0,6,21,7,8,9,10,22,0,0,11,0,12,13,14,15,0,0,16,17,18,19,0,0,0 340 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 350 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 360 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 370 DATA 1,1,1,1,0 380 GOSUB 5200 390 PN= 1:GOSUB 5500 400 GOTO 1600 1000 PLOT 3,IX,IY:C= CALL (0) 1010 IF C= 150THEN 1500 1020 IF C> OSTHEN 1000 1030 IF C(C)< 1THEN 1000 1040 ON C(C)GOTO 1100,1200,1300,1400,1000,1600,1700,1800,1900,2000 1050 ON C(C)- 10GOTO 2100,2200,2300,2400,2500,2600,2700,2800,2900,1000,3000,3100 1060 GOTO 1000 1099 REM ALL CHRS EXCEPT LC ALPHA 1100 CP= FN C(0):POKE CP,C:POKE CP+ 1,GR 1110 IX= IX+ 1:IF IX= < CRTHEN 1000 1120 IX= CL:IY= IY+ 1:IF IY= < CDTHEN 1000 1130 GOSUB 5700:GOTO 1000 1199 REM LC CHARACTERS IN CYAN 1200 CP= FN C(0):POKE CP,C- 32:POKE CP+ 1,CY 1210 GOTO 1110 1299 REM INS LINE 1300 M$= "NO OF LINES? ## ":GOSUB 4900:X= CH:GOSUB 4900:X= 10* X+ CH:IF X< 1OR X> 26THEN 1000 1310 GOSUB 5600:FOR I= 0TO R(6)- PN:B$= B$(R(6)- I):GOSUB 5900:Z= Z+ IY- 5:GOSUB 6000 1320 PLOT 27,4:PRINT "REA "+ B$+ P$:PLOT 27,27:Z= Z+ X:GOSUB 6000 1330 PLOT 27,4:PRINT "WRI "+ B$+ P$:PLOT 27,27:NEXT I 1340 GOSUB 5500:FOR I= 1TO X:IX= CL:PLOT 3,CL,IY+ I:PRINT SPC( CR- CL)" ":NEXT I 1350 GOSUB 4130:GOTO 1000 1399 REM DEL LINE 1400 M$= "NO OF LINES? ## ":GOSUB 4900:X= CH:GOSUB 4900:X= 10* X+ CH:IF X< 1OR X> 26THEN 1000 1410 GOSUB 5600:FOR I= 0TO R(6)- PN:B$= B$(PN+ I):GOSUB 5900:Z= Z+ IY- 5+ X:GOSUB 6000 1420 PLOT 27,4:PRINT "REA "+ B$+ P$:PLOT 27,27:Z= Z- X:GOSUB 6000 1430 PLOT 27,4:PRINT "WRI "+ B$+ P$:PLOT 27,27:NEXT I 1440 GOSUB 5500 1450 GOSUB 4130:GOTO 1000 1499 REM PRINT A DOC FILE 1500 GOSUB 4000:PRINT "DOCUMENT FILE NAME? ";:FP= FS+ 2:POKE FS,49:POKE FS+ 1,58 1510 Z= CALL (0):Z= Z+ (Z> 96)* 32:PRINT CHR$ (Z);:IF Z= 13THEN 1530 1520 POKE FP,Z:FP= FP+ 1:GOTO 1510 1530 POKE FP,0 1540 GOSUB 4000:PRINT "INSERT 'DOC' DISK INTO DRIVE 1: AND PRESS ENTER ";:Z= CALL (0) 1550 GOSUB 4000:PRINT "HOW MANY COPIES? (1-9) ";:Z= CALL (0):POKE CN,Z- 48:PRINT CHR$ (Z); 1560 FOR I= 1TO 300:NEXT I:GOSUB 4000:PRINT "PRINTING IN PROGRESS "; 1570 Z= CALL (2):REM PRINT FILE 1580 GOSUB 4000:PRINT "PRINT ENDED - PRESS ENTER FOR EDITOR ";:Z= CALL (0) 1590 GOSUB 4000:GOTO 1000 1599 REM HOME 1600 IX= CL:IY= CU:GOTO 1000 1699 REM LINEFEED 1700 IY= IY+ 1:IF IY> CDTHEN GOSUB 5700 1710 GOTO 1000 1799 REM ERASE LN 1800 IX= CL:PLOT 3,CL,IY,11:GOTO 1000 1899 REM ERASE PAGE 1900 FOR I= CUTO CD:PLOT 3,CL,I,11:NEXT I:GOTO 1600 1999 REM RET 2000 IX= CL:IY= IY+ 1:IF IY> CDTHEN IY= IY- 1 2010 GOTO 1000 2099 REM PUT 2100 RESTORE 2180:FOR I= 0TO 7:PLOT 3,0,3:READ X$:PRINT X$; 2105 Z= CALL (0):PRINT CHR$ (Z+ (Z> 96)* 32); 2110 IF Z= 13THEN 2175 2115 IF I= 0THEN 2145 2120 IF I= 5THEN 2165 2125 R(I)= Z- 48:IF R(I)= 0THEN 2175 2130 Z= CALL (0):PRINT CHR$ (Z);:IF Z= 13THEN 2175 2135 R(I)= 10* R(I)+ Z- 48:Z= CALL (0):PRINT CHR$ (Z);:IF Z= 13THEN 2175 2140 R(I)= 10* R(I)+ Z- 48:GOTO 2175 2145 IF Z= 100THEN R(0)= 1:GOTO 2175 2150 IF Z= 112THEN R(0)= 2:GOTO 2175 2155 IF Z= 115THEN R(0)= 3:GOTO 2175 2160 R(0)= 4:GOTO 2175 2165 IF Z= 110THEN R(5)= 1:GOTO 2175 2170 R(5)= 0 2175 GOSUB 4000:NEXT I 2180 DATA MODE-DUPLEX;PRINTER;SCREEN OR FILE? ,LEFT MARGIN? ,RIGHT MARGIN? ,"LINES/PAGE? " 2185 DATA PARA INDENT? ,RIGHT JUSTIFY Y/N? ,LAST PAGE? ,"BAUD RATE CODE? " 2190 FOR I= 0TO 7:POKE RF+ I,R(I)+ 32:NEXT :GOSUB 5300:GOTO 1000 2199 REM SAVE 2200 M$= "PAGE NO? ":GOSUB 4900:PN= CH 2210 PLOT 27,4:PRINT "WRITE "+ B$(PN)+ P$:PLOT 27,27:GOTO 1000 2299 REM LOAD 2300 GOSUB 5400:GOSUB 4000 2310 M$= "PAGE NO? ":GOSUB 4900:PN= CH:IF PN< 1OR PN> 9THEN 2310 2320 GOSUB 4200:PLOT 27,4:PRINT "READ "+ B$(PN)+ P$:PLOT 27,27 2330 GOSUB 4000:GOTO 1000 2399 REM POKE (COPY) 2400 GOSUB 5400:GOSUB 4000 2405 M$= "PAGE FROM? ":GOSUB 4900:A1= CH:IF A1< 1OR A1> 9THEN 2405 2410 PN= A1:GOSUB 4200:PLOT 27,4:PRINT "READ "+ B$(PN)+ P$ 2415 PRINT "READ "+ B$(PN)+ Q$:PLOT 27,27 2420 M$= "START LINE? ## ":GOSUB 4900:A2= CH:GOSUB 4900:A2= 10* A2+ CH:IF A2< 1OR A2> 26THEN 2420 2425 M$= "HOW MANY LINES? ## ":GOSUB 4900:A3= CH:GOSUB 4900:A3= 10* A3+ CH:IF A3< 1OR A3> 26THEN 2425 2430 IF (A2+ A3)> 27THEN 2425 2435 M$= "PAGE TO? ":GOSUB 4900:A4= CH:IF A4< 1OR A4> 9THEN 2435 2440 PN= A4:GOSUB 4200:PLOT 27,4:PRINT "READ "+ B$(PN)+ P$:PLOT 27,27 2445 M$= "START LINE? ## ":GOSUB 4900:A5= CH:GOSUB 4900:A5= 10* A5+ CH:IF A5< 1OR A5> 26THEN 2445 2450 IF (A5+ A3)> 27THEN 2445 2455 A0= 12* 4096+ 3* 256:A6= (A2- 1)* 128+ A0:A7= A3* 128 2460 B$= B$(PN):GOSUB 5900:Z= Z+ A5- 1:GOSUB 6000:B1$= B$ 2465 Z= A6:GOSUB 6000:B2$= B$ 2470 Z= A7:GOSUB 6000:B3$= B$ 2475 PLOT 27,4:PRINT "WRI "+ B1$+ " "+ B2$+ " "+ B3$ 2480 PRINT "REA "+ B$(PN)+ " "+ P$:PLOT 27,27 2485 GOTO 1000 2499 REM PRINT 2500 PLOT 27,18,R(7):GOSUB 5400:GOSUB 4000 2510 IF R(0)> 2THEN MC= 1:GOTO 2530 2520 GOSUB 4300:GOSUB 4000 2530 POKE DD,R(0):FOR I= 6TO 15:POKE DD+ I,0:NEXT I:POKE DD+ 11,R(1) 2540 II= PN 2550 CP= FN C(0) 2560 IF R(0)= 1OR R(0)= 3THEN PLOT 12,27,11:GOTO 2590 2570 PLOT 3,0,3 2580 IF R(0)= 4THEN GOSUB 4740 2590 GOTO 4400 2599 REM ----> 2600 IX= IX+ 1:IF IX> CRTHEN IX= IX- 1 2610 GOTO 1000 2699 REM <---- 2700 IX= IX- 1:IF IX< CLTHEN IX= CR:IY= IY- 1 2710 IF IY< CUTHEN IY= CU 2720 GOTO 1000 2799 REM ESC 2800 PLOT 3,0,3:PRINT "L,P,C,H,T##,N,E,S,W OR '.'":PLOT 3,IX,IY 2810 C= CALL (0):IF C= 27THEN GOSUB 4000:GOTO 6100 2820 IF C> 89THEN C= C- 32 2830 IF C= 76OR C= 80OR C= 67OR C= 72OR C= 84OR C= 78OR C= 69OR C= 83OR C= 87OR C= 46THEN 2850 2840 GOTO 2800 2850 X= 0:IF C= 84THEN X= 2 2860 GOSUB 4100 2870 IF X< > 0THEN C= CALL (0):IF C< 48OR C> 57THEN 2870 2880 IF X< > 0THEN GOSUB 4100:X= X- 1:GOTO 2870 2890 GOSUB 4000:GOTO 1000 2899 REM CURSOR UP 2900 IY= IY- 1:IF IY< CUTHEN GOSUB 5800 2910 GOTO 1000 2999 REM TAB 3000 IX= 8* (INT (IX/ 8)+ 1):IF IX> CRTHEN IX= CR 3010 GOTO 1000 3099 REM A7 ON (OVERSCORE) 3100 PLOT 3,0,3:PRINT "ENTER OVERSCORE CHAR":PLOT 3,IX,IY 3110 C= CALL (0):IF C< 33OR C> 126THEN 3110 3120 CP= FN C(0):POKE CP,C:POKE CP+ 1,YE:GOSUB 4110:GOSUB 4000:GOTO 1000 4000 PLOT 3,0,3,11:RETURN 4100 CP= FN C(0):POKE CP,C:POKE CP+ 1,RD 4110 IX= IX+ 1:IF IX> CRTHEN IY= IY+ 1:IX= CL 4120 IF IY> CDTHEN IY= IY- 1 4130 PLOT 3,IX,IY:RETURN 4200 PLOT 3,62,2:PRINT PN:RETURN 4300 M$= "NUMBER OF COPIES #? ":GOSUB 4900:MC= CH:IF MC< 1OR MC> 9THEN MC= 1 4310 RETURN 4399 REM PRINTOUT 4400 FOR PN= IITO R(6) 4410 PLOT 27,4:PRINT "READ "+ B$(PN)+ Q$:PLOT 27,27 4420 IF PN< > IIAND EX= 0AND R(0)= 2THEN GOSUB 5500 4430 IF R(0)= 2THEN GOSUB 4200 4440 RR= CALL (CP) 4450 RR= RR+ EM- OF 4460 EX= PEEK (IT):L1= INT ((RR- SP)/ 128)+ 1:IF L1= 27THEN L1= 26 4470 IF R(0)= 2THEN GOSUB 4000 4480 ON EXGOTO 4500,4540,4610,4660,4700 4490 REM EOS 4500 CP= SP:NEXT PN 4510 REM LAST PAGE 4520 PN= PN- 1 4530 REM E 4540 MC= MC- 1:IF MC= 0THEN 4580 4550 PRINT "PRESS ENTER FOR NEXT COPY ";:Z= CALL (0):PRINT 4560 IF R(0)= 2THEN GOSUB 4000 4570 PN= II:GOTO 2530 4580 M$= " PRINT ENDED - PRESS ENTER FOR EDITOR ":GOSUB 4800 4590 SD= 1:GOSUB 5200:PN= II:GOSUB 5500:GOTO 1600 4600 REM N 4610 M$= " NEW PAGE....PRESS ENTER FOR NEXT PAGE ":GOSUB 4800 4620 IF R(0)= 2THEN GOSUB 4000 4630 POKE DD+ 13,0 4640 CP= RR+ 2:GOTO 4440 4650 REM W 4660 M$= " WAIT FOUND....PRESS ENTER TO GO ON ":GOSUB 4800 4670 IF R(0)= 2THEN GOSUB 4000 4680 CP= RR+ 2:GOTO 4440 4690 REM L 4700 M$= " PAGE FULL - PRESS ENTER WHEN READY ":GOSUB 4800 4710 POKE DD+ 11,PEEK (DD+ 1) 4720 IF R(0)= 2THEN GOSUB 4000 4730 CP= RR:GOTO 4440 4739 REM SET UP DOC FILE FOR OUTPUT 4740 GOSUB 4000:PRINT "INSERT 'DOC' DISK INTO DRIVE 1: AND PRESS ENTER ";:Z= CALL (0) 4750 GOSUB 4000:PRINT "DOCUMENT FILE NAME? ";:FP= FS+ 2:POKE FS,49:POKE FS+ 1,58 4760 Z= CALL (0):Z= Z+ (Z> 96)* 32:PRINT CHR$ (Z);:IF Z= 13THEN 4780 4770 POKE FP,Z:FP= FP+ 1:GOTO 4760 4780 POKE FP,0 4790 Z= CALL (1):RETURN 4800 PRINT "PAGE"PN" LINE"L1;M$;:Y= CALL (0):PRINT :RETURN 4900 PLOT 3,0,3:PRINT M$;:CH= CALL (0):CH= CH- 48:GOSUB 4000:RETURN 5000 Z1= INT (Z/ 256):Z2= Z- 256* Z1:RETURN 5100 PLOT 12,14,6,8,3,0,13 5110 PRINT " C O M P U C O L O R W O R D P R O C E S S O R " 5120 PLOT 8:RETURN 5200 PLOT 12,8:PRINT "MODE :"TAB( 16)"LEFT MARGIN:"TAB( 33)"RIGHT MARGIN :"TAB( 52) 5210 PRINT "BAUD RATE:" 5220 PRINT "LINES/PAGE:"TAB( 16)"PARA INDENT:"TAB( 33)"RIGHT JUSTIFY:"TAB( 52)"LAST PAGE:" 5230 PRINT TAB( 52)"THIS PAGE:" 5240 PLOT 3,0,5:PRINT "1234567891123456789212345678931234567894" 5250 PLOT 3,40,5:PRINT "123456789512345678961234" 5260 PLOT 27,24 5300 PLOT 3,28,0:PRINT R(1):PLOT 3,47,0:PRINT R(2):PLOT 3,62,0:PRINT R(7) 5310 PLOT 3,11,1:PRINT R(3):PLOT 3,28,1:PRINT R(4):PLOT 3,62,1:PRINT R(6) 5320 PLOT 3,47,1:IF R(5)= 0THEN PRINT " Y":GOTO 5340 5330 PRINT " N" 5340 PLOT 3,11,0:IF R(0)= 1THEN PRINT " D":GOTO 5390 5350 IF R(0)= 2THEN PRINT " P":GOTO 5390 5360 IF R(0)= 4THEN PRINT " F":GOTO 5390 5370 IF R(0)= 3THEN PRINT " S" 5380 IF SD= 1THEN SD= 0 5390 FOR I= 0TO 5:POKE DD+ I,R(I):NEXT :RETURN 5400 PLOT 3,0,3:PRINT "SAVE THIS PAGE? Y OR N ";:C= CALL (0):IF C= 121THEN GOSUB 5600:RETURN 5410 IF C< > 110THEN 5400 5420 RETURN 5500 GOSUB 4200:PLOT 27,4:PRINT "READ "+ B$(PN)+ P$:PLOT 27,27:RETURN 5600 PLOT 27,4:PRINT "WRITE "+ B$(PN)+ P$:PLOT 27,27:RETURN 5700 IF PN= R(6)THEN IY= IY- 1:RETURN 5710 GOSUB 5600:PN= PN+ 1:GOSUB 5500:IY= CU:GOSUB 4130:RETURN 5800 IF PN= 1THEN IY= IY+ 1:RETURN 5810 GOSUB 5600:PN= PN- 1:GOSUB 5500:IY= CD:GOSUB 4130:RETURN 5900 Z1= LEN (B$):Z= 0:Z2= 1:FOR J= 0TO Z1- 1:X$= MID$ (B$,Z1- J,1) 5910 IF ASC (X$)> 59THEN Z= Z+ Z2* (ASC (X$)- 55) 5920 IF ASC (X$)< 59THEN Z= Z+ Z2* (ASC (X$)- 48) 5930 Z2= Z2* 16:NEXT J:RETURN 6000 B$= "":Z2= Z 6010 Z1= Z2- INT (Z2/ 16)* 16:Z2= INT (Z2/ 16) 6020 IF Z1< 10THEN B$= CHR$ (48+ Z1)+ B$ 6030 IF Z1> 9THEN B$= CHR$ (55+ Z1)+ B$ 6040 IF Z2= 0THEN RETURN 6050 GOTO 6010 6100 Z1= INT (Z9/ 16):Z2= Z9- 16* Z1:ME$= CHR$ (Z1- 7* (Z1> 9)+ 48)+ CHR$ (Z2- 7* (Z2> 9)+ 48) 6110 GOSUB 5400:PLOT 27,4:PRINT "WRI "+ ME$+ " 829A 80":PLOT 27,27 6120 PLOT 27,11,12:POKE 33289,64:END