6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Tue Apr 30, 2024 4:18 am

All times are UTC




Post new topic Reply to topic  [ 5 posts ] 
Author Message
PostPosted: Mon Apr 01, 2024 6:06 pm 
Offline

Joined: Sat Jan 09, 2021 9:33 pm
Posts: 22
Hi All,

On a vintage computer I expect to increase memory size with paged memory.
I will get
an 512 kb eprom from which I can see only one "page" of 512 bytes into the normal address space
a 128 kb ram again with 512 bytes visible into the space address.

Pages are selected by two 8 bits latches 74LS377 (one for the eprom and the other one for the ram).

In a first intention I dont want to use a mmu like MC6829. The system is 6809 TSC FLEX and should stay a single task system (just dual tasks using IRQ during batch printing).

I search technical documentations and examples of programs (I use assembler) in this situation.

Any information will be valuable.

Thanks and regards.
Philippe


Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 01, 2024 7:01 pm 
Offline

Joined: Tue Jul 05, 2005 7:08 pm
Posts: 990
Location: near Heidelberg, Germany
What exactly is it that you are trying to accomplish?

A ROM or RAM window of 512 bytes (each) is not very much for doing actual programming (running just inside these two windows).

If that is an extension of a vintage computer, what computer are you thinking of? That machine should also already have some RAM and ROM for "normal" operation, like an operating system or routines to print to the screen for example.
In such a case, it would probably make more sense to put separate device drivers into the ROM (look at what Apple II did within the 256 byte I/O driver window), and use the RAM window to access the RAM as kind of RAM disk.

André

_________________
Author of the GeckOS multitasking operating system, the usb65 stack, designer of the Micro-PET and many more 6502 content: http://6502.org/users/andre/


Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 01, 2024 8:33 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10793
Location: England
The BBC Micro does have a couple of pages which can be used to map in parts of a large RAM (or ROM) - intended, I think, to be used for RAM disks although they can be used for other peripherals including mass storage. I think the Music 500 uses this mechanism to access the wavetable memory.

So perhaps looking up the Beeb's 1MHz bus, and the FRED and JIM pages, would be fruitful.

It's pretty unusual to be running code from such a limited space, although there are times when that could be useful - most likely it's for data, or it's to act as a buffer from where code is copied into normal RAM.


Top
 Profile  
Reply with quote  
PostPosted: Tue Apr 02, 2024 6:32 am 
Offline

Joined: Sat Jan 09, 2021 9:33 pm
Posts: 22
Unfortunately the cpu board and the address decoding map already exist.

So I have to do with only a small part of the address space available for the user.

And its my challenge to improve this computer without modification of the existent...


Top
 Profile  
Reply with quote  
PostPosted: Tue Apr 02, 2024 10:04 pm 
Offline
User avatar

Joined: Fri Jan 26, 2024 5:47 am
Posts: 37
Location: Prague; Czech Republic; Europe; Earth
My first impulse will be to place on every "512bytes page" code to switch page and jump somewhere, if it would be on the same place (ideally start of the page, as it is simply doable), then it can be simply used even when the page is changed in the middle of the process. (part of bytes would be from old page, part from new, but as the bytes are identical in both ...)

Depending on what you can use the construction may differ, but simply convention would be this - if you want to continue on page YYY at address XXX, then push the XXX, load YYY to A register and jump to start of your page. There will be code to store the A registr to the '377 chip and RTS.

Code:
page00: ; the begin of every page
  STA SelectROMpage ; access to the 74LS377
  RTS ; jump to the address needed there

.....

   ; later in the page
  LDX #SomeAddress
  PUSHX
  LDA #pageNumber
  JMP page00


If you are lucky to find the sequence of the bytes somewhere in already existing ROM (or can smuggle it somewhere in RAM on start), then you can save those bytes from every page by using this part of other code.
(And it may be some unaligned part of data, or other code too, maybe starting in middle of instruction)

_________________
http://micro-corner.gilhad.cz/, http://8bit.gilhad.cz/6809/Expanduino/Expanduino_I.html, http://comp24.gilhad.cz/Comp24-specification.html, and many others


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 5 posts ] 

All times are UTC


Who is online

Users browsing this forum: Google [Bot] and 32 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: