Image Map Image Map
Page 2 of 2 FirstFirst 12
Results 11 to 16 of 16

Thread: Adding NOPs

  1. #11

    Default

    Quote Originally Posted by daver2 View Post
    There is a typo. in my post #7. I meant pages 1 and 2 not pages 2 and 3 as I have written.

    Page 3 will still affect the flip/flop though!

    It will be interesting to check how much RAM there is, there may only be 128 or 256 bytes - so that will make subroutines a bit tricky on a 6502... Although I am sure I have seen some subroutine examples in the manual. I will check...

    Dave
    It only hooks up address line A0..A6, so the same 128 bytes are replicated through the memory map. As long as the stack pointer is initialized to $7F (or actually $FF would work, too), it will look like page 0 memory starting at $7F and working down will be used as the stack.
    Last edited by resman; December 2nd, 2019 at 10:48 AM. Reason: Additional info

  2. #12
    Join Date
    Jun 2012
    Location
    UK - Worcester
    Posts
    3,194

    Default

    I had a bit of time waiting for a meeting to start today so I took another look at the schematics and concur with resman regarding the 'reflection' of the 128 bytes through memory.

    What it does mean is that you have to be careful about not using areas of the RAM that could be overwritten by the stack usage.

    I see that a later design of the OSI 300 has used used a larger RAM device. However, in this case, the stack should be contained to page 1 - but the limitations of page 1/2 to set/reset the 1-bit flip/flop will still apply and will be 'reflected' throughout the larger memory device.

    The use of the stack (i.e. subroutines) on page 1 whilst using the 1-bit latch may, therefore, cause you problems.

    Dave

  3. #13

    Default

    One wonders why this address range was chosen? Was there another purpose?
    Dwight

  4. #14

    Default

    So the OSI 300 is pretty much the barest bones 6502 possible (with 1 bit I/O). It doesn't even have a ROM - you have to preload the reset vector into locations $7C and $7D (reflecting $FFFC and $FFFD), meaning you shouldn't use those values for anything else; like the stack in my example above. The flip flop set/reset is tied to A8 and A9, meaning that page 3 (or any page setting A8 and A9) would set and reset simultaneously. Including fetching the reset vector at $FFFC. Who will win? Why did they do this, besides being easy? Who knows.

  5. #15

    Default

    Quote Originally Posted by resman View Post
    So the OSI 300 is pretty much the barest bones 6502 possible (with 1 bit I/O). It doesn't even have a ROM - you have to preload the reset vector into locations $7C and $7D (reflecting $FFFC and $FFFD), meaning you shouldn't use those values for anything else; like the stack in my example above. The flip flop set/reset is tied to A8 and A9, meaning that page 3 (or any page setting A8 and A9) would set and reset simultaneously. Including fetching the reset vector at $FFFC. Who will win? Why did they do this, besides being easy? Who knows.
    I think with the design as shown, A9 and A10 would have allowed interrupts without issues.
    Dwight

  6. #16

    Default

    Quote Originally Posted by Dwight Elvey View Post
    I think with the design as shown, A9 and A10 would have allowed interrupts without issues.
    Dwight
    Without further qualifying the addresses of the flip flop's set & reset, any IRQ, NMI, or RST is going to drive both set & reset when the 6502 tries to fetch the vector from page $FF, setting A15..A8 high. I hope the flip flop is okay with that.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •