# Apple I software questions

I am trying to find all the software for the Apple I that is original to the period. The designators below are from the Apple's Suggested Retail Price List April 1977.

A1T002X "Mastermind": is this the same as "A Number Game for the 6502" by Steve Wozniak, Dr. Dobbs Journal, Volume 1, Number 8, page 253?

A1T003X "Lunar Lander": applefritter > Apple I Owners Club > Games: is this the same as the apple version?

A1T004X "Blackjack": applefritter > Apple I Owners Club > Games: is this the same as the apple version? screenshot is same as Kilobaud magazine 1977 Feb p34.

A1T005X "Hamurabi": applefritter > Apple I Owners Club > Games: is this the same as the apple version?

A1T006X "Mini-Startrek": is this the same as "Apple Star-Trek", Interface Age Magazine, May 1977, p132. And did apple use LOMEM=(768)?

A1T007X "16K-Startrek": has this been preserved some place?

A1T008X "Dis-Assembler": is this the same version as "A 6502 Disassembler from Apple by Steve Wozniak & Allen Baum", Dr. Dobbs Journal, Volume 1, Number 8, page 22

A1T009X "Extended Monitor": has this been preserved some place?

Game of Life: applefritter > Apple I Owners Club > Games: is this the Apple version they used as a demo? ref Kilobaud Magazine Jan 1977 p17.

--------------------------------------------------------------------------------------------------------------------------------------------

Is there any other software in the 1977-1979 timeframe published specifically for the Apple I? (not Compute or other generic BASIC programs). Programs that I have seen:

Interface Age, 1977 May p128: LOGAN... A Logic Circuit Analysis Program by Robert J. Bishop

Interface Age, 1977 Oct p146: SEARCH ROUTINE FOR THE 6502 DISASSEMBLER by Arthur L. Shawlow (for use with the 6502 Disassembler published in Sep 76 issue p14)

Byte Magazine, 1978 Oct p135: Programming Quickies: Maze by Robert J. Bishop

73 Magazine, 1978 Feb p78: Fiendish New QUBIC Program by Robert J. Bishop

Kilobaud Magazine, 1978 Feb p80: Teaching Preschoolers Letter Discrimination by John Eric Victor

Do you want the software code or WAV files for these?

Do you want the software code or WAV files for these?

Software code is preferable. I am assuming that the only files that I don't have are 16K Star Trek and Extended Monitor. btw, I have tested the QUBIC program and it works but it took me 5 games before I could beat it. Is there a way for me to submit it to include in your downloads?

Spoke too soon. If .wav is from copy of original Apple tape or made from original Apple I, then the wav is preferable -- but not if made from an emulator.

Well I'm not sure where most of my wav files came from. I suppose I could always load them into an Apple-1 or Mimeo and make new wav files using an iRig and my iPhone.

or I can simply send you a zip file of all the files I currently have...

How desperate are you for this. If I have to re-record them off of real hardware it may take me a week to get to it.

Cheers,

Corey

No need to re-record them. But if you include the softcopy then that would help. I am most interested in verifying the software came from Apple and discovering any other that was developed in that era.

Thanks for your help,

Ken

PM me your email and I'll send you some files...

I have an original cassettes of Dis-Assembler and extended monitor, though I have never actually loaded them from the cassettes only wav files I got from someone. Maybe I'll try that to see what it is....

As for the Star Trek's, they were done by Wendell Sander. To run his 16k version, you needed to expand your Apple-1 to 20k.

The lunar lander you see floating around on the internet could be one of two versions, it could be the original or the one I did a few years back to show Ascii graphics. Mine is not original, I used Open Emulator to write it and then moved to hardware when it worked. This was done more for convenience since my macbook was on my desk and I could more easily use it.

Cheers,

Corey

both the disassembler and the extended monitor look like early versions of the monitor/disassembler software that was originally shipped in ROM on the Apple II.

regards,

Mike WIlegal

Corey was a great help in answering my questions and thanks Mike for the info about the Extended Monitor program - I'll try to figure out the commands to ensure that it works correctly in the Apple-1.

I want to add the type-in software that I found to the applefritter downloads section but don't know how, so I will do so here just as Laurieboshell2004 did so above.

Letter Discrimination by John Eric Victor, Kilobaud Magazine, Feb 1978, page 80

NOTE: this version corrects error on line 180 (original was IF A=6 THEN 400...)

10 REM LETTER DISCRIMINATION PROGRAM IN

15 REM APPLES BASIC FOR 3 TO 5 YEAR OLDS

20 REM BY JOHN ERIC VICTOR

30 DIM A$ (50), B$(5), C$(5)

35 REM PARENT INPUTS

40 PRINT "TO CHANGE LEVEL INPUT A '+'"

50 PRINT "TO END PROGRAM INPUT A '!'"

60 R=1: PRINT: PRINT "WHAT LEVEL DO YOU WANT? (INPUT NO.)"

70 PRINT "1=A,S": PRINT "2=A,S,D": PRINT "3=A,S,D,Q,W,E,Z,X,C"

80 PRINT "4=E,F,R,T,G,V,B,Y,H": PRINT "5=U,I,0,P,J,K,L,N,M": PRINT "6=ALL LETTERS"

90 PRINT "7=2 LETTER WORDS": PRINT "8=3 LETTER WORDS"

95 REM SELECTION OF LEVEL

100 INPUT A

110 IF A=1 THEN A$="AS": IF A=2 THEN A$="ASD"

120 IF A=3 THEN A$="ASDQWEZXC"

130 IF A=4 THEN A$="EFRTGVBYH"

140 IF A=5 THEN A$="UIOPJKLNM"

150 IF A=6 THEN A$="QWERTYUIOPASDFGHJKLZXCVBNM"

160 IF A=7 THEN A$="ISASNOTOATITBYBEMEWEOHHIHO"

170 IF A=8 THEN A$="FARTARRATROTRUMMENNEWNOWWONAIREARPEATONNOT"

175 REM SELECTION OF LETTERS

180 IF A<=6 THEN 400: IF A=7 THEN 410: IF A=8 THEN 420

200 REM PRINT ONE LETTER OR WORD ALONE IN CENTER OF SCREEN

210 GOSUB 500

230 TAB 20:PRINT B$: GOSUB 500

240 REM THE CHILD RESPONDS

250 TAB 19: INPUT C$

260 IF C$="+" THEN 60: IF C$="!" THEN END

270 REM CHILD MAKES ERROR

280 IF C$ # B$ THEN 250

290 REM CORRECT RESPONSE

300 FOR P=1 TO 40: PRINT "*";: NEXT P: GOTO 180

390 REM SELECTION OF LETTER OR WORD FROM 180

400 N=LEN(A$): R=RND(N)+1: B$=A$(R,R): GOTO 210

410 B$=A$(R,R+1): R=R+2: IF B$="HO" THEN R=l: GOTO 210

420 B$=A$(R,R+2):R=R+3: IF B$="NOT" THEN R=l: GOTO 210

490 REM SPACING

500 FOR P=1 TO 12: PRINT: NEXT P: RETURN

QUBIC by Robert J. Bishop, 73 Magazine, February 1978, page 78

1. Load and RUN Program A then DEL 10000, 19500

2. Load and RUN Program B

3. To play enter 3-digit number

- 1st digit is board (left board is 1)
- 2nd digit is column (left column is 1)
- 3rd digit is row (bottom row is 1)

Program A

10000 L=768

10100 FOR K=0 TO 63

10200 POKE L+K,K

10300 NEXT K

10400 L=L+64

11000 A=4:B=16

11100 FOR S=1 TO 4

11200 GOSUB 19000

11300 NEXT S

12000 A=16:B=1

12100 FOR S=1 TO 13 STEP 4

12200 GOSUB 19000

12300 NEXT S

13000 S=1:A=5:B=16: GOSUB 19000

13100 S=13:A=-3:B=16: GOSUB 19000

13200 S=1:A=20:B=1: GOSUB 19000

13300 S=49:A=-12:B=1: GOSUB 19000

13400 S=1:A=17:B=4: GOSUB 19000

13500 S=49:A=-15:B=4: GOSUB 19000

14000 S=1:D=21: GOSUB 18000

14100 S=16:D=11: GOSUB 18000

14200 S=4:D=19: GOSUB 18000

14300 S=13:D=13: GOSUB 18000

15000 END

18000 FOR K=S TO S+3*D STEP D

18100 POKE L,K-1:L=L+1

18200 NEXT K

18300 RETURN

19000 FOR J=S TO S+3*B STEP B

19100 FOR K=J TO J+3*A STEP A

19200 POKE L,K-1:L=L+1

19300 NEXT K

19400 NEXT J

19500 RETURN

Program B

5 DIM E(7)

7 E(1)=254:E(2)=18:E(3)=2:E(4)=1:E(5)=2:E(6)=66:E(7)=255

10 Q=564:G=628:S=692:L=768

20 FOR K=G TO G+63: POKE K,128: NEXT K

30 FOR K=S TO S+75: POKE K,128: NEXT K

100 PRINT : TAB 13: INPUT "X IN SQUARE",X

110 P=X/100: IF P<1 OR P>4 THEN 100

120 X=X-100*P: C=X/10: IF C<1 OR C>4 THEN 100

130 R=X-10*C: IF R<1 OR R>4 THEN 100

140 X=16*(P-1)+4*(R-1)+C-1

150 IF PEEK (G+X)#128 THEN 100

160 M=-1: GOSUB 1000

170 GOSUB 2000

180 IF W THEN 850

190 IF T THEN 820

200 GOSUB 3000

210 M=1: GOSUB 1000

220 GOSUB 2000

230 IF W THEN 900

250 GOSUB 7000

300 IF T THEN 820

350 GOSUB 9000

400 GOTO 100

800 GOSUB 7000: GOSUB 9000

810 GOTO 100

820 PRINT : TAB 13

830 PRINT "--- TIE GAME ---"

840 GOTO 950

850 TAB 13: PRINT "--- YOU WON ---"

860 GOTO 950

900 GOSUB 7000: TAB 13

910 PRINT "---- I WON ----"

950 GOSUB 9000: PRINT : PRINT

960 TAB 11: PRINT "THANKS FOR THE GAME"

970 PRINT : PRINT : PRINT : PRINT : PRINT

980 END

1000 POKE G+X,128+M

1010 FOR K=L TO L+303: IF PEEK (K)#X THEN 1090

1020 Y=S+(K-L)/4:V= PEEK (Y): IF V=0 THEN 1090

1030 V=V-128

1035 IF V=0 THEN 1060

1040 IF SGN (V)= SGN (M) THEN 1060

1050 V=0: GOTO 1070

1060 V=V+M+128

1070 POKE Y,V

1090 NEXT K: RETURN

2000 W=0: T=1

2010 FOR K=S TO S+75

2020 V= PEEK (K)

2030 IF V THEN T=0

2040 IF ABS (V-128)=4 THEN W=1

2050 NEXT K: RETURN

3000 FOR K=Q to Q+63

3010 POKE K,0

3020 NEXT K

3100 FOR K=S TO S+75

3110 N= PEEK (K)-128: IF N=-128 THEN 3500

3200 Z=E(N+4)

3300 F=L+4*(K-S)

3310 FOR J=F TO F+3

3320 X= PEEK (J): IF PEEK (G+X)#128 THEN 3400

3330 V= PEEK (Q+X)

3340 IF V>=254 THEN 3400

3350 V=V+Z: IF Z>254 THEN V=Z

3380 IF V>255 THEN V=255

3390 POKE Q+X,V

3400 NEXT J

3500 NEXT K

3600 V9=0

3610 FOR K=0 TO 63

3620 V= PEEK (Q+K)

3630 IF V>64 AND V<128 THEN V=V-64

3640 IF V>16 AND V<32 THEN V=V-16

3650 IF V>V9 THEN V9=V

3680 POKE Q+K,V

3690 NEXT K

3700 IF V9<32 THEN 4000

3800 X=0

3810 IF PEEK (Q+X)=V9 THEN RETURN

3820 X=X+1: GOTO 3810

4000 P4=16

4010 FOR K=L TO L+287 STEP 16

4020 P=0

4030 FOR J=K TO K+15

4040 P=P+ PEEK ( PEEK (J)+G)-128

4050 NEXT J

4060 IF P>P4 THEN 4500

4070 IF P=P4 THEN 4210

4200 P4=P:V4=0:N4=0

4210 FOR J=K TO K+15

4220 X1= PEEK (J)

4230 V=PEEK (Q+X1)

4235 IF V=0 THEN 4400

4240 IF VV4 THEN 4350

4260 N4=N4+1

4270 IF RND (N4) THEN 4400

4280 GOTO 4360

4350 V4=V:N4=1

4360 X=X1

4400 NEXT J

4500 NEXT K

4550 IF V4 THEN RETURN

4600 GOTO 3800

7000 P=X/16+1

7010 X=X-16*(P-1)

7020 R=X/4+1

7030 C=(X MOD 4)+1

7040 TAB 13: PRINT "O IN SQUARE ";P;C;R

7050 RETURN

9000 PRINT

9010 FOR R=4 TO 1 STEP -1

9020 FOR P=1 TO 4

9030 FOR C=1 TO 4

9040 X=16*(P-1)+4*(R-1)+C-1

9050 V= PEEK (G+X)

9060 IF V=127 THEN PRINT " X";

9070 IF V=128 THEN PRINT " -";

9080 IF V=129 THEN PRINT " O";

9090 NEXT C: PRINT " ";

9100 NEXT P: PRINT

9110 NEXT R

9120 RETURN

Finally getting around to doing some updates to the 'Ultimate A1 collection'

One quick question.

In the QUBIC part b, what should this line be?:

4240 IF VV4 THEN 4350

I'm guessing it should read:

4240 IF V=4 THEN 4350

Cheers

Phil

4240 IF VV4 THEN 4350

Don't know why cut & paste didn't work there.

Ken

Previews OK before I post it then changes it. Doesn't like the symbols for less than or greater than I guess. Also line 4250 doesn't show.

Line 4240 should read IF V (insert "less than" symbol here) V4 THEN 4400

Line 4250 should read IF V (insert "greater than" symbol here) V4 THEN 4350

Let me know if there are any other typos - I have playtested it and saved it to my emulated CFFA1. Proof of play is here

Ken

Thanks.

that would be great to make a website page with all the apple 1 programs archived in one place

will you share all the programs you find ?

I have Bob Bishop's maze program.

I've had it for some time and just pulled it off

and old retired hard disk.

I'm listing it here, unaltered, incase it is not

in general circulation.

Regards,

Laurie

5 REM MAZE FOR THE APPLE-1. (C) BOB BISHOP 1977

10 DIM A(3), B(3), C(3), E(4),N(2)

20 E(1)=1:E(2)=2:E(3)=4:E(4)=8

100 Q=768:G=1024:R=-1:F=-1:M=0:L=2

120 FOR K=1 TO 209: POKE G+K-1,0: NEXT K

140 N(1)=3+RND(7):N(2)=205- RND(7)

160 POKE G+N(1),2: POKE G+N(2),24

180 P=N(1): GOSUB 1000: P=N(2): GOSUB 1000

200 L=3-L: P=N(L)

250 GOSUB 3000: IF P<0 THEN 350

300 GOSUB 1000: GOTO 400

350 GOSUB 2000: IF P<0 THEN 500

400 N(L)=P: GOTO 200

500 FOR K=1 TO 24: PRINT : NEXT K

510 FOR K=1 TO 11

520 FOR L=1 TO 19

540 T= PEEK (G+19*(K-1)+L-1)/2

560 O$=" ": IF T=2*(T/2)THEN O$="-"

580 PRINT "+";O$;

600 NEXT L: PRINT "+"

620 FOR L=1 TO 19

640 T= PEEK (G+19*(K-1)+L-1)/4

660 O$= " ": IF T=2*(T/2) THEN O$= "!"

680 PRINT O$;" ";

700 NEXT L: PRINT "!"

720 NEXT K

740 P= PEEK (Q+1): T=P-19*(P/19)

760 FOR K=1 TO T:PRINT "+-";: NEXT K:PRINT "+";

780 FOR K=T+2 TO 19: PRINT "+-";:NEXT K: PRINT "+"

800 GOTO 100

1000 R=R+1: POKE Q+R,P: RETURN

2000 F=F+1: P=-1: IF F<=R THEN P= PEEK (Q+F): RETURN

3000 K=0

3100 T=P+1: IF T/19#P/19 THEN 3200

3150 S=1:GOSUB 4000

3200 T=P-19: IF T<0 THEN 3300

3250 S=2: GOSUB 4000

3300 T=P-I: IF T/19#P/19 THEN 3400

3325 IF T<0 THEN 3400

3350 S=3: GOSUB 4000

3400 T=P+19: IF T>=209 THEN 3500

3450 S=4: GOSUB 4000

3500 IF K#0 THEN 3600: P=-1: RETURN

3600 K=1+RND (K):T=C(K)

3610 IF PEEK (G+T) #0 THEN M=1

3620 IF M=0 THEN B(K)=B(K)+16*(PEEK (G+P)/16)

3630 POKE G+P, PEEK (G+P)+A(K)

3640 POKE G+T, PEEK (G+T)+B(K)

3650 P=T: RETURN

4000 IF PEEK (G+T)=0 THEN 4300

4050 IF M#0 THEN RETURN

4100 IF PEEK (G+P)/16 = PEEK(G+T)/16 THEN RETURN

4300 K=K+1: C(K)=T: A(K)=E(S)

4400 S=S+2-4*((S+1)/4): B(K)=E(S)

4500 RETURN