home *** CD-ROM | disk | FTP | other *** search
- 10 PRINT CHR$(26)
- 20 WHILE A<>32:Z1=Z:READ Z,A:Z=Z1+Z:POKE Z+61440!,A:WEND
- 30 DATA 0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0
- 40 DATA 2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,206,0,4,1
- 50 DATA 2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1
- 60 DATA 2,1,2,1,2,1,2,1,2,1,2,1,2,1,4,0,206,0,4,1,4,13,1,13,1,13
- 70 DATA 1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13
- 80 DATA 1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13
- 90 DATA 1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,5,1,4,0,86,13
- 100 DATA 33,13,87,0,4,1,4,13,7,21,3,83,1,67,1,82,1,69,1,69,1,78
- 110 DATA 1,87,1,82,1,73,1,84,1,69,1,82,3,25,9,13,5,1,4,0,86,13,33,13
- 120 DATA 87,0,4,1,4,13,8,70,1,79,1,82,2,84,1,72,1,69,2,79,1,83,1,66
- 130 DATA 1,79,1,82,1,78,1,69,2,49,9,13,5,1,4,0,86,13,33,13,87,0
- 140 DATA 4,1,4,13,33,13,5,1,4,0,86,13,4,98,1,121,2,74,1,97,1,99
- 150 DATA 1,107,2,87,1,97,1,108,1,114,1,97,1,118,1,101,1,110,2,40
- 160 DATA 1,67,1,41,2,49,1,57,1,56,1,50,5,13,87,0,4,1,4,13,33,13,5,1
- 170 DATA 4,0,86,13,11,105,1,110,2,77,1,66,1,65,1,83,1,73,1,67,14,13
- 180 DATA 87,0,4,1,4,13,33,13,5,1,4,0,86,13,2,50,1,56,1,52,1,48,2,76
- 190 DATA 1,101,1,105,1,103,1,104,2,82,1,100,1,46,1,44,2,86,1,105
- 200 DATA 1,99,1,116,1,111,1,114,1,105,1,97,1,44,2,66,1,46,1,67,1,46
- 210 DATA 2,13,87,0,4,1,4,13,10,40,1,54,1,48,1,52,1,41,2,51,1,56
- 220 DATA 1,50,2,54,1,49,1,54,1,48,10,13,5,1,4,0,86,13,33,13,87,0
- 230 DATA 4,1,4,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13
- 240 DATA 1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13
- 250 DATA 1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13
- 260 DATA 1,13,5,1,4,0,206,0,4,1,2,1,2,1,2,1,2,1,2,80,1,82,1,69,1,83
- 270 DATA 1,83,2,65,1,78,1,89,2,75,1,69,1,89,2,84,1,79,2,66,1,69
- 280 DATA 1,71,1,73,1,78,3,1,2,1,2,1,2,1,2,1,4,0,206,0,2,0,2,0,2,0
- 290 DATA 2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0
- 300 DATA 2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,32,32
- 310 Y$=INPUT$(1)
- 320 '*****SCREENWRITER PROGRAM WITH GRAPHICS FOR THE OSBORNE 1
- 330 '*****
- 340 '***** written by Jack Walraven (Oct 82)
- 350 '*****
- 360 '*****2840 Leigh Rd, Victoria, B.C., Canada (604) 474 1750
- 370 '*****
- 380 PRINT CHR$(26)
- 390 PRINT CHR$(26)
- 400 CLEAR
- 410 DIM PR$(100)
- 420 B=61440!:E=64383!
- 430 Z=B
- 440 C=83
- 450 RM=999:LM=999
- 460 SP=32
- 470 PRINT CHR$(26)
- 480 PRINT:PRINT
- 490 PRINT"CURSOR CONTROL AND ALPHA-NUMERICS
- 500 PRINT"Use the arrow keys to move the cursor to the
- 510 PRINT"desired position. The cursor will show what
- 520 PRINT"direction it will move. Use the alpha-numeric
- 530 PRINT"keys to lay out the screen format and message.
- 540 PRINT
- 550 PRINT"GRAPHICS! Use the ESC key to produce the graphic
- 560 PRINT"you desire. Use the TAB key to continue drawing
- 570 PRINT"that graphic in the direction you indicated with
- 580 PRINT"the arrow keys.
- 590 PRINT"When your design is completed, hit the ENTER
- 600 PRINT"key. The program will then read (PEEK) your
- 610 PRINT"design in video memory, write a BASIC program
- 620 PRINT"and save it in a sequential file, which you
- 630 PRINT"can then MERGE with any of your programs (just
- 640 PRINT"make sure that the line numbers don't overlap).
- 650 PRINT:PRINT:PRINT"press any key to begin
- 660 Y$=INPUT$(1)
- 670 PRINT CHR$(26)
- 680 INPUT "ENTER THE BEGINNING LINE NUMBER (default is 1): ";LN
- 690 PRINT CHR$(26)
- 700 IF LN=0 THEN LN=1
- 710 INPUT "INCREMENT BETWEEN LINE NUMBERS (default is 1): ";IC
- 720 PRINT CHR$(26)
- 730 IF IC =0 THEN IC=1
- 740 INPUT "FILE NAME without .ext (default is TEST): ";F$
- 750 IF F$="" THEN F$="TEST"
- 760 F$=F$+".BAS"
- 770 PRINT CHR$(26)
- 780 '*****remove cursor from screen
- 790 POKE Z+128,SP
- 800 POKE Z,C
- 810 '*****wait for keyboard input
- 820 A$=INKEY$:IF A$="" THEN 820
- 830 '*****check if input is arrow key
- 840 IF A$=CHR$(13) THEN POKE Z,SP:GOTO 1390
- 850 IF A$=CHR$(11) THEN C=94:GOTO 1030
- 860 IF A$=CHR$(10) THEN C=118:GOTO 1110
- 870 IF A$=CHR$(12) THEN C=62:GOTO 1190
- 880 IF A$=CHR$(8) THEN C=60:GOTO 1290
- 890 A=ASC(A$)
- 900 IF X>31 THEN X=0
- 910 '*****check if input is graphic
- 920 IF A=27 THEN A=X:X1=X:X=X+1:POKE Z,A:GOTO 820
- 930 IF A=9 THEN A=X1
- 940 Z1=Z-61440!:IF C=62 AND (Z1-50)/128=INT((Z1-50)/128) THEN POKE Z,A:GOTO 820
- 950 IF C=60 AND Z1/128=INT(Z1/128) THEN POKE Z,A:GOTO 820
- 960 POKE Z,A
- 970 IF C=94 AND Z-127>B THEN Z=Z-128:GOTO 820
- 980 IF C=118 AND Z+128<E THEN Z=Z+128:GOTO 820
- 990 IF C=62 AND Z+1<E THEN Z=Z+1:GOTO 820
- 1000 IF C=60 AND Z>B THEN Z=Z-1:GOTO 820
- 1010 GOTO 820
- 1020 '*****cursor up routine
- 1030 IF Z-128<B THEN 820
- 1040 IF C1<>C THEN 1070
- 1050 POKE Z,SP
- 1060 Z=Z-128
- 1070 C1=C
- 1080 POKE Z,C
- 1090 GOTO 820
- 1100 '*****cursor down routine
- 1110 IF Z+128>E GOTO 820
- 1120 IF C1<>C THEN 1150
- 1130 POKE Z,SP
- 1140 Z=Z+128
- 1150 C1=C
- 1160 POKE Z,C
- 1170 GOTO 820
- 1180 '*****cursor right routine
- 1190 IF Z+1>E THEN 820
- 1200 IF C1<>C THEN 1240
- 1210 Z1=Z-61440!:IF Z1=RM THEN 820
- 1220 POKE Z,SP
- 1230 Z=Z+1
- 1240 C1=C
- 1250 Z1=Z-61440!:IF (Z1-50)/128=INT((Z1-50)/128) THEN RM=Z1
- 1260 POKE Z,C
- 1270 GOTO 820
- 1280 '*****cursor left routine
- 1290 IF Z-1<B THEN 820
- 1300 IF C1<>C THEN 1340
- 1310 Z1=Z-61440!:IF Z1=LM THEN 820
- 1320 POKE Z,SP
- 1330 Z=Z-1
- 1340 C1=C
- 1350 Z1=Z-61440!:IF Z1/128=INT(Z1/128) THEN LM=Z1
- 1360 POKE Z,C
- 1370 GOTO 820
- 1380 '*****read (peek) screen and write BASIC program
- 1390 CU=1
- 1400 PR$(CU)=STR$(LN)+" PRINT CHR$(26)":CU=CU+1:LN=LN+IC
- 1410 PR$(CU)=STR$(LN)+" WHILE A<>32:Z1=Z:READ Z,A:Z=Z1+Z:POKE Z+61440!,A:WEND
- 1420 CU=CU+1:LN=LN+IC
- 1430 N2=0
- 1440 FOR N=0 TO 2816 STEP 128
- 1450 FOR N1=N TO N+50
- 1460 Z=N1+61440!
- 1470 T%=PEEK(Z)
- 1480 IF T%=32 THEN 1560
- 1490 POKE N1+61440!,127
- 1500 Z%=N1-N2
- 1510 Z$=MID$(STR$(Z%),2):T$=MID$(STR$(T%),2)
- 1520 IF LEN(PR$)<50 THEN PR$=PR$+Z$+","+T$+",":GOTO 1550
- 1530 PR$(CU)=STR$(LN)+" DATA "+PR$+Z$+","+T$
- 1540 CU=CU+1:LN=LN+IC:PR$=""
- 1550 N2=N1
- 1560 NEXT N1
- 1570 NEXT N
- 1580 IF PR$="" THEN 1600
- 1590 PR$(CU)=STR$(LN)+" DATA "+PR$+"32,32"
- 1600 CU=CU+1:LN=LN+IC
- 1610 PR$(CU)=STR$(LN)+" Y$=INPUT$(1)
- 1620 '*****save file to disk
- 1630 OPEN "O",#1,F$
- 1640 FOR N=1 TO CU+1
- 1650 PRINT #1,PR$(N)
- 1660 NEXT N
- 1670 CLOSE #1
- 1680 PRINT CHR$(26)
- 1690 PRINT:PRINT "YOUR DESIGN: ";F$;" HAS BEEN SAVED TO DISK.
- 1700 END
- N)
- 1660 NEXT N
- 1670 CLOSE #1
- 1680