diff --git a/code/AVR/SerialTest/SerialTest.ino b/code/AVR/SerialTest/SerialTest.ino new file mode 100644 index 0000000..9443ebd --- /dev/null +++ b/code/AVR/SerialTest/SerialTest.ino @@ -0,0 +1,62 @@ +#define DA A0 +#define RDA A1 +#define PB0 2 +#define PB1 A7 +#define PB2 A6 +#define PB3 A5 +#define PB4 A4 +#define PB5 A3 +#define PB6 A2 + +byte data = 0; +byte data_pins[] = { PB0, PB1, PB2, PB3, PB4, PB5, PB6 }; + +void setup() +{ + pinMode(DA, INPUT); + pinMode(RDA, OUTPUT); + pinMode(PB0, INPUT); + pinMode(PB1, INPUT); + pinMode(PB2, INPUT); + pinMode(PB3, INPUT); + pinMode(PB4, INPUT); + pinMode(PB5, INPUT); + pinMode(PB6, INPUT); + + Serial.begin(9600); +} + +void loop() +{ + digitalWrite(RDA, HIGH); // Tell PIA we are ready to receive data + + if (digitalRead(DA)) // Is there any data? + { + data = 0; + + for (byte i = 0; i < 7; i++) // Yes, get byte data + { + if (digitalRead(data_pins[i])) + { + data |= (1 << i); + } + } + + // Output received data to serial terminal. + Serial.print("Received: "); + Serial.print(data); + Serial.print("\t"); + + + for (int i = 7; i >= 0; i--) + { + Serial.print(digitalRead(data_pins[i])); + } + + Serial.print("\t"); + Serial.println((char)data); + + digitalWrite(RDA, LOW); + delay(12); + } +} \ No newline at end of file diff --git a/code/programs/1STREADME.TXT b/code/programs/1STREADME.TXT new file mode 100644 index 0000000..08c1dd0 --- /dev/null +++ b/code/programs/1STREADME.TXT @@ -0,0 +1,12 @@ +All the programs once loaded run automatically except disassembler. +The programs in the main programs directory load from the Woz monitor. Simply power up your replica 1, press reset and dump the file using the transfer method described in the replica 1 manual. + +Programs in the BASIC directory: + +Enter BASIC by typing E000R [return] + +Then download the program using your terminal program and it will auto start. + +Disassembler: + +To load: power up replica 1 and press RESET. Dump program through hyper terminal. To use: change memory locations $44 and $45 to your starting memory location to disassemble. Type "9F0R" ENTER to run the disassembler. At that point 19 lines of code will be displayed. To see the next 19 lines of code, just type "R" ENTER. \ No newline at end of file diff --git a/code/programs/ACEYDUCEY.TXT b/code/programs/ACEYDUCEY.TXT new file mode 100644 index 0000000..d6c2705 --- /dev/null +++ b/code/programs/ACEYDUCEY.TXT @@ -0,0 +1,286 @@ + + +004A: 00 08 00 10 12 D2 +0050: 05 BF FD BF BF BF F8 F8 +0058: BF B7 7F BF BF B7 FF 21 +0060: F7 BF 3F 3F 3F BF 77 10 +0068: 60 3C 00 04 01 01 01 03 +0070: ED ED ED ED EC ED ED ED +0078: FF F7 B7 F7 FF B7 FF 35 +0080: 17 7F F7 F7 BD B7 DF F7 +0088: B7 B7 F7 F7 AE A0 D0 00 +0090: 08 08 05 03 04 00 12 00 +0098: 82 59 5E 7D 68 80 EE FF +00A0: 77 37 F7 75 35 77 F1 37 +00A8: 77 57 F7 71 CD F7 F7 B7 +00B0: FF 97 B7 97 B2 B7 B7 00 +00B8: F6 F7 FF 0C FF 00 FF A0 +00C0: 09 04 04 FF FF 03 03 FF +00C8: 04 B6 F9 09 33 08 00 ED +00D0: 21 08 33 08 00 00 01 00 +00D8: 20 1F A5 0D BA 0D B0 F7 +00E0: 06 02 26 0B 02 0D 00 10 +00E8: 18 11 0C 0C 04 04 05 05 +00F0: 04 06 00 00 77 75 F7 25 +00F8: 00 B0 00 00 00 20 00 ED + + +0800: 82 40 0F 08 00 00 1E 45 +0808: 28 A0 29 47 01 22 CC 9C +0810: 00 15 08 64 00 A2 00 1B +0818: 08 C8 00 82 00 21 08 07 +0820: 00 84 00 27 08 0B 00 9A +0828: 00 2D 08 00 00 86 00 33 +0830: 08 0A 00 40 70 28 AB AD +0838: AD AD AD AD 29 03 5C B1 +0840: 40 06 03 5B 01 16 E0 01 +0848: C3 40 70 28 A1 A0 A0 A0 +0850: A0 A0 29 03 5C B1 40 06 +0858: 03 5B 01 39 F4 01 60 CB +0860: B2 16 B0 00 00 24 B6 B2 +0868: 02 03 5C B7 16 03 03 61 +0870: 28 C5 CE C5 D2 C7 D9 BA +0878: A0 29 46 C5 B1 03 53 28 +0880: C6 C9 D2 C5 A0 29 27 C3 +0888: 03 60 C3 1C B1 01 00 24 +0890: B1 6E 00 01 36 08 02 C5 +0898: B1 71 C5 B1 13 C3 03 5C +08A0: B1 08 07 03 CB B5 71 CB +08A8: B5 13 C3 13 38 D2 14 B9 +08B0: 09 00 72 03 60 CB B5 19 +08B8: B0 00 00 24 B5 12 02 03 +08C0: 5C B1 6C 07 03 5F B1 6E +08C8: 00 01 0D 12 02 5C B5 26 +08D0: 02 03 5F B5 F4 01 01 48 +08D8: 26 02 CA B5 71 CB B5 15 +08E0: B5 05 00 03 CB B5 71 CB +08E8: B5 13 CA B5 03 C5 B1 71 +08F0: C5 B1 13 CA B5 15 D2 03 +08F8: 62 CA B5 15 D2 45 28 A0 +0900: D5 CE C9 D4 D3 A0 CF C6 +0908: A0 D0 C8 C1 D3 C5 D2 A0 +0910: C4 C1 CD C1 C7 C5 29 03 +0918: 5C B1 08 07 03 5B 01 35 +0920: 58 02 60 CB B2 16 B0 00 +0928: 00 24 B6 B2 02 03 60 C5 +0930: B2 17 B0 00 00 24 B6 62 +0938: 02 03 61 28 CE CF A0 CD +0940: CF D2 C5 A0 D4 CF D2 D0 +0948: C5 C4 CF C5 D3 29 03 5F +0950: B1 6E 00 01 25 62 02 C5 +0958: B2 71 C5 B2 13 B1 01 00 +0960: 03 60 D2 19 2F 3F B1 0F +0968: 00 72 24 B6 80 02 03 5C +0970: B1 6C 07 03 5F B1 6E 00 +0978: 01 1C 80 02 61 28 D9 CF +0980: D5 A0 CD C9 D3 D3 C5 C4 +0988: A1 29 03 5C B5 26 02 03 +0990: 5F B1 6E 00 01 20 B2 02 +0998: 61 28 CE CF D4 C8 C9 CE +09A0: C7 A0 D4 CF A0 D3 C8 CF +09A8: CF D4 A0 C1 D4 A1 29 03 +09B0: 5F B1 6E 00 01 25 BC 02 +09B8: 53 28 C3 CF CD D0 D5 D4 +09C0: C5 D2 A0 D2 C5 D1 D5 C5 +09C8: D3 D4 A0 29 27 C3 03 60 +09D0: C3 16 B0 00 00 24 B8 20 +09D8: 03 01 17 C6 02 61 28 D3 +09E0: D4 C1 D4 D5 D3 A0 D2 C5 +09E8: D0 CF D2 D4 BA 29 03 63 +09F0: 01 19 D0 02 5C B7 16 03 +09F8: 03 0C 06 00 4E C1 40 22 +0A00: B1 0A 00 72 01 1B 0A 00 +0A08: 61 28 C1 C3 C5 D9 A0 C4 +0A10: D5 C3 C5 D9 A0 C3 C1 D2 +0A18: C4 A0 C7 C1 CD C5 29 01 +0A20: 28 14 00 61 28 C3 D2 C5 +0A28: C1 D4 C9 D6 C5 A0 C3 CF +0A30: CD D0 D5 D4 C9 CE C7 A0 +0A38: CD CF D2 D2 C9 D3 D4 CF +0A40: D7 CE AC A0 CE CA 29 01 +0A48: 05 15 00 63 01 05 16 00 +0A50: 63 01 05 17 00 63 01 2B +0A58: 1E 00 61 28 C1 C3 C5 AD +0A60: C4 D5 C3 C5 D9 A0 C9 D3 +0A68: A0 D0 CC C1 D9 C5 C4 A0 +0A70: C9 CE A0 D4 C8 C5 A0 C6 +0A78: CF CC CC CF D7 C9 CE C7 +0A80: 29 01 2A 23 00 61 28 CD +0A88: C1 CE CE C5 D2 AC A0 D4 +0A90: C8 C5 A0 C4 C5 C1 CC C5 +0A98: D2 A0 A8 C3 CF CD D0 D5 +0AA0: D4 C5 D2 A9 A0 C4 C5 C1 +0AA8: CC D3 29 01 2C 28 00 61 +0AB0: 28 D4 D7 CF A0 C3 C1 D2 +0AB8: C4 D3 A0 C6 C1 C3 C5 A0 +0AC0: D5 D0 AE A0 D9 CF D5 A0 +0AC8: C8 C1 D6 C5 A0 C1 CE A0 +0AD0: CF D0 D4 C9 CF CE 29 01 +0AD8: 25 32 00 61 28 D4 CF A0 +0AE0: C2 C5 D4 A0 CF D2 A0 CE +0AE8: CF D4 A0 C2 C5 D4 A0 C4 +0AF0: C5 D0 C5 CE C4 C9 CE C7 +0AF8: A0 CF CE 29 01 2C 3C 00 +0B00: 61 28 D7 C8 C5 D4 C8 C5 +0B08: D2 A0 CF D2 A0 CE CF D4 +0B10: A0 D9 CF D5 A0 C6 C5 C5 +0B18: CC A0 D4 C8 C5 A0 C3 C1 +0B20: D2 C4 A0 D7 C9 CC CC 29 +0B28: 01 2A 46 00 61 28 C8 C1 +0B30: D6 C5 A0 C1 A0 D6 C1 CC +0B38: D5 C5 A0 C2 C5 D4 D7 C5 +0B40: C5 CE A0 D4 C8 C5 A0 C6 +0B48: C9 D2 D3 D4 A0 D4 D7 CF +0B50: AE 29 01 2B 50 00 61 28 +0B58: C9 C6 A0 D9 CF D5 A0 C4 +0B60: CF A0 CE CF D4 A0 D7 C1 +0B68: CE D4 A0 D4 CF A0 C2 C5 +0B70: D4 AC A0 C9 CE D0 D5 D4 +0B78: A0 C1 A0 B0 29 01 09 64 +0B80: 00 CE 71 B1 64 00 01 09 +0B88: 6E 00 D1 71 B1 64 00 01 +0B90: 21 78 00 61 28 D9 CF D5 +0B98: A0 CE CF D7 A0 C8 C1 D6 +0BA0: C5 A0 29 46 D1 45 28 A0 +0BA8: C4 CF CC CC C1 D2 D3 29 +0BB0: 01 05 82 00 63 01 08 8C +0BB8: 00 5F B2 04 01 01 09 D2 +0BC0: 00 D1 71 D1 12 CD 01 08 +0BC8: DC 00 5F B1 78 00 01 09 +0BD0: F0 00 D1 71 D1 13 CD 01 +0BD8: 08 FA 00 5F B1 78 00 01 +0BE0: 23 04 01 61 28 C8 C5 D2 +0BE8: C5 A0 C1 D2 C5 A0 D9 CF +0BF0: D5 D2 A0 CE C5 D4 A0 D4 +0BF8: D7 CF A0 C3 C1 D2 C4 D3 +0C00: A0 29 01 10 0E 01 C1 71 +0C08: 2F 3F B1 0E 00 72 12 B1 +0C10: 01 00 01 0E 18 01 60 C1 +0C18: 1C B2 02 00 24 B2 0E 01 +0C20: 01 0E 22 01 60 C1 19 B1 +0C28: 0E 00 24 B2 0E 01 01 10 +0C30: 2C 01 C2 71 2F 3F B1 0E +0C38: 00 72 12 B1 01 00 01 0E +0C40: 36 01 60 C2 1C B2 02 00 +0C48: 24 B3 2C 01 01 0E 40 01 +0C50: 60 C2 19 B1 0E 00 24 B3 +0C58: 2C 01 01 0C 4A 01 60 C1 +0C60: 18 C2 24 B2 0E 01 01 0E +0C68: 5E 01 60 C1 1C B1 0B 00 +0C70: 24 B4 90 01 01 0E 68 01 +0C78: 60 C1 16 B1 0B 00 24 B4 +0C80: A4 01 01 0E 72 01 60 C1 +0C88: 16 B1 0C 00 24 B4 B8 01 +0C90: 01 0E 7C 01 60 C1 16 B1 +0C98: 0D 00 24 B4 CC 01 01 0E +0CA0: 86 01 60 C1 16 B1 0E 00 +0CA8: 24 B4 E0 01 01 06 90 01 +0CB0: 62 C1 01 08 9A 01 5F B5 +0CB8: F4 01 01 0B A4 01 61 28 +0CC0: CA C1 C3 CB 29 01 08 AE +0CC8: 01 5F B5 F4 01 01 0C B8 +0CD0: 01 61 28 D1 D5 C5 C5 CE +0CD8: 29 01 08 C2 01 5F B5 F4 +0CE0: 01 01 0B CC 01 61 28 CB +0CE8: C9 CE C7 29 01 08 D6 01 +0CF0: 5F B5 F4 01 01 0A E0 01 +0CF8: 61 28 C1 C3 C5 29 01 0E +0D00: F4 01 60 C2 1C B1 0B 00 +0D08: 24 B5 26 02 01 0E FE 01 +0D10: 60 C2 16 B1 0B 00 24 B5 +0D18: 3A 02 01 0E 08 02 60 C2 +0D20: 16 B1 0C 00 24 B5 4E 02 +0D28: 01 0E 12 02 60 C2 16 B1 +0D30: 0D 00 24 B6 62 02 01 0E +0D38: 1C 02 60 C2 16 B1 0E 00 +0D40: 24 B6 76 02 01 06 26 02 +0D48: 62 C2 01 08 30 02 5F B6 +0D50: 8A 02 01 0B 3A 02 61 28 +0D58: CA C1 C3 CB 29 01 08 44 +0D60: 02 5F B6 8A 02 01 0C 4E +0D68: 02 61 28 D1 D5 C5 C5 CE +0D70: 29 01 08 58 02 5F B6 8A +0D78: 02 01 0B 62 02 61 28 CB +0D80: C9 CE C7 29 01 08 6C 02 +0D88: 5F B6 8A 02 01 0A 76 02 +0D90: 61 28 C1 C3 C5 29 01 05 +0D98: 80 02 63 01 05 8A 02 63 +0DA0: 01 19 94 02 61 28 D7 C8 +0DA8: C1 D4 A0 C9 D3 A0 D9 CF +0DB0: D5 D2 A0 C2 C5 D4 A0 29 +0DB8: 47 01 06 99 02 54 CD 01 +0DC0: 0E 9E 02 60 CD 1B B0 00 +0DC8: 00 24 B6 A8 02 01 10 A3 +0DD0: 02 61 28 C3 C8 C9 C3 CB +0DD8: C5 CE A1 A1 29 01 05 A4 +0DE0: 02 63 01 08 A5 02 5F B2 +0DE8: 04 01 01 0C A8 02 60 CD +0DF0: 1A D1 24 B7 DA 02 01 2C +0DF8: B2 02 61 28 D3 CF D2 D2 +0E00: D9 AC A0 CD D9 A0 C6 D2 +0E08: C9 C5 CE C4 A0 C2 D5 D4 +0E10: A0 D9 CF D5 A0 C2 C5 D4 +0E18: A0 D4 CF CF A0 CD D5 C3 +0E20: C8 29 01 29 BC 02 61 28 +0E28: D9 CF D5 A0 C8 C1 D6 C5 +0E30: A0 CF CE CC D9 A0 29 46 +0E38: D1 45 28 A0 C4 CF CC CC +0E40: C1 D2 D3 A0 D4 CF A0 C2 +0E48: C5 D4 29 01 08 C6 02 5F +0E50: B6 8A 02 01 10 DA 02 C3 +0E58: 71 2F 3F B1 0E 00 72 12 +0E60: B2 02 00 01 0E E4 02 60 +0E68: C3 1C B2 02 00 24 B7 DA +0E70: 02 01 0E EE 02 60 C3 19 +0E78: B1 0E 00 24 B7 DA 02 01 +0E80: 0E F8 02 60 C3 1C B1 0B +0E88: 00 24 B8 2A 03 01 0E 02 +0E90: 03 60 C3 16 B1 0B 00 24 +0E98: B8 3E 03 01 0E 0C 03 60 +0EA0: C3 16 B1 0C 00 24 B8 52 +0EA8: 03 01 0E 16 03 60 C3 16 +0EB0: B1 0D 00 24 B8 66 03 01 +0EB8: 0E 20 03 60 C3 16 B1 0E +0EC0: 00 24 B8 7A 03 01 06 2A +0EC8: 03 62 C3 01 08 34 03 5F +0ED0: B9 8E 03 01 0B 3E 03 61 +0ED8: 28 CA C1 C3 CB 29 01 08 +0EE0: 48 03 5F B9 8E 03 01 0C +0EE8: 52 03 61 28 D1 D5 C5 C5 +0EF0: CE 29 01 08 5C 03 5F B9 +0EF8: 8E 03 01 0B 66 03 61 28 +0F00: CB C9 CE C7 29 01 08 70 +0F08: 03 5F B9 8E 03 01 0A 7A +0F10: 03 61 28 C1 C3 C5 29 01 +0F18: 05 84 03 63 01 0C 8E 03 +0F20: 60 C3 19 C1 24 B9 A2 03 +0F28: 01 08 98 03 5F B9 CA 03 +0F30: 01 0C A2 03 60 C3 18 C2 +0F38: 24 B9 CA 03 01 11 B6 03 +0F40: 61 28 D9 CF D5 A0 D7 C9 +0F48: CE A1 A1 A1 29 01 08 C0 +0F50: 03 5F B2 D2 00 01 16 CA +0F58: 03 61 28 D3 CF D2 D2 D9 +0F60: AC A0 D9 CF D5 A0 CC CF +0F68: D3 C5 29 01 0C D4 03 60 +0F70: CD 1C D1 24 B2 F0 00 01 +0F78: 05 DE 03 63 01 05 E8 03 +0F80: 63 01 2A F2 03 61 28 D3 +0F88: CF D2 D2 D9 AC A0 C6 D2 +0F90: C9 C5 CE C4 A0 C2 D5 D4 +0F98: A0 D9 CF D5 A0 C2 CC C5 +0FA0: D7 A0 D9 CF D5 D2 A0 D7 +0FA8: C1 C4 29 01 1D FC 03 61 +0FB0: 28 D4 D2 D9 A0 C1 C7 C1 +0FB8: C9 CE A0 A8 D9 C5 D3 A0 +0FC0: CF D2 A0 CE CF A9 29 47 +0FC8: 01 07 01 04 52 C1 40 01 +0FD0: 11 06 04 60 C1 40 39 28 +0FD8: D9 C5 D3 29 24 B1 6E 00 +0FE0: 01 1A 10 04 61 28 CF CB +0FE8: A0 C8 CF D0 C5 A0 D9 CF +0FF0: D5 A0 C8 C1 C4 A0 C6 D5 +0FF8: CE 29 01 05 1A 04 51 01 +E2B3R + +RUN diff --git a/code/programs/BASIC/1streadme.txt b/code/programs/BASIC/1streadme.txt new file mode 100644 index 0000000..b2a8e96 --- /dev/null +++ b/code/programs/BASIC/1streadme.txt @@ -0,0 +1,11 @@ +The programs listed here are to be loaded while in BASIC. + +To load: + +Power up the replica 1, press RESET button. + +Type 'E000R' and then Enter key. + +Transfer the program with your terminal program (Hyperterminal) as described in the replica 1 Manual. + +Once the program is downloaded, it will run automatically. \ No newline at end of file diff --git a/code/programs/BASIC/23-MATCH.TXT b/code/programs/BASIC/23-MATCH.TXT new file mode 100644 index 0000000..a6616f8 --- /dev/null +++ b/code/programs/BASIC/23-MATCH.TXT @@ -0,0 +1,68 @@ +20 TAB(16):PRINT "23 MATCHES" +30 TAB(5):PRINT "CREATIVE COMPUTING, NEW JERSEY" +35 TAB(1):PRINT "MODIFIED BY PHILIP LORD FOR THE APPLE 1" +40 PRINT:PRINT:PRINT +80 PRINT "THIS IS A GAME CALLED '23 MATCHES'." +90 PRINT +100 PRINT "WHEN IT IS YOUR TURN, YOU MAY TAKE ONE," +110 PRINT "TWO, OR THREE MATCHES. THE OBJECT OF " +120 PRINT "THE GAME IS NOT TO TAKE THE LAST MATCH." +130 PRINT +140 PRINT "LET'S FLIP A COIN TO SEE WHO GOES" +150 PRINT "FIRST. IF IT IS HEADS THEN I WIN" +155 PRINT "THE TOSS..." +155 PRINT +160 REM +165 N = 23 +170 Q =RND(2) +180 IF Q = 1 THEN 210 +190 PRINT "TAILS! YOU GO FIRST. " +195 PRINT +200 GOTO 300 +210 PRINT "HEADS! I WIN! HA! HA!" +220 PRINT "PREPARE TO LOSE, MEATBALL-NOSE!!" +230 PRINT +250 PRINT "I TAKE 2 MATCHES" +260 N = N -2 +270 PRINT "THE NUMBER OF MATCHES IS NOW "; N +280 PRINT +290 PRINT "YOUR TURN" +295 PRINT "YOU MAY TAKE 1, 2 OR 3 MATCHES." +300 PRINT "HOW MANY DO YOU WISH TO REMOVE" +310 INPUT K +320 IF K > 3 THEN 430 +330 IF K <= 0 THEN 430 +340 N = N - K +350 PRINT "THERE ARE NOW ";N;" MATCHES REMAINING." +351 IF N = 4 THEN 381 +352 IF N = 3 THEN 383 +353 IF N = 2 THEN 385 +360 IF N <= 1 THEN 530 +370 Z = 4 - K +372 GOTO 390 +380 PRINT +381 Z = 3 +382 GOTO 390 +383 Z = 2 +384 GOTO 390 +385 Z = 1 +390 PRINT "MY TURN! I REMOVE "; Z ;" MATCHES" +400 N = N - Z +410 IF N <= 1 THEN 470 +420 GOTO 270 +430 PRINT "VERY FUNNY! DUMMY!" +440 PRINT "DO YOU WANT TO PLAY OR GOOF AROUND?" +450 PRINT "NOW, HOW MANY MATCHES DO YOU WANT" +460 GOTO 310 +470 PRINT +480 PRINT "SORRY! YOU TOOK THE LAST MATCH!" +490 PRINT "HA! HA! I BEAT YOU!!!" +500 PRINT +510 PRINT "GOOD BYE LOSER!" +520 GOTO 560 +530 PRINT: PRINT "YOU WON, FLOPPY EARS!" +540 PRINT "THINK YOU'RE PRETTY SMART!" +550 PRINT: PRINT "LETS PLAY AGAIN (Y/N).": INPUT Y$ +555 IF Y$="Y" THEN GOTO 130 +560 END +RUN diff --git a/code/programs/BASIC/AMAZING.TXT b/code/programs/BASIC/AMAZING.TXT new file mode 100644 index 0000000..e066ca5 --- /dev/null +++ b/code/programs/BASIC/AMAZING.TXT @@ -0,0 +1,169 @@ + +SCR +LOMEM=768 +HIMEM=16384 +10 TAB(28):PRINT "AMAZING PROGRAM" +20 TAB(15):PRINT "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" +25 REM PORTED TO REPLICA/1 BY CARL CLAUNCH +30 PRINT:PRINT:PRINT:PRINT +100 INPUT "WHAT ARE YOUR WIDTH AND LENGTH",H,V +102 IF H#1 AND V#1 THEN 110 +104 PRINT "MEANINGLESS DIMENSIONS. TRY AGAIN.":GOTO 100 +110 DIM W(H*V),U(H*V) +115 FOR I=1 TO H*V:W(I)=0:U(I)=0:NEXT I +120 PRINT +130 PRINT +140 PRINT +150 PRINT +160 Q=0:Z=0:X=RND(H)+1 +165 FOR I=1 TO H +170 IF I=X THEN 173 +171 PRINT ".--";:GOTO 180 +173 PRINT ". "; +180 NEXT I +190 PRINT "." +195 C=1:W((X-1)*V+1)=C:C=C+1 +200 R=X:S=1:GOTO 260 +210 IF R#H THEN 240 +215 IF S#V THEN 230 +220 R=1:S=1:GOTO 250 +230 R=1:S=S+1:GOTO 250 +240 R=R+1 +250 IF W((R-1)*V+S)=0 THEN 210 +260 IF R-1=0 THEN 530 +265 IF W((R-2)*V+S)#0 THEN 530 +270 IF S-1=0 THEN 390 +280 IF W((R-1)*V+S-1)#0 THEN 390 +290 IF R=H THEN 330 +300 IF W(R*V+S)#0 THEN 330 +310 X=RND(3)+1 +320 GOTO 320+X +321 GOTO 790 +322 GOTO 820 +323 GOTO 860 +330 IF S#V THEN 340 +334 IF Z=1 THEN 370 +338 Q=1:GOTO 350 +340 IF W((R-1)*V+S+1)#0 THEN 370 +350 X=RND(3)+1 +360 GOTO 360+X +361 GOTO 790 +362 GOTO 820 +363 GOTO 910 +370 X=RND(2)+1 +380 GOTO 380+X +381 GOTO 790 +382 GOTO 820 +390 IF R=H THEN 470 +400 IF W(R*V+S)#0 THEN 470 +405 IF S#V THEN 420 +410 IF Z=1 THEN 450 +415 Q=1:GOTO 430 +420 IF W((R-1)*V+S+1)#0 THEN 450 +430 X=RND(3)+1 +440 GOTO 440+X +441 GOTO 790 +442 GOTO 860 +443 GOTO 910 +450 X=RND(2)+1 +460 GOTO 460+X +461 GOTO 790 +462 GOTO 860 +470 IF S#V THEN 490 +480 IF Z=1 THEN 520 +485 Q=1:GOTO 500 +490 IF W((R-1)*V+S+1)#0 THEN 520 +500 X=RND(2)+1 +510 GOTO 510+X +511 GOTO 790 +512 GOTO 910 +520 GOTO 790 +530 IF S-1=0 THEN 670 +540 IF W((R-1)*V+S-1)#0 THEN 670 +545 IF R=H THEN 610 +547 IF W(R*V+S)#0 THEN 610 +550 IF S#V THEN 560 +552 IF Z=1 THEN 590 +554 Q=1:GOTO 570 +560 IF W((R-1)*V+S+1)#0 THEN 590 +570 X=RND(3)+1 +580 GOTO 580+X +581 GOTO 820 +582 GOTO 860 +583 GOTO 910 +590 X=RND(2)+1 +600 GOTO 600+X +601 GOTO 820 +602 GOTO 860 +610 IF S#V THEN 630 +620 IF Z=1 THEN 660 +625 Q=1:GOTO 640 +630 IF W((R-1)*V+S+1)#0 THEN 660 +640 X=RND(2)+1 +650 GOTO 650+X +651 GOTO 820 +652 GOTO 910 +660 GOTO 820 +670 IF R=H THEN 740 +680 IF W(R*V+S)#0 THEN 740 +685 IF S#V THEN 700 +690 IF Z=1 THEN 730 +695 Q=1:GOTO 830 +700 IF W((R-1)*V+S+1)#0 THEN 730 +710 X=RND(2)+1 +720 GOTO 720+X +721 GOTO 860 +722 GOTO 910 +730 GOTO 860 +740 IF S#V THEN 760 +750 IF Z=1 THEN 780 +755 Q=1:GOTO 770 +760 IF W((R-1)*V+S+1)#0 THEN 780 +770 GOTO 910 +780 GOTO 1000 +790 W((R-2)*V+S)=C +800 C=C+1:U((R-2)*V+S)=2:R=R-1 +810 IF C=H*V+1 THEN 1010 +815 Q=0:GOTO 260 +820 W((R-1)*V+S-1)=C +830 C=C+1 +840 U((R-1)*V+S-1)=1:S=S-1:IF C=H*V+1 THEN 1010 +850 Q=0:GOTO 260 +860 W(R*V+S)=C +870 C=C+1:IF U((R-1)*V+S)=0 THEN 880 +875 U((R-1)*V+S)=3:GOTO 890 +880 U((R-1)*V+S)=2 +890 R=R+1 +900 IF C=H*V+1 THEN 1010 +905 GOTO 530 +910 IF Q=1 THEN 960 +920 W((R-1)*V+S+1)=C:C=C+1:IF U((R-1)*V+S)=0 THEN 940 +930 U((R-1)*V+S)=3:GOTO 950 +940 U((R-1)*V+S)=1 +950 S=S+1:IF C=H*V+1 THEN 1010 +955 GOTO 260 +960 Z=1 +970 IF U((R-1)*V+S)=0 THEN 980 +975 U((R-1)*V+S)=3:Q=0:GOTO 1000 +980 U((R-1)*V+S)=1:Q=0:S=1:R=1:GOTO 250 +1000 GOTO 210 +1010 FOR J=1 TO V +1011 PRINT "I"; +1012 FOR I=1 TO H +1013 IF U((I-1)*V+J)<2 THEN 1030 +1020 PRINT " "; +1021 GOTO 1040 +1030 PRINT " I"; +1040 NEXT I +1041 PRINT +1043 FOR I=1 TO H +1045 IF U((I-1)*V+J)=0 THEN 1060 +1050 IF U((I-1)*V+J)=2 THEN 1060 +1051 PRINT ": "; +1052 GOTO 1070 +1060 PRINT ":--"; +1070 NEXT I +1071 PRINT "." +1072 NEXT J +1073 END +RUN diff --git a/code/programs/BASIC/BATNUM.TXT b/code/programs/BASIC/BATNUM.TXT new file mode 100644 index 0000000..a477085 --- /dev/null +++ b/code/programs/BASIC/BATNUM.TXT @@ -0,0 +1,99 @@ +10 TAB(16): PRINT "BATNUM" +20 TAB(5):PRINT "CREATIVE COMPUTING, NEW JERSEY" +25 TAB(1):PRINT "MODIFIED BY PHILIP LORD FOR THE APPLE 1" +30 PRINT:PRINT:PRINT +110 PRINT "THIS PROGRAM IS A 'BATTLE OF NUMBERS'" +120 PRINT "GAME, WHERE THE COMPUTER IS YOUR " +125 PRINT "OPPONENT." +130 PRINT +140 PRINT "THE GAME STARTS WITH AN ASSUMED PILE OF" +150 PRINT "OBJECTS. YOU AND YOUR OPPONENT " +160 PRINT "ALTERNATELY TAKE OBJECTS FROM THE PILE." +170 PRINT "WINNING IS DEFINED IN ADVANCE AS TAKING" +175 PRINT "THE LAST OBJECT OR NOT. YOU CAN ALSO" +178 PRINT "SET SOME OTHER BEGINNING CONDITIONS." +180 PRINT "DON'T USE ZERO, HOWEVER, IN PLAYING THE" +190 PRINT "GAME. ENTER A NEGATIVE NUMBER FOR NEW " +195 PRINT "PILE SIZE TO STOP PLAYING." +200 PRINT +210 GOTO 330 +220 FOR I=1 TO 10 +230 PRINT +240 NEXT I +330 PRINT"ENTER PILE SIZE": INPUT N: PRINT +350 IF N>=1 THEN 370 +360 GOTO 330 +370 IF N<>N THEN 220 +380 IF N<1 THEN 220 +390 PRINT "ENTER WIN OPTION" +390 PRINT "1 TO TAKE LAST, 2 TO AVOID LAST: ": INPUT M: PRINT +410 IF M=1 THEN 430 +420 IF M<>2 THEN 390 +430 PRINT "ENTER MIN AND MAX ": INPUT A,B: PRINT +450 IF A>B THEN 430 +460 IF A<1 THEN 430 +470 IF A<>A THEN 430 +480 IF B<>B THEN 430 +490 PRINT "ENTER START OPTION" +490 PRINT "1 COMPUTER FIRST, 2 YOU FIRST ": INPUT S +500 PRINT:PRINT +510 IF S=1 THEN 530 +520 IF S<>2 THEN 490 +530 C=A+B +540 IF S=2 THEN 570 +550 GOSUB 600 +560 IF W=1 THEN 220 +570 GOSUB 810 +580 IF W=1 THEN 220 +590 GOTO 550 +600 Q=N +610 IF M=1 THEN 630 +620 Q=Q-1 +630 IF M=1 THEN 680 +640 IF N>A THEN 720 +650 W=1 +660 PRINT "COMPUTER TAKES ";N;" AND LOSES." +670 RETURN +680 IF N>B THEN 720 +690 W=1 +700 PRINT "COMPUTER TAKES ";N;" AND WINS." +710 RETURN +720 P=Q-C*(Q/C) +730 IF P>=A THEN 750 +740 P=A +750 IF P<=B THEN 770 +760 P=B +770 N=N-P +780 PRINT "COMPUTER TAKES ";P;" AND LEAVES ";N +790 W=0 +800 RETURN +810 PRINT:PRINT "YOUR MOVE "; +820 INPUT P +830 IF P<>0 THEN 870 +840 PRINT: PRINT "I TOLD YOU NOT TO USE ZERO!" +845 PRINT "COMPUTER WINS BY FORFEIT." +850 W=1 +860 RETURN +870 IF P<>P THEN 920 +880 IF P>=A THEN 910 +890 IF P=N THEN 960 +900 GOTO 920 +910 IF P<=B THEN 940 +920 PRINT "ILLEGAL MOVE, REENTER IT "; +930 GOTO 820 +940 N=N-P +950 IF N<>0 THEN 1030 +960 IF M=1 THEN 1000 +970 PRINT "TOUGH LUCK, YOU LOSE." +980 W=1 +990 RETURN +1000 PRINT "CONGRATULATIONS, YOU WIN." +1010 W=1 +1020 RETURN +1030 IF N>=0 THEN 1060 +1040 N=N+P +1050 GOTO 920 +1060 W=0 +1070 RETURN +1080 END +RUN diff --git a/code/programs/BASIC/CHECKERS.TXT b/code/programs/BASIC/CHECKERS.TXT new file mode 100644 index 0000000..6ec09d5 --- /dev/null +++ b/code/programs/BASIC/CHECKERS.TXT @@ -0,0 +1,76 @@ +E000R +SCR +LOMEM=700 + +1 REM CONVERSION BY VINCE BRIEL 1/28/2007 +2 TAB(16):PRINT "CHECKERS":PRINT "CREATIVE COMPUTING MORRISTOWN NEW JERSEY " +3 PRINT "COMPUTER IS X, AND YOU ARE O. (1,1) IS THE LOWER LEFT CORNER" +4 PRINT "(1,8) IS THE UPPER LEFT CORNER (8,1) IS THE LOWER RIGHT CORNER" +5 PRINT "(8,8) IS THE UPPER RIGHT CORNER '+TO' = ANOTHER? TYPE 0 FOR NO" +6 DIM R(5),S(64):G=-1:R(1)=-99:FOR X=1 TO 64:S(X)=0:NEXT X +7 S(1)=1:S(3)=1:S(5)=1:S(7)=1:S(10)=1:S(12)=1:S(14)=1:S(16)=1:S(17)=1:S(19)=1:S(21)=1:S(23)=1 +8 S(42)=-1:S(44)=-1:S(46)=-1:S(48)=-1:S(49)=-1:S(51)=-1 +9 S(53)=-1:S(55)=-1:S(58)=-1:S(60)=-1:S(62)=-1:S(64)=-1 +10 FOR X=1 TO 8:FOR Y=1 TO 8:IF S((8*Y+X)-8)>-1 THEN 350 +310 IF S((8*Y+X)-8)#-1 THEN 330 +320 FOR A=-1 TO 1 STEP 2:B=G:GOSUB 650:NEXT A +330 IF S((8*Y+X)-8)#-2 THEN 350 +340 FOR A=-1 TO 1 STEP 2:FOR B=-1 TO 1 STEP 2:GOSUB 650:NEXT B,A +350 NEXT Y,X:GOTO 1140 +650 U=X+A:V=Y+B:IF U<1 OR U>8 OR V<1 OR V>8 THEN 870 +740 IF S((8*V+U)-8)#0 THEN 770 +750 GOSUB 910:GOTO 870 +770 IF S((8*V+U)-8)<0 THEN 870 +790 U=U+A:V=V+B:IF U<1 OR V<1 OR U>8 OR V>8 THEN 870 +850 IF S((8*V+U)-8)=0 THEN GOSUB 910 +870 RETURN +910 IF V=0 AND S((8*Y+X)-8)=-1 THEN Q=Q+2 +920 IF ABS(Y-V)=2 THEN Q=Q+5 +960 IF Y=8 THEN Q=Q-2 +980 IF U=1 OR U=8 THEN Q=Q+1 +1030 FOR C=-1 TO 1 STEP 2:IF U+C<1 OR U+C>8 OR V+G<1 THEN 1080 +1032 U1=U+C:V1=V+G:X1=U-C:Y1=V-G +1035 IF S((8*V1+U1)-8)>=0 THEN 1040 +1037 Q=Q+1:GOTO 1080 +1040 IF U-C<1 OR U-C>8 OR V-G>8 OR S((8*V1+U1)-8)<=0 OR S((8*Y1+X1)-8)#0 THEN 1080 +1060 IF U-C=X AND V-G=Y THEN Q=Q-2 +1080 NEXT C:IF Q<=R(1)THEN 1100 +1090 R(1)=Q:R(2)=X:R(3)=Y:R(4)=U:R(5)=V +1100 Q=0:RETURN +1140 IF R(1)=-99 THEN 1880 +1230 PRINT "FROM ";R(2);",";R(3);" TO ";R(4);",";R(5);:R(1)=-99 +1240 IF R(5)#1 THEN 1250 +1245 S((8*R(5)+R(4))-8)=-2:S((8*R(3)+R(2))-8)=0:GOTO 1420 +1250 S((8*R(5)+R(4))-8)=S((8*R(3)+R(2))-8):S((8*R(3)+R(2))-8)=0:IF ABS(R(2)-R(4))#2 THEN 1420 +1330 U1=(R(2)+R(4))/2:V1=(R(3)+R(5))/2:S((8*V1+U1)-8)=0 +1340 X=R(4):Y=R(5):IF S((8*Y+X)-8)#-1 THEN 1350 +1345 B=-2:FOR A=-2 TO 2 STEP 4:GOSUB 1370 +1350 IF S((8*Y+X)-8)#-2 THEN 1360 +1355 FOR A=-2 TO 2 STEP 4:FOR B=-2 TO 2 STEP 4:GOSUB 1370:NEXT B +1360 NEXT A:IF R(1)=-99 THEN 1420 +1365 PRINT" TO ";R(4);",";R(5);:R(1)=-99:GOTO 1240 +1370 U=X+A:V=Y+B:IF U<1 OR U>8 OR V<1 OR V>8 THEN 1400 +1380 X1=X+A/2:Y1=Y+B/2:IF S((8*V+U)-8)=0 AND S((8*Y1+X1)-8)>0 THEN GOSUB 910 +1400 RETURN +1420 PRINT:PRINT:FOR Y=8 TO 1 STEP-1:FOR X=1 TO 8:TAB(X*4):IF S((8*Y+X)-8)=0 THEN PRINT"."; +1470 IF S((8*Y+X)-8)=1 THEN PRINT"O"; +1490 IF S((8*Y+X)-8)=-1 THEN PRINT"X"; +1510 IF S((8*Y+X)-8)=-2 THEN PRINT"X*"; +1530 IF S((8*Y+X)-8)=2 THEN PRINT"O*"; +1550 NEXT X:PRINT:PRINT:NEXT Y:PRINT +1552 FOR L=1 TO 8:FOR M=1 TO 8:IF S((8*M+L)-8)=1 OR S((8*M+L)-8)=2 THEN U1=1 +1558 IF S((8*M+L)-8)=-1 OR S((8*M+L)-8)=-2 THEN V1=1 +1560 NEXT M,L:IF U1#1 THEN 1885 +1566 IF V1#1 THEN 1880 +1590 U1=0: V1=0:INPUT "FROM",E,H:X=E:Y=H:IF S((8*Y+X)-8)<=0 THEN 1590 +1670 INPUT "TO",A,B:X=A:Y=B:IF S((8*Y+X)-8)#0 OR ABS(A-E)>2 OR ABS(A-E)#ABS(B-H) THEN 1670 +1750 S((8*B+A)-8)=S((8*H+E)-8):S((8*H+E)-8)=0:IF ABS(E-A)#2 THEN 1810 +1800 X1=(E+A)/2:Y1=(H+B)/2:S((8*Y1+X1)-8)=0 +1802 INPUT "+TO",X1,Y1:IF X1<1 THEN 1810 +1804 IF S((8*Y1+X1)-8)#0 OR ABS(X1-A)#2 OR ABS(Y1-B)#2 THEN 1802 +1806 E=A:H=B:A=X1:B=Y1:GOTO 1750 +1810 IF B=8 THEN S((8*B+A)-8)=2 +1830 GOTO 10 +1880 PRINT: PRINT "YOU WIN.": END +1885 PRINT: PRINT "I WIN.": END +RUN diff --git a/code/programs/BASIC/COLUMNS.TXT b/code/programs/BASIC/COLUMNS.TXT new file mode 100644 index 0000000..b35330d --- /dev/null +++ b/code/programs/BASIC/COLUMNS.TXT @@ -0,0 +1,98 @@ + +SCR +LOMEM=768 +HIMEM=16384 +100 TAB(26):PRINT "COLUMN" +110 TAB(20):PRINT "CREATIVE COMPUTING" +120 TAB(18):PRINT "MORRISTOWN, NEW JERSEY" +125 REM PORTED TO REPLICA/1 BY CARL CLAUNCH +130 PRINT:PRINT:PRINT +140 PRINT "THIS PROGRAM WILL SHOW YOU A CARD TRICK. AFTER THE FIRST DEAL" +150 PRINT "PICK A CARD AND TYPE THE NUMBER OF THE COLUMN CONTAINING IT." +160 PRINT "THE DEALER WILL THEN PICK UP THE CARDS, A COLUMN AT A TIME" +170 PRINT "AND WILL DEAL THEM OUT AGAIN HORIZONTALLY. WHEN HE FINISHES" +180 PRINT "EACH TIME, TYPE THE NUMBER OF THE NEW COLUMN CONTAINING YOUR" +190 PRINT "CARD. FOLLOWING THE LAST DEAL THE DEALER WILL TURN OVER THE" +200 PRINT "CARDS, ONE AT A TIME, UNTIL HE REACHES THE ONE YOU PICKED." +210 PRINT:PRINT:PRINT +220 DIM A(21),B(21),C$(6),D$(2),T$(3),A$(5) +230 FOR X=1 TO 21 +240 J=0 +250 T=RND(52) +270 FOR Y=1 TO X-1 +280 IF A(Y)=T THEN 250 +290 NEXT Y +300 A(X)=T +310 NEXT X +320 N=0 +330 FOR I=1 TO 3 +340 FOR Z=1 TO 21 +350 IF A(Z)=A(Z)/4*4 THEN 470 +360 IF A(Z)-2= A(Z)/4*4 THEN 440 +370 IF A(Z)-3= A(Z)/4*4 THEN 410 +380 C$="SPADES" +390 D$="" +400 GOTO 490 +410 C$="HEARTS" +420 D$="" +430 GOTO 490 +440 C$="CLUBS" +450 D$="" +460 GOTO 490 +470 C$="DIAMON" +480 D$="DS" +490 N=N+1 +500 IF N#4 THEN 530 +510 PRINT +520 N=1 +530 IF A(Z)>35 THEN 580 +540 TAB((N-1)*25):PRINT A(Z)/4+2;" OF ";C$;D$; +550 IF J=5 THEN 900 +560 IF J=10 THEN 980 +570 GOTO 710 +580 IF A(Z)/4=9 THEN 670 +590 IF A(Z)/4=10 THEN 650 +600 IF A(Z)/4=11 THEN 630 +610 A$="JACK" +620 GOTO 680 +630 A$="QUEEN" +640 GOTO 680 +650 A$="KING" +660 GOTO 680 +670 A$="ACE" +680 TAB((N-1)*25):PRINT A$;" OF ";C$;D$; +690 IF J=5 THEN 900 +700 IF J=10 THEN 980 +710 NEXT Z +720 PRINT:PRINT +730 INPUT "WHICH COLUMN CONTAINS YOUR CARD? ",K +740 IF K>=1 AND K<=3 THEN 760 +750 PRINT:PRINT "(1-3)":GOTO 730 +760 PRINT:PRINT +770 T=1 +780 S=K+2-3*((K+1)/3) +790 GOSUB 940 +800 S=K +810 GOSUB 940 +820 S=K+1-3*(K/3) +830 GOSUB 940 +840 FOR C=1 TO 21 +850 A(C)=B(C) +860 NEXT C +870 NEXT I +880 J=5 +890 FOR Z=1 TO 11+RND(10)+1:N=0:GOTO 350 +900 PRINT:NEXT Z:PRINT +910 PRINT "OOPS!!! YOUR CARD IS THE "; +920 N=1 +930 J=10:Z=11:GOTO 350 +940 FOR R=S TO S+18 STEP 3 +950 B(T)=A(R) +960 T=T+1 +970 NEXT R:RETURN +980 PRINT ".":PRINT +990 INPUT "DO YOU WANT TO SEE IT AGAIN?",T$ +1000 IF T$#"YES" THEN 1020 +1010 PRINT:PRINT:GOTO 230 +1020 END +RUN diff --git a/code/programs/BASIC/CONCENTRATION.TXT b/code/programs/BASIC/CONCENTRATION.TXT new file mode 100644 index 0000000..747bda1 --- /dev/null +++ b/code/programs/BASIC/CONCENTRATION.TXT @@ -0,0 +1,104 @@ +SCR +LOMEM=768 +HIMEM=16384 +10 TAB(25): PRINT "CONCENTRATION" +20 TAB(15): PRINT "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" +25 REM PORTED TO REPLICA/1 BY CARL CLAUNCH +30 PRINT +40 PRINT +50 PRINT +200 DIM C$(156),K$(3),Z$(3),E$(156),L$(3),M$(156) +210 GOSUB 1000 +230 C$=E$ +250 REM -- SHUFFLE AND DEAL +255 PRINT "CARD DECK IS :" +260 FOR Z=1 TO 51 +270 K$=C$((Z-1)*3+1,Z*3) +272 PRINT K$;" "; +275 L=Z:IF RND(2) THEN L=53-Z +280 L$=C$((L-1)*3+1,L*3):Q=Z:GOSUB 2000 +290 L$=K$:Q=L:GOSUB 2000 : REM INSERT INTO C$(Q) +300 NEXT Z +310 PRINT:PRINT "SHUFFLING DECK . . ." +330 PRINT "ENTER 0 AT ANY TIME TO QUIT" +335 GOSUB 950 +340 REM -- START TO PLAY +350 FOR N=1 TO 26 +360 INPUT "FIRST CARD",U +365 IF U=0 THEN 900 +370 IF U>0 AND U<53 THEN 380 +374 PRINT "THERE ARE ONLY 52 CARDS IN THE DECK, NOT ";U +376 GOTO 360 +380 LET G=1 +390 IF C$((U-1)*3+1,U*3)=" " THEN 840 +400 INPUT "SECOND CARD",W +405 IF W=0 THEN 900 +410 IF W>0 AND W<53 THEN 420 +414 PRINT "THERE ARE ONLY 52 CARDS IN THE DECK, NOT ";W +416 GOTO 400 +420 LET G=2 +430 IF C$((W-1)*3+1,W*3)=" " THEN 840 +440 IF U#W THEN 470 +450 PRINT "YOU CAN'T PICK THE SAME CARD TWICE!" +460 GOTO 400 +470 IF C$((U-1)*3+1,(U-1)*3+2)=C$((W-1)*3+1,(W-1)*3+2) THEN 580 +480 PRINT "#";U;" IS ";C$((U-1)*3+1,U*3),"#";W;" IS ";C$((W-1)*3+1,W*3) +490 PRINT +570 GOTO 630 +580 PRINT "THAT'S A MATCH --";C$((U-1)*3+1,U*3),C$((W-1)*3+1,W*3) +590 L$=" ":Q=U:GOSUB 2000:REM INSERT INTO C$(Q) +600 Q=W:GOSUB 2000:REM INSERT INTO C$(Q) +610 LET S=S+1 +620 PRINT "YOUR SCORE IS NOW ";S;" YOU HAVE HAD ";N;" PICKS" +630 GOSUB 2200 +635 NEXT N +640 REM -- THE RESULTS +650 LET S1=S*10/55 +660 PRINT "YOU SCORED ";S;" OUT OF ";N;" THAT IS "; +670 GOTO 680+20*S1 +680 PRINT "POOR." +690 GOTO 770 +700 PRINT "FAIR." +710 GOTO 770 +720 PRINT "GOOD." +730 GOTO 770 +740 PRINT "EXCELLENT ! ! !" +750 GOTO 770 +760 PRINT ". . . AHHH . . . UH...YOU MUST HAVE CHEATED!" +770 PRINT +780 INPUT "DO YOU WANT TO PLAY AGAIN",Z$ +800 IF Z$ = "YES" THEN 210 +810 PRINT +820 PRINT "COME BACK AGAIN!!" +830 END +840 PRINT "YOU HAVE ALREADY MATCHED THAT CARD." +850 IF G=1 THEN 360 +860 GOTO 400 +900 PRINT "SORRY YOU DECIDED TO QUIT. BYE." +910 END +950 PRINT "HIT ENTER REPEATEDLY UNTIL AT BOTTOM OF SCREEN," +955 PRINT "THEN TYPE ANY LETTER TO BEGIN THE GAME" +960 INPUT D$ +970 IF LEN(D$)#0 THEN RETURN +975 PRINT +980 GOTO 960 +1000 REM SUB TO LOAD E$ THE FIRST TIME +1010 E$ = " AS 2S 3S 4S 5S 6S 7S 8S 9S10S JS QS KS" +1020 E$(LEN(E$)+1)=" AH 2H 3H 4H 5H 6H 7H 8H 9H10H JH QH KH" +1030 E$(LEN(E$)+1)=" AD 2D 3D 4D 5D 6D 7D 8D 9D10D JD QD KD" +1040 E$(LEN(E$)+1)=" AC 2C 3C 4C 5C 6C 7C 8C 9C10C JC QC KC" +1050 RETURN +2000 REM INSERTS L$ AT LOCATION Q INTO C$ +2010 IF Q = 52 THEN 2030 +2020 M$=C$(Q*3+1) +2030 C$((Q-1)*3+1)=L$ +2040 IF Q<52 THEN C$(Q*3+1)=M$ +2050 RETURN +2200 REM ADVANCE TO TOP OF SCREEN FOR NEXT TRIAL +2210 FOR I5=1 TO 1500:NEXT I5 : REM DELAY LOOP +2220 FOR I5=1 TO 24 +2230 PRINT +2240 NEXT I5 +2260 RETURN +3000 END +RUN diff --git a/code/programs/BASIC/ELIZA.TXT b/code/programs/BASIC/ELIZA.TXT new file mode 100644 index 0000000..61c036a --- /dev/null +++ b/code/programs/BASIC/ELIZA.TXT @@ -0,0 +1,358 @@ + +SCR +LOMEM=768 +HIMEM=16384 +5 PRINT "**************************" +10 TAB (6): PRINT "ELIZA" +20 PRINT "CREATIVE COMPUTING" +30 PRINT "MORRISTOWN, NEW JERSEY": PRINT +40 REM PORTED AND REWRITTEN FOR REPLICA 1 +45 REM BY VINCE BRIEL AND CARL CLAUNCH +55 PRINT "*************************" +60 PRINT : PRINT : PRINT +100 DIM S(36),R(36),N(36) +105 DIM K$(36),W$(37),O$(27),R$(112),I$(90),X$(155) +106 DIM P$(100) +107 DIM J(14),J$(112) +108 DIM D$(255),D(36),E(36) +109 DIM B$(200) +110 N1=36:V1=14:P$="" +120 GOSUB 5000 +160 PRINT "HI! I'M ELIZA. WHAT'S YOUR PROBLEM?" +200 INPUT X$ +201 I$=" " +202 I$(2)=X$ +203 F=LEN(I$) +204 I$(F+1)=" " +205 F=F+2 +210 IF X$="QUIT" THEN 9999 +215 X$(F-2)=" " +220 IF X$(1,4)#"SHUT" THEN 255 +230 PRINT "IF YOU FEEL THAT WAY, THEN I WILL SHUT UP.":GOTO 9999 +255 IF I$#P$ THEN 260 +256 PRINT "PLEASE DON'T REPEAT YOURSELF!": GOTO 200 +260 M=0: B$="": Q=0 : K=36 +267 H=0 +270 FOR L=1 TO F +275 Y$=I$(L,L) +280 IF Y$ # " " THEN 285 +281 H=1 +282 GOTO 300 +285 IF Y$="!" THEN 800 +297 GOTO 500 +300 IF Q=0 THEN 500 +315 A=0 +320 FOR X=1 TO V1-1 +330 W$=J$(X*8-7,X*8+J(X)-8) +335 O$=J$(X*8+1,X*8+J(X+1)) +350 T=J(X) +353 B=T+L-1 +355 U=J(X+1) +356 C=U+L-1 +357 IF B > F THEN 400 +360 IF I$(L,B)#W$ THEN 400 +365 B$(M+1)=O$ +370 M=M+U +375 L=B +380 X=V1 +385 A=1 +390 GOTO 470 +400 IF C>F THEN 470 +410 IF I$(L,C)#O$ THEN 470 +420 B$(M+1)=W$ +430 M=M+T +440 L=C +450 X=V1 +460 A=1 +470 X=X+1 +475 NEXT X +480 IF A#1 THEN 500 +485 A=0 +490 GOTO 800 +500 IF Y$=" " THEN 790 +505 IF H=0 THEN 790 +507 H=0 +510 IF Q#0 THEN 790 +515 GOSUB 4000 +520 FOR S=P TO O +530 K$=D$(D(S),E(S)) +540 G=LEN(K$)+1 +550 K$(G)=" " +560 V=L+G-1 +570 IF V+1 > F THEN 650 +600 IF I$(L,V)#K$ THEN 650 +610 L=V-1 +615 Y$=" " +620 Q=1 +630 K=S +640 S=N1 +650 NEXT S +790 IF Q=0 THEN 800 +794 M=M+1 +795 B$(M)= Y$ +800 NEXT L +900 GOSUB 1310+(R(K)*10) +940 R(K)=R(K)+1: IF R(K)>N(K) THEN R(K)=S(K) +950 I=LEN(R$) +960 IF R$(I,I)#"*" THEN 990 +965 IF LEN(B$) >= 3 THEN 975 +970 PRINT "YOU WILL HAVE TO ELABORATE MORE FOR ME TO HELP YOU":GOTO 995 +975 IF B$(2,3)=" " THEN 970 +980 R$(I)=B$(2) +990 PRINT R$ +995 P$=I$: GOTO 200 +1320 R$="DON'T YOU BELIEVE THAT I CAN*": RETURN +1330 R$="PERHAPS YOU WOULD LIKE TO BE LIKE ME*": RETURN +1340 R$="YOU WANT ME TO BE ABLE TO*": RETURN +1350 R$="PERHAPS YOU DON'T WANT TO*": RETURN +1360 R$="DO YOU WANT TO BE ABLE TO*": RETURN +1365 R$="DO YOU WANT TO BE ABLE TO*": RETURN +1370 R$="WHAT MAKES YOU THINK I AM*": RETURN +1380 R$="DOES IT PLEASE YOU TO BELIEVE I AM*": RETURN +1390 R$="PERHAPS YOU WOULD LIKE TO BE*": RETURN +1400 R$="DO YOU SOMETIMES WISH YOU WERE*": RETURN +1410 R$="DON'T YOU REALLY*": RETURN +1420 R$="WHY DON'T YOU*": RETURN +1430 R$="DO YOU WISH TO BE ABLE TO*": RETURN +1440 R$="DOES THAT TROUBLE YOU*": RETURN +1450 R$="DO YOU OFTEN FEEL*": RETURN +1460 R$="DO YOU OFTEN FEEL*": RETURN +1470 R$="DO YOU ENJOY FEELING*": RETURN +1480 R$="DO YOU REALLY BELIEVE I DON'T*": RETURN +1490 R$="PERHAPS IN GOOD TIME I WILL*": RETURN +1500 R$="DO YOU WANT ME TO*": RETURN +1510 R$="DO YOU THINK YOU SHOULD BE ABLE TO*": RETURN +1520 R$="WHY CAN'T YOU*": RETURN +1530 R$="WHY ARE YOU INTERESTED IN WHETHER OR NOT I AM*": RETURN +1540 R$="WOULD YOU PREFER IF I WERE NOT*": RETURN +1550 R$="PERHAPS IN YOUR FANTASIES I AM*": RETURN +1560 R$="HOW DO YOU KNOW YOU CAN'T*": RETURN +1570 R$="HAVE YOU TRIED?": RETURN +1580 R$="PERHAPS YOU CAN NOW*": RETURN +1590 R$="DID YOU COME TO ME BECAUSE YOU ARE*": RETURN +1600 R$="HOW LONG HAVE YOU BEEN*": RETURN +1610 R$="DO YOU BELIEVE IT IS NORMAL TO BE*": RETURN +1620 R$="DO YOU ENJOY BEING*": RETURN +1630 R$="WE WERE DISCUSSING YOU--NOT ME.": RETURN +1640 R$="OH, I*": RETURN +1650 R$="YOU'RE NOT REALLY TALKING ABOUT ME, ARE YOU?": RETURN +1660 R$="WHAT WOULD IT MEAN TO YOU IF YOU GOT*": RETURN +1670 R$="WHY DO YOU WANT*": RETURN +1680 R$="SUPPOSE YOU SOON GOT*": RETURN +1690 R$="WHAT IF YOU NEVER GOT*": RETURN +1700 R$="I SOMETIMES ALSO WANT*": RETURN +1710 R$="WHY DO YOU ASK?": RETURN +1720 R$="DOES THAT QUESTION INTEREST YOU?": RETURN +1730 R$="WHAT ANSWER WOULD PLEASE YOU THE MOST?": RETURN +1740 R$="WHAT DO YOU THINK?": RETURN +1750 R$="ARE SUCH QUESTIONS ON YOUR MIND OFTEN?": RETURN +1760 R$="WHAT IS IT THAT YOU REALLY WANT TO KNOW?": RETURN +1770 R$="HAVE YOU ASKED ANYONE ELSE?": RETURN +1780 R$="HAVE YOU ASKED SUCH QUESTIONS BEFORE?": RETURN +1790 R$="WHAT ELSE COMES TO MIND WHEN YOU ASK THAT?": RETURN +1800 R$="NAMES DON'T INTEREST ME.": RETURN +1810 R$="I DON'T CARE ABOUT NAMES --PLEASE GO ON.": RETURN +1820 R$="IS THAT THE REAL REASON?": RETURN +1830 R$="DON'T ANY OTHER REASONS COME TO MIND?": RETURN +1840 R$="DOES THAT REASON EXPLAIN ANYTHING ELSE?": RETURN +1850 R$="WHAT OTHER REASONS MIGHT THERE BE?": RETURN +1860 R$="PLEASE DON'T APOLOGIZE!": RETURN +1870 R$="APOLOGIES ARE NOT NECESSARY.": RETURN +1880 R$="WHAT FEELINGS DO YOU HAVE WHEN YOU APOLOGIZE?": RETURN +1890 R$="DON'T BE SO DEFENSIVE!": RETURN +1900 R$="WHAT DOES THAT DREAM SUGGEST TO YOU?": RETURN +1910 R$="DO YOU DREAM OFTEN?": RETURN +1920 R$="WHAT PERSONS APPEAR IN YOUR DREAMS?": RETURN +1930 R$="ARE YOU DISTURBED BY YOUR DREAMS?": RETURN +1940 R$="HOW DO YOU DO ...PLEASE STATE YOUR PROBLEM.": RETURN +1950 R$="YOU DON'T SEEM QUITE CERTAIN.": RETURN +1960 R$="WHY THE UNCERTAIN TONE?": RETURN +1970 R$="CAN'T YOU BE MORE POSITIVE?": RETURN +1980 R$="YOU AREN'T SURE?": RETURN +1990 R$="DON'T YOU KNOW?": RETURN +2000 R$="ARE YOU SAYING NO JUST TO BE NEGATIVE?": RETURN +2010 R$="YOU ARE BEING A BIT NEGATIVE.": RETURN +2020 R$="WHY NOT?": RETURN +2030 R$="ARE YOU SURE?": RETURN +2040 R$="WHY NO?": RETURN +2050 R$="WHY ARE YOU CONCERNED ABOUT MY*": RETURN +2060 R$="WHAT ABOUT YOUR OWN*": RETURN +2070 R$="CAN YOU THINK OF A SPECIFIC EXAMPLE?": RETURN +2080 R$="WHEN?": RETURN +2090 R$="WHAT ARE YOU THINKING OF?": RETURN +2100 R$="REALLY, ALWAYS?": RETURN +2110 R$="DO YOU REALLY THINK SO?": RETURN +2120 R$="BUT YOU ARE NOT SURE YOU*": RETURN +2130 R$="DO YOU DOUBT YOU*": RETURN +2140 R$="IN WHAT WAY?": RETURN +2150 R$="WHAT RESEMBLANCE DO YOU SEE?": RETURN +2160 R$="WHAT DOES THE SIMILARITY SUGGEST TO YOU?": RETURN +2170 R$="WHAT OTHER CONNECTIONS DO YOU SEE?": RETURN +2180 R$="COULD THERE REALLY BE SOME CONNECTION?": RETURN +2190 R$="HOW?": RETURN +2200 R$="YOU SEEM QUITE POSITIVE.": RETURN +2210 R$="ARE YOU SURE?": RETURN +2220 R$="I SEE.": RETURN +2230 R$="I UNDERSTAND.": RETURN +2240 R$="WHY DO YOU BRING UP THE TOPIC OF FRIENDS?": RETURN +2250 R$="DO YOUR FRIENDS WORRY YOU?": RETURN +2260 R$="DO YOUR FRIENDS PICK ON YOU?": RETURN +2270 R$="ARE YOU SURE YOU HAVE ANY FRIENDS?": RETURN +2280 R$="DO YOU IMPOSE ON YOUR FRIENDS?": RETURN +2290 R$="PERHAPS YOUR LOVE FOR FRIENDS WORRIES YOU.": RETURN +2300 R$="DO COMPUTERS WORRY YOU?": RETURN +2310 R$="ARE YOU TALKING ABOUT ME IN PARTICULAR?": RETURN +2320 R$="ARE YOU FRIGHTENED BY MACHINES?": RETURN +2330 R$="WHY DO YOU MENTION COMPUTERS?": RETURN +2340 R$="WHAT DO YOU THINK MACHINES HAVE TO DO WITH YOUR PROBLEM?": RETURN +2350 R$="DON'T YOU THINK COMPUTERS CAN HELP PEOPLE?": RETURN +2360 R$="WHAT IS IT ABOUT MACHINES THAT WORRIES YOU?": RETURN +2370 R$="SAY, DO YOU HAVE ANY PSYCHOLOGICAL PROBLEMS?": RETURN +2380 R$="WHAT DOES THAT SUGGEST TO YOU?": RETURN +2390 R$="I SEE.": RETURN +2400 R$="I'M NOT SURE I UNDERSTAND YOU FULLY.": RETURN +2410 R$="COME COME ELUCIDATE YOUR THOUGHTS.": RETURN +2420 R$="CAN YOU ELABORATE ON THAT?": RETURN +2430 R$="THAT IS QUITE INTERESTING.": RETURN +4000 IF Y$#"A" THEN 4030 +4010 P=1 +4020 O=3 +4025 RETURN +4030 IF Y$#"C" THEN 4060 +4040 P=4 +4050 O=7 +4055 RETURN +4060 IF Y$#"D" THEN 4090 +4070 P=8 +4080 O=8 +4085 RETURN +4090 IF Y$#"F" THEN 4120 +4100 P=9 +4110 O=9 +4115 RETURN +4120 IF Y$#"H" THEN 4150 +4130 P=10 +4140 O=12 +4145 RETURN +4150 IF Y$#"I" THEN 4180 +4160 P=13 +4170 O=18 +4175 RETURN +4180 IF Y$#"M" THEN 4210 +4190 P=19 +4200 O=19 +4205 RETURN +4210 IF Y$#"N" THEN 4240 +4220 P=20 +4230 O=21 +4235 RETURN +4240 IF Y$#"S" THEN 4270 +4250 P=22 +4260 O=22 +4265 RETURN +4270 IF Y$#"T" THEN 4300 +4280 P=23 +4290 O=23 +4295 RETURN +4300 IF Y$#"Y" THEN 4330 +4310 P=24 +4320 O=28 +4325 RETURN +4330 P=29 +4350 O=35 +4355 RETURN +5000 S(1)=76:N(1)=S(1)+3 +5001 S(2)=83:N(2)=S(2)+6 +5002 S(3)=22:N(3)=S(3)+2 +5003 S(4)=1:N(4)=S(4)+2 +5004 S(5)=4:N(5)=S(5)+1 +5005 S(6)=51:N(6)=S(6)+3 +5006 S(7)=99:N(7)=S(7)+1 +5007 S(8)=59:N(8)=S(8)+3 +5008 S(9)=93:N(9)=S(9)+5 +5009 S(10)=63:N(10)=S(10) +5010 S(11)=63:N(12)=S(11) +5011 S(12)=40:N(12)=S(12)+8 +5012 S(13)=10:N(13)=S(13)+3 +5013 S(14)=14:N(14)=S(14)+2 +5014 S(15)=25:N(15)=S(15)+2 +5015 S(16)=28:N(16)=S(16)+3 +5016 S(17)=28:N(17)=S(17)+3 +5017 S(18)=35:N(18)=S(18)+4 +5018 S(19)=64:N(19)=S(19)+4 +5019 S(20)=49:N(20)=S(20)+1 +5020 S(21)=69:N(21)=S(21)+4 +5021 S(22)=55:N(22)=S(22)+3 +5022 S(23)=80:N(23)=S(23)+2 +5023 S(24)=74:N(24)=S(24)+1 +5024 S(25)=6:N(25)=S(25)+3 +5025 S(26)=90:N(26)=S(26)+2 +5026 S(27)=6:N(27)=S(27)+3 +5027 S(28)=32:N(28)=S(28)+2 +5028 S(29)=40:N(29)=S(29)+8 +5029 S(30)=40:N(30)=S(30)+8 +5030 S(31)=40:N(31)=S(31)+8 +5031 S(32)=40:N(32)=S(32)+8 +5032 S(33)=20:N(33)=S(33)+1 +5033 S(34)=17:N(34)=S(34)+2 +5034 S(35)=40:N(35)=S(35)+8 +5035 S(36)=106:N(36)=S(36)+6 +5045 FOR X=1TO36 +5050 R(X)=S(X) +5055 NEXT X +6000 REM LOADS THE CONJUGATE PAIRS INTO A SINGLE STRING +6001 J$=" ARE ":J(1)=5 +6002 J$(9)=" AM ":J(2)=4 +6003 J$(17)=" WERE ":J(3)=6 +6004 J$(25)=" WAS ":J(4)=5 +6005 J$(33)=" YOU ":J(5)=5 +6006 J$(41)=" I ":J(6)=3 +6007 J$(49)=" YOUR ":J(7)=6 +6008 J$(57)=" MY ":J(8)=4 +6009 J$(65)=" I'VE ":J(9)=6 +6010 J$(73)=" YOU'VE ":J(10)=8 +6011 J$(81)=" I'M ":J(11)=5 +6012 J$(89)=" YOU'RE ":J(12)=8 +6013 J$(97)=" ME ":J(13)=4 +6014 J$(105)=" YOU ":J(14)=5 +7000 D$="" : REM PACKS KEYWORDS INTO A STRING +7001 K$="ALWAYS":D(1)=LEN(D$)+1:E(1)=D(1)+LEN(K$)-1: D$=K$ +7002 K$="ALIKE":D(2)=LEN(D$)+1:E(2)=D(2)+LEN(K$)-1: D$(D(2))=K$ +7003 K$="ARE YOU":D(3)=LEN(D$)+1:E(3)=D(3)+LEN(K$)-1: D$(D(3))=K$ +7004 K$="CAN YOU":D(4)=LEN(D$)+1:E(4)=D(4)+LEN(K$)-1: D$(D(4))=K$ +7005 K$="CAN I":D(5)=LEN(D$)+1:E(5)=D(5)+LEN(K$)-1: D$(D(5))=K$ +7006 K$="CAUSE":D(6)=LEN(D$)+1:E(6)=D(6)+LEN(K$)-1: D$(D(6))=K$ +7007 K$="COMPUTER":D(7)=LEN(D$)+1:E(7)=D(7)+LEN(K$)-1: D$(D(7))=K$ +7008 K$="DREAM":D(8)=LEN(D$)+1:E(8)=D(8)+LEN(K$)-1: D$(D(8))=K$ +7009 K$="FRIEND":D(9)=LEN(D$)+1:E(9)=D(9)+LEN(K$)-1: D$(D(9))=K$ +7010 K$="HELLO":D(10)=LEN(D$)+1:E(10)=D(10)+LEN(K$)-1: D$(D(10))=K$ +7011 K$="HI":D(11)=LEN(D$)+1:E(11)=D(11)+LEN(K$)-1: D$(D(11))=K$ +7012 K$="HOW":D(12)=LEN(D$)+1:E(12)=D(12)+LEN(K$)-1: D$(D(12))=K$ +7013 K$="I DON'T":D(13)=LEN(D$)+1:E(13)=D(13)+LEN(K$)-1: D$(D(13))=K$ +7014 K$="I FEEL":D(14)=LEN(D$)+1:E(14)=D(14)+LEN(K$)-1: D$(D(14))=K$ +7015 K$="I CAN'T":D(15)=LEN(D$)+1:E(15)=D(15)+LEN(K$)-1: D$(D(15))=K$ +7016 K$="I AM":D(16)=LEN(D$)+1:E(16)=D(16)+LEN(K$)-1: D$(D(16))=K$ +7017 K$="I'M":D(17)=LEN(D$)+1:E(17)=D(17)+LEN(K$)-1: D$(D(17))=K$ +7018 K$="I WANT":D(18)=LEN(D$)+1:E(18)=D(18)+LEN(K$)-1: D$(D(18))=K$ +7019 K$="MAYBE":D(19)=LEN(D$)+1:E(19)=D(19)+LEN(K$)-1: D$(D(19))=K$ +7020 K$="NAME":D(20)=LEN(D$)+1:E(20)=D(20)+LEN(K$)-1: D$(D(20))=K$ +7021 K$="NO":D(21)=LEN(D$)+1:E(21)=D(21)+LEN(K$)-1: D$(D(21))=K$ +7022 K$="SORRY":D(22)=LEN(D$)+1:E(22)=D(22)+LEN(K$)-1: D$(D(22))=K$ +7023 K$="THINK":D(23)=LEN(D$)+1:E(23)=D(23)+LEN(K$)-1: D$(D(23))=K$ +7024 K$="YOUR":D(24)=LEN(D$)+1:E(24)=D(24)+LEN(K$)-1: D$(D(24))=K$ +7025 K$="YOU ARE":D(25)=LEN(D$)+1:E(25)=D(25)+LEN(K$)-1: D$(D(25))=K$ +7026 K$="YES":D(26)=LEN(D$)+1:E(26)=D(26)+LEN(K$)-1: D$(D(26))=K$ +7027 K$="YOU'RE":D(27)=LEN(D$)+1:E(27)=D(27)+LEN(K$)-1: D$(D(27))=K$ +7028 K$="YOU":D(28)=LEN(D$)+1:E(28)=D(28)+LEN(K$)-1: D$(D(28))=K$ +7029 K$="WHAT":D(29)=LEN(D$)+1:E(29)=D(29)+LEN(K$)-1: D$(D(29))=K$ +7030 K$="WHO":D(30)=LEN(D$)+1:E(30)=D(30)+LEN(K$)-1: D$(D(30))=K$ +7031 K$="WHERE":D(31)=LEN(D$)+1:E(31)=D(31)+LEN(K$)-1: D$(D(31))=K$ +7032 K$="WHEN":D(32)=LEN(D$)+1:E(32)=D(32)+LEN(K$)-1: D$(D(32))=K$ +7033 K$="WHY CAN'T I":D(33)=LEN(D$)+1:E(33)=D(33)+LEN(K$)-1: D$(D(33))=K$ +7034 K$="WHY DON'T YOU":D(34)=LEN(D$)+1:E(34)=D(34)+LEN(K$)-1: D$(D(34))=K$ +7035 K$="WHY":D(35)=LEN(D$)+1:E(35)=D(35)+LEN(K$)-1: D$(D(35))=K$ +7036 K$="NOKEYFOUND":D(36)=LEN(D$)+1:E(36)=D(36)+LEN(K$)-1: D$(D(36))=K$ +7100 RETURN +9999 END + +RUN diff --git a/code/programs/BASIC/GOMOKO.TXT b/code/programs/BASIC/GOMOKO.TXT new file mode 100644 index 0000000..07673b8 --- /dev/null +++ b/code/programs/BASIC/GOMOKO.TXT @@ -0,0 +1,66 @@ +SCR +LOMEM=768 +2 TAB(17):PRINT "GOMOKO" +4 PRINT "CREATIVE COMPUTING MORRISTOWN NEW JERSEY" +5 PRINT:PRINT:PRINT +6 REM CONVERTED FOR THE APPLE 1 / REPICA 1 +7 REM BY VINCE BRIEL JANUARY 25, 2007 +8 REM A(I,J) IS NOW A((19*J+I)-19) +9 DIM A(365) +10 PRINT "WELCOME TO THE ORIENTAL GAME OF GOMOKO." +20 PRINT: PRINT "THE GAME IS PLAYED ON AN N BY N GRID" +25 PRINT "OF A SIZE THAT YOU SPECIFY. DURING YOUR" +30 PRINT "PLAY, YOU MAY COVER ONE GRID" +35 PRINT "INTERSECTION WITH A MARKER. THE OBJECT" +40 PRINT "OF THE GAME IS TO GET 5 ADJACENT" +50 PRINT "MARKERS IN A ROW -- HORIZONTALLY," +55 PRINT "VERTICALLY, OR DIAGONALLY. ON THE BOARD" +60 PRINT "DIAGRAM, YOUR MOVES ARE MARKED WITH A" +70 PRINT "'1' AND THE COMPUTER MOVES WITH A '2'." +80 PRINT: PRINT "THE COMPUTER DOES NOT KEEP TRACK OF WHO" +90 PRINT "HAS WON. TO END THE GAME, TYPE -1,-1.": PRINT +110 PRINT "WHAT IS YOUR BOARD SIZE (7-19)";: INPUT N +115 IF N>6 THEN 117 +116 GOTO 120 +117 IF N<20 THEN 210 +120 PRINT "I SAID, THE MINIMUM IS 7, THE MAXIMUM IS 19.": GOTO 110 +210 FOR I=1 TO N:FOR J=1 TO N: A((19*J+I)-19)=0: NEXT J: NEXT I +300 PRINT: PRINT "WE ALTERNATE MOVES. YOU GO FIRST...": PRINT +310 PRINT "YOUR PLAY (I,J)";: INPUT I,J +315 PRINT +320 IF I=-1 THEN 980 +330 X=I: Y=J: GOSUB 910: IF L=1 THEN 410 +340 PRINT "ILLEGAL MOVE. TRY AGAIN...": GOTO 310 +410 IF A((19*J+I)-19)=0 THEN 440 +420 PRINT "SQUARE OCCUPIED. TRY AGAIN...": GOTO 310 +440 A((19*J+I)-19)=1 +500 REM *** COMPUTER TRIES AN INTELLIGENT MOVE *** +510 V=0:FOR E=-1 TO 1: FOR F=-1 TO 1: IF E+F-E*F=0 THEN 590 +540 X=I+F: Y=J+F: GOSUB 910 +570 IF L=0 THEN 590 +580 IF A((19*Y+X)-19)#1 THEN 590 +582 IF V=1 THEN 590 +585 V=1:K=X:M=Y:R=E:S=F +590 NEXT F: NEXT E:IF V#1 THEN 600 +595 X=K:Y=M:E=R:F=S:GOTO 710 +600 REM *** COMPUTER TRIES A RANDOM MOVE *** +610 X=RND(N)+1: Y=RND(N)+1: GOSUB 910: IF L=0 THEN 610 +650 IF A((19*Y+X)-19)<>0 THEN 610 +660 A((19*Y+X)-19)=2: GOSUB 810: GOTO 310 +710 X=I-E: Y=J-F: GOSUB 910 +750 IF L=0 THEN 610 +760 GOTO 650 +800 REM *** PRINT THE BOARD *** +810 FOR I=1 TO N: FOR J=1 TO N: PRINT A((19*J+I)-19); +840 NEXT J: PRINT: NEXT I: PRINT: RETURN +910 L=1: IF X<1 THEN 970 +920 IF X>N THEN 970 +930 IF Y<1 THEN 970 +940 IF Y>N THEN 970 +950 RETURN +970 L=0: RETURN +980 PRINT: PRINT "THANKS FOR THE GAME!!" +985 PRINT "PLAY AGAIN (1 FOR YES, 0 FOR NO)";: INPUT Q +990 IF Q=1 THEN 110 +999 END +RUN diff --git a/code/programs/BASIC/HANGMAN.TXT b/code/programs/BASIC/HANGMAN.TXT new file mode 100644 index 0000000..1d97063 --- /dev/null +++ b/code/programs/BASIC/HANGMAN.TXT @@ -0,0 +1,123 @@ + +LOMEM=1024 +HIMEM=8192 +SCR +10 PRINT " HANGMAN" +20 PRINT "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" +22 REM PORTED TO REPLICA/1 BY CARL CLAUNCH +25 PRINT:PRINT:PRINT +30 DIM P$(145),D$(20),N$(26),U(50),A$(19) +35 DIM S$(145),V$(255),V(50),Z$(85) +40 C=1:N=50 +50 FOR I=1 TO 20:D$(I)="-":NEXT I:M=0 +55 GOSUB 700 : REM REINITIALIZE THE WORD ARRAYS +70 P$="XXXXXXX " : REM SET UP EMPTY SCAFFOLD +80 P$(13)="X X " +90 FOR I=2 TO 11:P$(I*12+1)="X ":NEXT I +94 N$="" : REM NO LETTERS YET +95 IF C 255 +125 A$=Z$(V(Q),V(Q)+U(Q)-1):U(Q)=1 : REM FETCH WORD IN 1ST STR +130 GOTO 160 +150 A$=V$(V(Q),V(Q)+U(Q)-1):U(Q)=1 : REM FETCH WORD IN 2ND STR +160 L=LEN(A$) +170 PRINT "HERE ARE THE LETTERS YOU USED:" +180 FOR I =1 TO 26:IF LEN(N$)>=I THEN PRINT N$(I,I);:IF I=LEN(N$) THEN I=27 +190 IF I