Apple 1 memory question

3 posts / 0 new
Last post
Offline
Last seen: 1 week 4 days ago
Joined: Nov 28 2024 - 04:04
Posts: 1
Apple 1 memory question

Hi everyone,

 

I'm new here so hope you won't mind a (very) basic question, and apologies if it has been asked before!

 

I was browsing through Tom Owad's Apple 1 Replica Creation book for some information on Apple 1 / Replica 1's memory map and trying to understand the initialisation process when the unit is switched on, and I understand that like any other 6502-based system it ultimately looks for an address (a reset vector) at a specific memory location. Looking at what it says in the book (from Chapter 7, page 216):

 

" The 6502 microprocessor requires that a memory address be stored at addresses $FFFE and $FFFF (the address is 16-bit, so it takes two bytes). When the 6502 is reset, it immediately loads the address at $FFEF and $FFFF into its program counter and begins executing that address. Thus, you need to have a ROM at $FFFE–$FFFF"

 

A couple of questions

  • It mentions $FFFE and $FFFF, then in the next sentence mentions $FFEF and $FFFF - is this just a typo?
  • I fired up my Replica 1 to check $FFFE and $FFFF and found 00 00. I did a bit more digging online and I found that for other 6502 based machines the reset vector is in $FFFC and $FFFD, and I can see that these memory locations indeed contain 00 FF (referring to $FF00), which is the start location of the WozMon. Also it seems that $FFFE-$FFFF is the location of the interrupt request/break vector in the 6502 memory map (unused in the Apple 1). Is this a mistake in the book?

 

Thanks,

Gabriele (neonblurb)

 

Offline
Last seen: 3 hours 2 sec ago
Joined: Feb 27 2021 - 18:59
Posts: 606
humanum errare est

With full respect to the site owner, what you have found is a mistake. The 6502 reset vector is indeed taken from $FFFC $FFFD in "little-endian" order. This is confirmed in authoritative books about the operation of the Apple II, including Winston Gayler's "The Apple II Circuit Description" and Jim Sather's "Understanding the Apple II".

The reset vector is also correctly printed in the Apple I Monitor ROM listing in the original 1976 manual.

Offline
Last seen: 5 days 23 hours ago
Joined: Aug 18 2020 - 04:43
Posts: 29
Nope

As said by robespierre, the 6502 looks at address FFFC and FFFD for the reset vector.

 

If you look in the source code of WOZMON, you will see that it contains RESET (ie: 00 FF), the address of WOZMON itself.

 

https://github.com/jefftranter/6502/blob/22166afa9b612e34636c45527dcd985bf4fcaa4e/asm/wozmon/wozmon.s#L159

 

Log in or register to post comments