Apple-1

User avatar
tontonkaloun
Posts: 354
Joined: Sun May 24, 2020 7:38 pm
Has thanked: 154 times
Been thanked: 52 times

Apple-1

Unread post by tontonkaloun »

Hello
anyone tried this core ?
User avatar
tontonkaloun
Posts: 354
Joined: Sun May 24, 2020 7:38 pm
Has thanked: 154 times
Been thanked: 52 times

Re: Apple-1

Unread post by tontonkaloun »

I saw that it was necessary
preload the basic.hex file to launch basic programs. But it seems to work without
ExCyber
Posts: 232
Joined: Sun May 24, 2020 3:33 pm
Has thanked: 12 times
Been thanked: 77 times

Re: Apple-1

Unread post by ExCyber »

Apple I shipped with a minimal ROM monitor (sometimes called the "Woz monitor"). It's only 256 bytes, so it has no assembly support, essentially just hex peek/poke/jump. This is what you get by default when booting the core. Here's a simple "HELLO, WORLD" example using the ROM monitor (hand-assembled, of course...):

Code: Select all

300:A2 00 BD 10 03 20 EF FF E8 E0 0C D0 F5 4C 1F FF 48 45 4C 4C 4F 2C 20 57 4F 52 4C 44
300.31B
[at this point you should see a dump of the bytes that you just entered]
300
R
(I spent some time being confused about why that "300" before "R" is necessary when the smoke test sample in the manual does an "R" right after a block dump, which led me to believe that it would run from the beginning of the block rather than the end. The trick seems to be that the "last examined" byte in that case is a 00, which is a BRK instruction. The IRQ/BRK vector is 0000, which is where you're told to assemble the program. I guess this is a hack to make the program shorter.)
rhester72
Top Contributor
Posts: 1323
Joined: Thu Jun 11, 2020 2:31 am
Has thanked: 15 times
Been thanked: 213 times

Re: Apple-1

Unread post by rhester72 »

The two biggest issues I found with it is that there seems to be some sort of off-by-one bug in the PC (try the Hello World demo code to see what I mean) and the screen refresh rate is *WAY* too fast for real life (it's been quite a while, but I remember it being on the order of like 1200 baud-ish).

The lack of a cassette interface (virtual or otherwise) is kind of a bummer, that was one of the joys (I say that somewhat laughingly) of the platform.
ExCyber
Posts: 232
Joined: Sun May 24, 2020 3:33 pm
Has thanked: 12 times
Been thanked: 77 times

Re: Apple-1

Unread post by ExCyber »

rhester72 wrote: Wed Jul 08, 2020 11:10 pmthere seems to be some sort of off-by-one bug in the PC (try the Hello World demo code to see what I mean)
I just tried it again to make sure that the version I posted actually worked (I went through several revisions with broken versions as I worked on the post, so the risk of inadvertently posting a broken version was definitely there), and I'm not sure what you mean. The only thing that seems to fit is the output after entering the "300:" line on a freshly loaded core:

Code: Select all

0300: 00
This could be interpreted as improperly pointing to the 00 byte that you just wrote to 0301, but it's actually the 00 that was at 0300 before the write occurred. if you enter "300" again immediately afterward, it will indeed print

Code: Select all

0300: A2
This is a side effect of how the monitor processes commands, and definitely confused me a little bit at first (as did the input buffer being at 0200-027F; silly me thinking "obviously only 0000-01FF have a special meaning on 6502, so of course I can start my program at 0200").
rhester72
Top Contributor
Posts: 1323
Joined: Thu Jun 11, 2020 2:31 am
Has thanked: 15 times
Been thanked: 213 times

Re: Apple-1

Unread post by rhester72 »

Ignore the off-by-one comment...I just looked and the mass-conversion script I wrote to a MiSTer .TXT format was what was dropping one byte during conversion. Sorry about that.

Also an earlier correction, the proper video rate looks to be 600 baud (60cps).
alanswx
Core Developer
Posts: 300
Joined: Sun May 24, 2020 6:55 pm
Has thanked: 5 times
Been thanked: 154 times

Re: Apple-1

Unread post by alanswx »

rhester72 wrote: Wed Jul 08, 2020 11:10 pm The two biggest issues I found with it is that there seems to be some sort of off-by-one bug in the PC (try the Hello World demo code to see what I mean) and the screen refresh rate is *WAY* too fast for real life (it's been quite a while, but I remember it being on the order of like 1200 baud-ish).

The lack of a cassette interface (virtual or otherwise) is kind of a bummer, that was one of the joys (I say that somewhat laughingly) of the platform.
I believe the Apple I original FPGA code has cassette support. It should be possible to hook up on mister fairly easily. PorkChop sent me a cassette adapter for my mister, but I haven't hooked it up yet. I suggest you take a look at the original repo, and some of the other MiSTer cores that support cassette. It probably is just a few wires.
mbalmer
Posts: 19
Joined: Wed May 27, 2020 3:08 pm
Has thanked: 3 times

Re: Apple-1

Unread post by mbalmer »

Is there any way to modify the core so that it has a full 64K of RAM available to it, and/or add the ability to swap out ROM files that would enable the use of pre-compiled ROM banks that include other utilities, such as the Krusader ASM editing package?
Post Reply