Compucolor.org – Virtual Media

Listing of file='TYPER.BAS;01' on disk='vmedia/compuwriter_2-sector.ccvf'

100 GOTO 5000
110 CLEAR :PLOT 12,15,3,10,12,6,2:PRINT "DO YOU WANT INSTRUCTIONS (Y/N)?  "
115 PLOT 3,10,14,6,1:PRINT "IF YOU ANSWER 'Y' THEY WILL BE PRINTED OUT FOR YOU"
120 Y= CALL (2):IF NOT (Y= 89OR Y= 78)THEN PRINT :GOTO 110
130 PLOT 12,15,3,10,16,6,2:PRINT "SET PAPER & TURN ON PRINTER"
140 PLOT 3,10,17:INPUT "HIT <RETURN> WHEN READY....";A
150 PLOT 3,10,18:INPUT "ENTER  PAPER  LENGTH  (INCHES): ";PL:OUT 6,27:OUT 6,67:OUT 6,0:OUT 6,PL
160 PLOT 3,10,19:INPUT "ENTER NO. OF LINES FOR SKIP OVER PERF:  ";SK:IF SK< > 0THEN OUT 6,27:OUT 6,78:OUT 6,SK:GOTO 180
170 OUT 6,27:OUT 6,79
180 PLOT 3,10,20:INPUT "ENTER LINE SPACING  (1,1.5,2,3):  ";SP:OUT 6,27:OUT 6,65:OUT 6,SP* 12
185 PRINT CHR$ (Y):IF Y= 89THEN GOSUB 1000
190 PLOT 27,24,12,14,27,18,7,15,6,2
200 PLOT 3,0,31:PRINT "NORMAL    "
210 TM= PEEK (32940)+ 256* PEEK (32941)+ 1
220 X= 0:YY= 0:H= 30:W= 64:CC= 1:GOSUB 5360:REM  SCROLL
230 CO= 2:UL= 1:REM  COLOUR CODE
240 Y= CALL (2):IF Y= 27THEN PLOT 27,13,27,64:POKE 33265,0:END
250 IF Y= 10THEN LI= LI+ 1:PLOT 10:OUT 6,10:IF C> 0THEN FOR I= 0TO C- 1:OUT 6,32:NEXT :GOTO 240
260 IF Y= 13THEN 380
270 IF Y= 26AND C> 0THEN PLOT 26:OUT 6,13:C= C- 1:IF C> 0THEN FOR I= 0TO C- 1:OUT 6,32:NEXT :GOTO 240:REM  BACKSPACE
280 IF Y= 25THEN C= C+ 1:PLOT Y:OUT 6,32:OUT 6,18:GOTO 390:REM CURSOR RIGHT
290 IF Y= 31THEN OUT 6,15:CF= 1:CO= 3:PLOT 3,0,31,6,3:PRINT "COMPRESSED":PLOT 3,C,LI:GOTO 240:REM COMP CHARS ON
300 IF Y= 30THEN OUT 6,18:CF= 0:CO= 2:PLOT 3,0,31,6,2:PRINT "NORMAL        ":PLOT 3,C,LI:GOTO 240:REM COMP CHARS OFF
310 IF Y= 14THEN OUT 6,27:OUT 6,87:OUT 6,1:LF= 1:PLOT 3,12,31,6,1:PRINT "DOUBLE WIDTH":PLOT 3,C,LI:GOTO 240:REM  LARGE CHARS ON
320 IF Y= 15THEN OUT 6,27:OUT 6,87:OUT 6,0:LF= 0:PLOT 3,12,31,6,1:PRINT "              ":PLOT 3,C,LI:GOTO 240:REM LARGE CHARS OFF
330 IF Y= 127THEN OUT 6,27:OUT 6,45:OUT 6,1:PLOT 3,27,31,6,1:PRINT "UNDERLINING":PLOT 3,C,LI:UL= 8:GOTO 240:REM  ULINE ON
340 IF Y= 126THEN OUT 6,27:OUT 6,45:OUT 6,0:PLOT 3,27,31,6,1:PRINT "              ":PLOT 3,C,LI:UL= 1:GOTO 240:REM  ULINE OFF
350 IF Y= 16THEN OUT 6,27:OUT 6,52:PLOT 3,41,31,6,1:PRINT "ITALICS":PLOT 3,C,LI:GOTO 240:REM  ITALICS ON
360 IF Y= 20THEN OUT 6,27:OUT 6,53:PLOT 3,41,31:PRINT "        ":PLOT 3,C,LI:GOTO 240:REM  ITALICS OFF
370 IF Y< 32OR Y> 127THEN 240
380 PLOT 6,(CO* UL):C= C+ 1:PLOT Y:OUT 6,Y:OUT 6,18:IF Y= 13THEN C= 0:OUT 6,11:OUT 6,18:PLOT 10:LI= LI+ 1
390 IF CF= 1THEN OUT 6,15
400 IF C> 63THEN C= 0:LI= LI+ 1
410 IF LI> 28THEN XC= CALL (1):LI= LI+ 1:PLOT 28
420 GOTO 240
1000 POKE 33289,80
1010 PLOT 27,18,7,27,13,27,50
1020 PRINT TAB( 16)"T Y P E W R I T E R  I N S T R U C T I O N S"
1030 PRINT :PRINT TAB( 14)"This a fairly rough and ready program to make the AMUST"
1040 PRINT TAB( 14)"80 DT function as a normal typewriter.  A summary of the "
1050 PRINT TAB( 14)"COMMANDS are as follows:"
1060 PRINT :PRINT TAB( 10)"BLINK ON                = Compressed characters ON"
1070 PRINT TAB( 10)"BG ON/FLG ON            = Compressed characters OFF"
1080 PRINT TAB( 10)"A7 ON                   = Double width ON"
1090 PRINT TAB( 10)"BL/A7 OFF               = Double width OFF"
1100 PRINT TAB( 10)"SHIFT (CRT)             = Underlining ON"
1110 PRINT TAB( 10)"SHIFT (USER)            = Underlining OFF"
1120 PRINT TAB( 10)"BLACK KEY               = Italics ON"
1130 PRINT TAB( 10)"BLUE KEY                = Italics OFF"
1140 PRINT :PRINT "The left, down and right arrow keys all work."
1150 PRINT :PRINT "The ESC key will return you to Basic.":POKE 33265,0
1160 PLOT 3,10,30:INPUT "Hit <RETURN> to continue..";A:RETURN
5000 TM= PEEK (32940)+ PEEK (32941)* 256
5010 IF TM> 65500THEN 5060
5020 POKE TM+ 1,50:POKE TM+ 3,15
5030 REM  60027 CHECKS IF MACHINE LANGUAGE ALREADY LOADED
5040 A= 0:FOR N= TM+ 176TO TM+ 182:A= A+ PEEK (N):NEXT
5050 IF A= 1445THEN 5150
5060 AD= 32940:TM= TM- 200:DA= TM:GOSUB 5160:CLEAR 100
5070 TM= PEEK (32940)+ PEEK (32941)* 256
5080 PRINT "WORKING"
5090 RESTORE 5190
5100 REM  60050 LOADS MACHINE LANGUAGE
5110 FOR N= 1TO 200:READ A:IF A> 255THEN N= 220:GOTO 5140
5120 IF A< 0THEN DA= TM- A:AD= TM+ N:GOSUB 5160:GOTO 5140
5130 POKE TM+ N,A
5140 NEXT
5150 AD= 33283:DA= TM+ 8:GOSUB 5160:GOTO 110
5160 Z1= INT (DA/ 256):Z2= DA- Z1* 256
5170 POKE AD,Z2:N= N+ 1:POKE AD+ 1,Z1:RETURN
5180 REM  MACHINE LANGUAGE DATA
5190 DATA  50,0,15,0,0,0,0,123,254,0,194,-121,30,8,243
5200 DATA 58,-6,87,58,-7,254,0,194,-33,122,50,-7,42,-1
5210 DATA 34,-49,42,-3,34,-46,33,-22,1,50,0,11,120,177
5220 DATA 194,-51,123,238,2,211,4,95,43,124,181,194
5230 DATA  -48,58,-5,254,0,202,-100,61,50,-5,58,-49,130
5240 DATA  50,-49,58,-7,103,122,50,-7,84,195,-45,50,-7
5250 DATA 50,-4,50,-2,62,15,50,-3,62,50,50,-1,251,201
5260 DATA 254,1,194,-158,33,0,0,6,4,14,17,17,128,0,25
5270 DATA 126,17,128,255,25,119,35,0,13,194,-133,17,8
5280 DATA 0,25,5,194,-131,201
5290 DATA 254,2,194,-182,245,229,197,205,36,0,194,-166
5300 DATA 95,175,87,50,255,129,193,225,241,201,201
5310 DATA 300
5320 REM
5330 Z1= INT (DA/ 256):Z2= DA- Z1* 256
5340 POKE AD,Z2:N= N+ 1:POKE AD+ 1,Z1:RETURN
5350 REM  SCROLLING ROUTINE
5360 DA= 28672+ 128* YY+ X+ X:AD= TM+ 126:GOSUB 5330
5370 DA= 128- W- W:AD= TM+ 149:GOSUB 5330
5380 POKE TM+ 129,H- 1:POKE TM+ 131,W* (CC+ 1)
5390 POKE TM+ 143,35* (1- CC):RETURN