pruned and updated BASIC files
This commit is contained in:
parent
d34abe6bf8
commit
cf0a8ebee0
Binary file not shown.
|
@ -0,0 +1,37 @@
|
|||
1 REM DIMENSION DUMMY STRING
|
||||
2 DIM DUMMY$(1)
|
||||
3 REM DIMENSION THE APRAYS AND STRINGS
|
||||
4 REM WHICH WILL NEED CLEARING
|
||||
5 DIM A1(1),A2(1)
|
||||
6 CLR :REM CLEAR THE VARIABLES
|
||||
7 N=3:REM NUMBER OF VARIABLES JUST DIMENSIONED
|
||||
8 REM INCLUDING DUMMY$
|
||||
9 REM YOUR PROGRAM MAY BEGIN HERE
|
||||
100 REM HERE IS AN EXAMPLE OF HOW TO
|
||||
110 REM USE THE UNDIMENSION ROUTINE
|
||||
120 DIM TEST$(20):TEST$="I'M STILL HERE? "
|
||||
130 DIM DUMMY$(1),A1(50,10)
|
||||
140 A1(50,10)=1:? A1(50,10),TEST$
|
||||
150 REM EXECUTE UNDIMENSION ROUTINE
|
||||
160 LINE=170:REM 1020
|
||||
170 DIM DUMMY$(1),A2(500)
|
||||
180 A2(500)=2:? A2(500),TEST$
|
||||
190 END
|
||||
200 REM
|
||||
1000 REM UNDIMENSION ROUTINE
|
||||
1010 REM SAVE CURRENT POINTER VALUES
|
||||
1020 S136=PEEK(136):S137=PEEK(137)
|
||||
1030 S140=PEEK(140):S141=PEEK(141)
|
||||
1040 REM MOVE END OF VARIABLES
|
||||
1050 T1=PEEK(134)+8*N:T2=PEEK(135)
|
||||
1060 IF T1>255 THEN T2=T2+1:T1=T1-256
|
||||
1070 POKE 136,T1:POKE 137,T2
|
||||
1080 REM MOVE BEGINNING OF ARRAYS
|
||||
1090 T2=INT(ADR(DUMMY$)/256)
|
||||
1100 T1=ADR(DUMMY$)-T2*256
|
||||
1110 POKE 140,T1:POKE 141,T2
|
||||
1120 CLR :REM CLEAR THE ARRAYS
|
||||
1130 REM RESTORE POINTERS AND RETURN
|
||||
1140 POKE 136,S136:POKE 137,S137
|
||||
1150 POKE 140,S140:POKE 141,S141
|
||||
1160 REM LINE
|
|
@ -3,4 +3,3 @@
|
|||
30 PRINT "Hello, there. What is your name?"
|
||||
40 INPUT NAME$
|
||||
50 PRINT "How very nice to meet you, ";NAME$
|
||||
60 PRINT "Goodbye, now!"
|
Binary file not shown.
|
@ -0,0 +1,49 @@
|
|||
5 DIM IC(255),AC(255):SC=PEEK(88)+256*PEEK(89):SHIFT=64:VERS=0
|
||||
10 GOSUB 500:REM THIS WILL CREATE ARRAYS FROM DATA STATEMENTS
|
||||
15 GOSUB 600:REM USE THIS TO CREATE "D:KEYCODE.DAT"
|
||||
20 GOSUB 700:REM USE THIS TO CREATE ARRAYS FROM DISKFILE "D:KEYCODE.DAT"
|
||||
100 POKE 694,0:ON PEEK(753)<>3 GOTO 100:K=PEEK(764)
|
||||
105 N=K:IF N>63 THEN N=N-64:IF N>63 THEN N=N-64:IF N>63 THEN N=N-64
|
||||
110 IF N=60 THEN SHIFT=4+K-64
|
||||
115 IF N=39 THEN VERS=128*(VERS<>128)
|
||||
200 PRINT N,CHR$(AC(N+SHIFT)+VERS)
|
||||
205 POKE SC+959,IC(N+SHIFT)+VERS
|
||||
210 GOTO 100
|
||||
500 RESTORE 1000
|
||||
501 REM ------------------
|
||||
502 FOR I=0 TO 191
|
||||
503 READ N:IC(I)=N: REM *** THIS IS WHERE IT BREAKS ***
|
||||
504 NEXT I
|
||||
505 REM ------------------
|
||||
506 FOR I=192 TO 255
|
||||
507 IC(I)=0
|
||||
508 NEXT I
|
||||
509 REM ------------------
|
||||
510 FOR I=0 TO 255:N=IC(I)
|
||||
520 IF N<64 THEN AC(I)=N+32
|
||||
530 IF N>63 AND N<96 THEN AC(I)=N-64
|
||||
540 IF N>95 THEN AC(I)=N
|
||||
550 NEXT I
|
||||
560 RETURN
|
||||
600 OPEN #4,8,0,"H6:BASIC:KEYCODES.DAT"
|
||||
605 RESTORE 1000:FOR I=0 TO 191:READ N:PUT #4,N:NEXT I
|
||||
610 FOR I=192 TO 255:PUT #4,0:NEXT I
|
||||
615 CLOSE #4:RETURN
|
||||
700 OPEN #4,4,0,"H6:BASIC:KEYCODES.DAT"
|
||||
705 FOR I=0 TO 255:GET #4,N:IC(I)=N
|
||||
710 IF N<64 THEN AC(I)=N+32
|
||||
715 IF N>63 AND N<96 THEN AC(I)=N-64
|
||||
720 IF N>95 THEN AC(I)=N
|
||||
725 NEXT I:RETURN
|
||||
1000 DATA 108,106,27,0,0,107,11,10,111,0,112,117,0,105,13,29
|
||||
1016 DATA 118,0,99,0,0,98,120,122,20,0,19,22,91,21,18,17
|
||||
1032 DATA 12,0,14,110,0,109,15,0,114,0,101,121,127,116,119,113
|
||||
1048 DATA 25,0,16,23,126,24,28,30,102,104,100,0,0,103,115,97
|
||||
1064 DATA 44,42,26,0,0,43,60,62,47,0,48,53,0,41,63,124
|
||||
1080 DATA 54,0,35,0,0,34,56,58,4,0,3,6,0,5,2,1
|
||||
1096 DATA 59,0,61,46,0,45,31,0,50,0,37,57,0,52,55,49
|
||||
1112 DATA 8,0,9,7,0,32,125,0,38,40,36,0,0,39,51,33
|
||||
1128 DATA 76,74,123,0,0,75,94,95,79,0,80,85,0,73,92,93
|
||||
1144 DATA 86,0,67,0,0,66,88,90,0,0,0,0,0,0,0,0
|
||||
1160 DATA 64,0,96,78,0,77,0,0,82,0,69,89,0,84,87,81
|
||||
1176 DATA 0,0,0,0,0,0,0,0,70,72,68,0,0,71,83,65
|
|
@ -1,52 +0,0 @@
|
|||
51 REM ATARI RAM TEST PROGRAM
|
||||
52 REM BY ED STEWART 03/82
|
||||
53 REM 11025 SAGEBRUSH AVE
|
||||
54 REM UNIONTOWN OHIO 44685
|
||||
99 REM SETUP SOME REQUIRED CONSTANTS
|
||||
100 N1 = 1 : N2 = N1 + N1 : N255 = 255 : N256 = N255 + N1
|
||||
200 DIM S$(N2) : S$(N1, N1) = CHR$(157) : S$(N2, N2) = CHR$(159)
|
||||
299 REM READ IN THE MACHINE LANGUAGE PROGRAM
|
||||
300 GOSUB 2900
|
||||
399 REM GET LOW AND HIGH MEMORY BOUNDS
|
||||
400 L = PEEK(15) * N256 : H = PEEK(742) * N256 : IF PEEK(14)< >NO THEN L = L + N256
|
||||
499 REM DISPLAY BOUNDS AND GET REPLY
|
||||
500 ? CHR$(125); S$; "ATARI MEMORY TEST PROGRAM"; CHR$(155); S$; "MEMORY BOUNDS ARE"
|
||||
600 ? S$; "LOW = "; L : ? S$; "HIGH = "; H
|
||||
700 ? S$; "GIVE TEST BOUNDS"; CHR$(155)
|
||||
800 TRAP 800 : ? S$; "LOW = "; : INPUT LOW : IF LOW < L OR LOW > H THEN 800
|
||||
900 TRAP 900 : ? S$; "HIGH = "; : INPUT HIGH : IF HIGH > H OR HIGH < L OR HIGH-LOW < N256 THEN 900
|
||||
999 REM SETUP BOUNDS FOR THE MLP
|
||||
1000 POKE 205, NO : POKE 206, INT(HIGH/N256)
|
||||
1100 TRAP 32767 : POKE 203, NO : POKE 204, INT(LOW/N256)
|
||||
1200 POKE 764, N255
|
||||
1299 REM INVOKE THE MLP TO DO THE TEST
|
||||
1300 POKE 559, NO : POKE 764, N255 : X = USR(1536)
|
||||
1399 REM CHECK RETURN FROM MLP
|
||||
1400 IF PEEK(208) = NO THEN 2200
|
||||
1499 REM SHOW MEMORY ERROR ON SCREEN
|
||||
1500 ? " ERROR AT "; (PEEK(203) + PEEK(204) * N256); " EXP = "; PEEK(207); " ACT = "; PEEK(209)
|
||||
1600 SOUND NO, PASS, 6, 8 : FOR I = N1 TO 5 : NEXT I : SOUND NO, NO, NO, NO
|
||||
1699 REM SETUP NEXT BYTE TO TEST SO WE DONT STOP WITH FIRST ERROR
|
||||
1700 IF PEEK(203) = N255 THEN POKE 204, (PEEK(204) + N1) : POKE 203, NO : GOTO 1900
|
||||
1800 POKE 203, (PEEK(203) + N1)
|
||||
1900 POKE 764, N255 : POKE 559, 34
|
||||
1999 REM CONTINUE ONLY IF KEY PRESSED
|
||||
2000 IF PEEK(764) = N255 THEN 2000
|
||||
2099 REM CONTINUE TESTING BAD RANGE
|
||||
2100 GOTO 1300
|
||||
2199 REM GOOD TEST PASS SO SAY SO
|
||||
2200 PASS = PASS + N1 : ? " GOOD PASS NUMBER "; PASS : SOUND NO, PASS, 10, 8
|
||||
2300 FOR I = N1 TO 5 : NEXT I : SOUND NO, NO, NO, NO
|
||||
2399 REM STOP AND DISPLAY STUFF IF KEY IS PRESSED
|
||||
2400 IF PEEK(764)< >N255 THEN 2600
|
||||
2499 REM CONTINUE WITH NEXT PASS
|
||||
2500 GOTO 1100
|
||||
2600 POKE 764, N255
|
||||
2699 REM WAIT HERE UNTIL A KEY IS PRESSED
|
||||
2700 POKE 559, 34 : IF PEEK(764) = N255 THEN 2700
|
||||
2799 REM CONTINUE WITH NEXT PASS
|
||||
2800 GOTO 1100
|
||||
2899 REM READ IN MACHINE LANGUAGE PROGRAM
|
||||
2900 FOR L = 1536 TO 1576 : READ H : POKE L, H : NEXT L : RETURN
|
||||
3000 DATA 104, 169, 0, 160, 0, 24, 145, 203, 209, 203, 208, 18, 105, 1, 208, 246, 200, 208, 242, 230, 204, 166, 204, 228, 206
|
||||
3100 DATA 208, 234, 133, 208, 96, 133, 207, 177, 203, 133, 209, 169, 1, 133, 208, 96
|
|
@ -1,52 +0,0 @@
|
|||
51 REM ATARI RAM TEST PROGRAM
|
||||
52 REM BY ED STEWART 03/82
|
||||
53 REM 11025 SAGEBRUSH AVE
|
||||
54 REM UNIONTOWN OHIO 44685
|
||||
99 REM SETUP SOME REQUIRED CONSTANTS
|
||||
100 N1 = 1 : N2 = N1 + N1 : N255 = 255 : N256 = N255 + N1
|
||||
200 DIM S$(N2) : S$(N1, N1) = CHR$(157) : S$(N2, N2) = CHR$(159)
|
||||
299 REM READ IN THE MACHINE LANGUAGE PROGRAM
|
||||
300 GOSUB 2900
|
||||
399 REM GET LOW AND HIGH MEMORY BOUNDS
|
||||
400 L = PEEK(15) * N256 : H = PEEK(742) * N256 : IF PEEK(14) <> NO THEN L = L + N256
|
||||
499 REM DISPLAY BOUNDS AND GET REPLY
|
||||
500 ? CHR$(125); S$; "ATARI MEMORY TEST PROGRAM"; CHR$(155); S$; "MEMORY BOUNDS ARE "
|
||||
600 ? S$; "LOW = "; L : ? S$; "HIGH = "; H
|
||||
700 ? S$; "GIVE TEST BOUNDS"; CHR$(155)
|
||||
800 TRAP 800 : ? S$; "LOW = "; : INPUT LOW : IF LOW < L OR LOW > H THEN 800
|
||||
900 TRAP 900 : ? S$; "HIGH = "; : INPUT HIGH : IF HIGH > H OR HIGH < L OR HIGH-LOW < N256 THEN 900
|
||||
999 REM SETUP BOUNDS FOR THE MLP
|
||||
1000 POKE 205, NO : POKE 206, INT(HIGH/N256)
|
||||
1100 TRAP 32767 : POKE 203, NO : POKE 204, INT(LOW/N256)
|
||||
1200 POKE 764, N255
|
||||
1299 REM INVOKE THE MLP TO DO THE TEST
|
||||
1300 POKE 559, NO : POKE 764, N255 : X = USR(1536)
|
||||
1399 REM CHECK RETURN FROM MLP
|
||||
1400 IF PEEK(208) = NO THEN 2200
|
||||
1499 REM SHOW MEMORY ERROR ON SCREEN
|
||||
1500 ? " ERROR AT "; (PEEK(203) + PEEK(204) * N256); " EXP = "; PEEK(207); " ACT = "; PEEK(209)
|
||||
1600 SOUND NO, PASS, 6, 8 : FOR I = N1 TO 5 : NEXT I : SOUND NO, NO, NO, NO
|
||||
1699 REM SETUP NEXT BYTE TO TEST SO WE DONT STOP WITH FIRST ERROR
|
||||
1700 IF PEEK(203) = N255 THEN POKE 204, (PEEK(204) + N1) : POKE 203, NO : GOTO 1900
|
||||
1800 POKE 203, (PEEK(203) + N1)
|
||||
1900 POKE 764, N255 : POKE 559, 34
|
||||
1999 REM CONTINUE ONLY IF KEY PRESSED
|
||||
2000 IF PEEK(764) = N255 THEN 2000
|
||||
2099 REM CONTINUE TESTING BAD RANGE
|
||||
2100 GOTO 1300
|
||||
2199 REM GOOD TEST PASS SO SAY SO
|
||||
2200 PASS = PASS + N1 : ? " GOOD PASS NUMBER "; PASS : SOUND NO, PASS, 10, 8
|
||||
2300 FOR I = N1 TO 5 : NEXT I : SOUND NO, NO, NO, NO
|
||||
2399 REM STOP AND DISPLAY STUFF IF KEY IS PRESSED
|
||||
2400 IF PEEK(764) <> N255 THEN 2600
|
||||
2499 REM CONTINUE WITH NEXT PASS
|
||||
2500 GOTO 1100
|
||||
2600 POKE 764, N255
|
||||
2699 REM WAIT HERE UNTIL A KEY IS PRESSED
|
||||
2700 POKE 559, 34 : IF PEEK(764) = N255 THEN 2700
|
||||
2799 REM CONTINUE WITH NEXT PASS
|
||||
2800 GOTO 1100
|
||||
2899 REM READ IN MACHINE LANGUAGE PROGRAM
|
||||
2900 FOR L = 1536 TO 1576 : READ H : POKE L, H : NEXT L : RETURN
|
||||
3000 DATA 104, 169, 0, 160, 0, 24, 145, 203, 209, 203, 208, 18, 105, 1, 208, 246, 200, 208, 242, 230, 204, 166, 204, 228, 206
|
||||
3100 DATA 208, 234, 133, 208, 96, 133, 207, 177, 203, 133, 209, 169, 1, 133, 208, 96
|
|
@ -1,5 +0,0 @@
|
|||
10 REM *** A VERY SIMPLE PROGRAM ***
|
||||
20 DIM A$(7)
|
||||
20 DIM B$(7)
|
||||
30 DIM C$(7)
|
||||
40 A$=""
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,23 @@
|
|||
1 REM
|
||||
100 REM PROGRAM TO PRINT THE TOKENS
|
||||
110 REM WHICH BEGIN BASIC STATEMENTS
|
||||
120 REM Get the beginning of program
|
||||
130 BASE=PEEK(136)+PEEK(137)*256
|
||||
140 REM Change statement terminator
|
||||
150 POKE BASE+5,22
|
||||
160 ? CHR$(125):REM CLEAR SCREEN
|
||||
170 REM PRINT TOKENS
|
||||
180 FOR I=0 TO 54
|
||||
190 REM Change line number and token
|
||||
200 POKE BASE,I:POKE BASE+4,I
|
||||
210 LIST I:REM Print token
|
||||
220 REM Undo line feed if needed
|
||||
230 IF I>1 THEN ? CHR$(28);
|
||||
240 REM Change left margin for columns
|
||||
250 IF I=19 THEN POKE 82,12:POSITION 12,1
|
||||
260 IF I=39 THEN POKE 82,24:POSITION 24,1
|
||||
270 NEXT I
|
||||
280 REM Put Program back to normal
|
||||
290 POKE BASE,1:POKE BASE+4,0
|
||||
300 POKE BASE+5,155
|
||||
310 POKE 82,2:POSITION 2,22
|
|
@ -0,0 +1,17 @@
|
|||
100 REM PROGRAM TO PRINT THE VARIABLE NAME LIST
|
||||
105 PRINT "Before line 110"
|
||||
110 DIM ARRAYNAME(1),STRINGNAME$(1)
|
||||
120 REM GET THE BEGINNING OF THE LIST
|
||||
125 PRINT "Before line 130"
|
||||
130 ADDRESS=PEEK(130)+PEEK(131)*256
|
||||
135 PRINT "Before line 140: ";ADDRESS
|
||||
140 ? CHR$(125);"VARIABLE NAME LIST"
|
||||
150 REM GET CHARACTER AND TEST FOR END
|
||||
155 PRINT "Before line 160"
|
||||
160 A=PEEK(ADDRESS):IF A=0 THEN END
|
||||
165 PRINT "Before line 180: ";A
|
||||
170 REM PRINT CHARACTER
|
||||
180 IF A<128 THEN ? CHR$(A);:REM 210
|
||||
190 ? CHR$(A-128)
|
||||
200 REM GET NEXT ADDRESS AND REPEAT
|
||||
210 ADDRESS=ADDRESS+1:REM 160
|
Binary file not shown.
Binary file not shown.
|
@ -1,7 +1,7 @@
|
|||
/home/gmgauthier/Atari/FDISK/DOS/MyDos-4.55.atr
|
||||
/home/gmgauthier/Atari/FDISK/DEV/32_BASIC_Programs_for_AtarI_side_A.atr
|
||||
/home/gmgauthier/Atari/FDISK/DEV/32_BASIC_Programs_for_AtarI_side_B.atr
|
||||
/home/gmgauthier/Atari/FDISK/BASICWEEK.atr
|
||||
/home/gmgauthier/Atari/FDISK/DATA/MYCODE01.atr
|
||||
/home/gmgauthier/Atari/FDISK/DATA/BASICS.atr
|
||||
Off
|
||||
Off
|
||||
Off
|
||||
|
|
Loading…
Reference in New Issue