Compucolor.org – Virtual Media

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

100 E1= 32940:TM= PEEK (E1+ 1)* 256+ PEEK (E1)
110 TM= TM- 256
120 A1= INT (TM/ 256):A2= TM- (A1* 256)
130 POKE E1,A2:POKE E1+ 1,A1
140 CLEAR 3000
150 DATA  0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
160 DIM N$(15)
170 E1= 32940:TM= PEEK (E1+ 1)* 256+ PEEK (E1)
180 FOR I= 0TO 15:READ N$(I):NEXT
190 PLOT 6,4,12,15,29,27,24,3,14,0
200 PRINT "T H E   D I S K   E D I T O R":PRINT
210 PLOT 6,6,15,3,0,1
220 PRINT "================================================================"
230 PRINT
240 PLOT 6,3,3,17,2
250 PRINT "HEXADECIMAL";:PLOT 3,53,2:PRINT "ASCII"
260 PLOT 6,5
270 PRINT "00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 0123456789ABCDEF"
280 PLOT 3,47,4,27,10
290 PRINT "01234567 01234567"
300 PLOT 27,11,27,24
310 PLOT 6,6,3,0,12
320 PRINT "----------------------------------------------------------------"
330 PLOT 6,2,3,5,21,29
340 PRINT "BLOCK: 000-001     DEVICE: CD0     BAUD RATE:  X"
350 PLOT 6,6,3,0,22
360 PRINT "================================================================"
370 PLOT 3,0,23
380 PRINT "   AUTO READ AND PRINT     BAUD RATE SELECTION"
390 PRINT "   CHANGE EDIT DEVICE      DECREMENT BLOCK COUNT"
400 PRINT "   EDIT BLOCK              INCREMENT BLOCK COUNT"
410 PRINT "   PRINT BLOCK             READ A BLOCK"
420 PRINT "   WRITE A BLOCK           QUIT"
440 D= TM:GOSUB 55000:S$= H$
450 BC= 0:CD$= "CD0"
459 PLOT 27,4
460 PRINT "READ ";CD$;": 00 ";S$;" 100"
470 PLOT 27,27
480 GOSUB 50000
485 BR= 0:CD= 0
490 REM  INITIAL SETUP DONE
500 PLOT 6,4,3,0,30,11
510 INPUT " COMMAND ? ";CO$
520 IF CO$= ""THEN 500
530 IF LEN (CO$)> 1THEN 500
540 IF CO$= "A"THEN 1000
550 IF CO$= "B"THEN 2000
560 IF CO$= "C"THEN 3000
570 IF CO$= "D"THEN 4000
580 IF CO$= "E"THEN 5000
590 IF CO$= "I"THEN 6000
600 IF CO$= "P"THEN 7000
610 IF CO$= "R"THEN 8000
620 IF CO$= "W"THEN 9000
630 IF CO$= "Q"THEN 10000
640 GOTO 500
1000 REM  AUTO READ AND PRINT
1005 AF= 1
1010 POKE 33278,0
1020 FOR AR= 0TO 398STEP 2
1030 BC= AR
1040 GOSUB 55000
1050 GOSUB 6110
1060 GOSUB 7010
1070 IF PEEK (33278)= 0THEN 1500
1080 PLOT 6,3,3,0,30,11
1090 INPUT "STOP AUTO READ AND PRINT? (Y/N) ";Y$
1100 IF Y$= "Y"THEN AR= 399:GOTO 1500
1110 IF Y$< > "N"THEN 1080
1120 POKE 33278,0
1500 NEXT AR
1505 AF= 0
1510 GOTO 500
2000 REM  SET BAUD RATE
2002 GOSUB 2010
2004 GOTO 500
2010 PLOT 6,1,3,0,30,11
2020 PRINT "CURRENT BAUD RATE IS:";
2030 IF BR= 0THEN PRINT " NOT SET ";
2040 IF BR> 0THEN PRINT BR;
2050 PLOT 6,3
2060 INPUT "  CHANGE TO (1-7) ";BR$
2070 IF BR$= ""THEN 2010
2080 B1= VAL (BR$)
2090 IF B1< 1OR B1> 7THEN 2010
2100 IF B1< > INT (B1)THEN 2010
2110 PLOT 14,27,18,B1,15
2120 BR= B1
2130 PLOT 6,1,3,51,21
2140 PRINT BR
2150 RETURN
3000 REM  CHANGE EDIT DEVICE
3010 IF CD$= "CD0"THEN CD$= "CD1":GOTO 3025
3020 CD$= "CD0"
3025 PLOT 3,0,30,11
3030 PLOT 27,4
3040 PRINT "DEV ";CD$;":"
3050 PLOT 27,27
3060 PLOT 6,1,3,32,21
3070 PRINT CD$
3080 GOTO 500
4000 REM  DECREMENT BLOCK COUNT
4010 IF BC> 1THEN 4100
4020 PLOT 6,65,3,0,30,11
4030 PRINT "FIRST BLOCK ALREADY DISPLAYED."
4040 FOR I= 1TO 1000:NEXT
4050 GOTO 500
4100 BC= BC- 2
4110 GOTO 6110
5000 REM  EDIT A BLOCK
6000 REM  INCREMENT BLOCK COUNT
6010 IF BC< 398THEN 6100
6020 PLOT 6,65,3,0,30,11
6030 PRINT " LAST BLOCK ALREADY DISPLAYED."
6040 FOR I= 1TO 1000:NEXT
6050 GOTO 500
6100 BC= BC+ 2
6110 D= BC:GOSUB 55000
6120 PLOT 27,4
6130 PRINT "READ ";CD$;": ";H$;" ";S$;" 100"
6135 PLOT 27,27
6140 GOSUB 50000
6160 H$= RIGHT$ (H$,3)
6170 PLOT 6,1,3,12,21
6180 PRINT H$;"-";
6190 D= BC+ 1
6200 GOSUB 55000
6210 PRINT RIGHT$ (H$,3)
6215 IF AF> 0THEN RETURN
6220 GOTO 500
7000 REM  PRINT A BLOCK
7002 GOSUB 7010
7004 GOTO 500
7010 IF BR> .5THEN 7100
7020 PLOT 6,65,3,0,30,11
7030 PRINT "BAUD RATE NOT SET."
7040 FOR I= 1TO 1000:NEXT
7050 GOSUB 2010
7100 PLOT 8
7110 BF= PEEK (33265):PLOT 27,13,12:POKE 33265,BF
7120 PRINT ""
7125 BF= PEEK (33265):PLOT 27,13:PRINT :PRINT :POKE 33265,BF
7130 RETURN
8000 REM  READ A BLOCK
8010 PLOT 6,3,3,0,30,11
8020 INPUT " ENTER A BLOCK NUMBER (000-18E) ";BN$
8030 IF BN$= ""THEN 8010
8040 IF LEN (BN$)> 3THEN 8010
8050 IF LEN (BN$)= 3THEN 8070
8060 BN$= "0"+ BN$:GOTO 8050
8070 BN$(1)= LEFT$ (BN$,1):BN$(2)= MID$ (BN$,2,1):BN$(3)= RIGHT$ (BN$,1)
8080 CH= 0
8090 FOR I= 1TO 3
8095 BN(I)= ASC (BN$(I))
8100 IF BN(I)< 48OR BN(I)> 70THEN CH= 1:I= 3:GOTO 8200
8110 IF BN(I)> 57AND BN(I)< 65THEN CH= 2:I= 3:GOTO 8200
8130 IF BN(I)> 64THEN BN(I)= BN(I)- 7
8140 BN(I)= BN(I)- 48
8200 NEXT
8210 IF CH> 0THEN 8010
8220 B1= (BN(1)* 256)+ (BN(2)* 16)+ BN(3)
8230 IF B1> 398THEN 8010
8240 BC= B1
8250 GOTO 6110
9000 REM  WRITE A BLOCK
9010 PLOT 6,1,3,0,30,11
9020 INPUT "ARE YOU SURE YOU WANT TO WRITE A BLOCK? ";Y$
9030 IF Y$= "N"THEN 500
9040 IF Y$< > "Y"THEN 9010
9050 D= BC:GOSUB 55000
9060 PLOT 27,4
9070 PRINT "WRI ";CD$;": ";H$;" ";S$;" 100"
9080 PLOT 27,27
9090 GOTO 500
10000 REM  QUIT
49000 TM= TM+ 256
49010 A1= INT (TM/ 256):A2= TM- (A1* 256)
49020 POKE E1,A2:POKE E1+ 1,A1
49030 PLOT 27,11
49990 END
50000 REM  READ MEMORY AND DISPLAY TO SCREEN
50005 PLOT 6,7
50010 FOR I= 0TO 255
50020 IR= INT (I/ 16)
50030 IC= (I- (IR* 16))* 3
50040 IR= IR+ 4
50045 IF I> 127THEN IR= IR+ 1
50050 PLOT 3,IC,IR
50060 A= PEEK (TM+ I)
50070 AH= INT (A/ 16):AL= A- (AH* 16)
50080 A$= N$(AH)+ N$(AL)
50090 PRINT A$
50100 IC= IC/ 3+ 48
50110 PLOT 3,IC,IR
50120 A$= CHR$ (A)
50130 IF A< 32OR A> 126THEN A$= "."
50140 PRINT A$
50150 NEXT
50800 RETURN
55000 REM  CONVERT DECIMAL TO HEXADECIMAL
55010 H$= ""
55020 FOR I= 3TO 0STEP - 1
55030 D(I)= INT (D/ (16^ I))
55040 H$= H$+ N$(D(I))
55050 D= D- (D(I)* (16^ I))
55060 NEXT I
55070 RETURN