diff --git a/DOCS/atari_basic_2.pdf b/DOCS/atari_basic_2.pdf new file mode 100644 index 0000000..39f2d70 Binary files /dev/null and b/DOCS/atari_basic_2.pdf differ diff --git a/HDISK/BASIC/DIMEXAMP.BAS b/HDISK/BASIC/DIMEXAMP.BAS new file mode 100644 index 0000000..1b1a94f --- /dev/null +++ b/HDISK/BASIC/DIMEXAMP.BAS @@ -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 diff --git a/HDISK/BASIC/GREET.BAS b/HDISK/BASIC/GREET.BAS index 3c7594f..77f2b8b 100644 --- a/HDISK/BASIC/GREET.BAS +++ b/HDISK/BASIC/GREET.BAS @@ -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!" \ No newline at end of file diff --git a/HDISK/BASIC/HELLO.BAS b/HDISK/BASIC/HELLO.BAS deleted file mode 100644 index 1871b21..0000000 Binary files a/HDISK/BASIC/HELLO.BAS and /dev/null differ diff --git a/HDISK/BASIC/KEYCODES.BAS b/HDISK/BASIC/KEYCODES.BAS new file mode 100644 index 0000000..b6fdcf5 --- /dev/null +++ b/HDISK/BASIC/KEYCODES.BAS @@ -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 \ No newline at end of file diff --git a/HDISK/BASIC/MEMTEST2.BAS b/HDISK/BASIC/MEMTEST2.BAS deleted file mode 100644 index 42a4dba..0000000 --- a/HDISK/BASIC/MEMTEST2.BAS +++ /dev/null @@ -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 diff --git a/HDISK/BASIC/MEMTEST3.BAS b/HDISK/BASIC/MEMTEST3.BAS deleted file mode 100644 index 7c72ee7..0000000 --- a/HDISK/BASIC/MEMTEST3.BAS +++ /dev/null @@ -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 diff --git a/HDISK/BASIC/MSOFT.BAS b/HDISK/BASIC/MSOFT.BAS deleted file mode 100644 index 02d103c..0000000 --- a/HDISK/BASIC/MSOFT.BAS +++ /dev/null @@ -1,5 +0,0 @@ -10 REM *** A VERY SIMPLE PROGRAM *** -20 DIM A$(7) -20 DIM B$(7) -30 DIM C$(7) -40 A$="" \ No newline at end of file diff --git a/HDISK/BASIC/P32P1.BAS b/HDISK/BASIC/P32P1.BAS deleted file mode 100644 index dccb395..0000000 Binary files a/HDISK/BASIC/P32P1.BAS and /dev/null differ diff --git a/HDISK/BASIC/P33P1.BAS b/HDISK/BASIC/P33P1.BAS deleted file mode 100644 index 1c796ee..0000000 Binary files a/HDISK/BASIC/P33P1.BAS and /dev/null differ diff --git a/HDISK/BASIC/P34P1.BAS b/HDISK/BASIC/P34P1.BAS deleted file mode 100644 index 5033edb..0000000 Binary files a/HDISK/BASIC/P34P1.BAS and /dev/null differ diff --git a/HDISK/BASIC/P34P2.BAS b/HDISK/BASIC/P34P2.BAS deleted file mode 100644 index b6f2055..0000000 Binary files a/HDISK/BASIC/P34P2.BAS and /dev/null differ diff --git a/HDISK/BASIC/PRTOKENS.BAS b/HDISK/BASIC/PRTOKENS.BAS new file mode 100644 index 0000000..b2bf59d --- /dev/null +++ b/HDISK/BASIC/PRTOKENS.BAS @@ -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 diff --git a/HDISK/BASIC/PRVARS.BAS b/HDISK/BASIC/PRVARS.BAS new file mode 100644 index 0000000..456fc1d --- /dev/null +++ b/HDISK/BASIC/PRVARS.BAS @@ -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 diff --git a/HDISK/BASIC/SIMPLE.BAS b/HDISK/BASIC/SIMPLE.BAS deleted file mode 100644 index 646e8de..0000000 Binary files a/HDISK/BASIC/SIMPLE.BAS and /dev/null differ diff --git a/HDISK/BASIC/TEST.BAS b/HDISK/BASIC/TEST.BAS deleted file mode 100644 index 1e749bd..0000000 Binary files a/HDISK/BASIC/TEST.BAS and /dev/null differ diff --git a/MISC/basicset b/MISC/basicset index 4861953..cc43ff9 100644 --- a/MISC/basicset +++ b/MISC/basicset @@ -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