understanding Memory-extension

48 views
Skip to first unread message

Matthias Barthel

unread,
Dec 27, 2025, 3:46:03 PM12/27/25
to PiDP-1
i need help for understanding how i work with a installed memory extension on the pidp1.

The posiible address in the addresspart of the 18 bit word is 7777, how can i address a memory-location in bank 1 ? Do i always a indirect jump to the other banks ?

That would be my approach...
jmp -i foo
foo, 10100

when this is right i must do any opcode indirect while extend mode is active?
BTW...can macro1 handle the memory extension ?

many thanks!

Matthias

Bill E

unread,
Dec 28, 2025, 7:02:41 PM12/28/25
to [PiDP-1]
Using extended memory is a bit inconvenient. You first enable it via the eem command.
Then ALL indirect references are full 16-bit addresses. You can only reference data in other banks via
an indirection. Once you jump to an address in another bank, that bank becomes the current bank and all
regular 12-bit non-indirect access is to that bank.
There are other considerations if you are using interrupts, this is documented in the pdp-1 handbook.

Note that neither macro nor macro1 will handle extended memory, you can't load code or data into any bank other than 0.
Am1 does handle that quite nicely. :)

Bill

Matthias Barthel

unread,
Dec 29, 2025, 7:41:55 AM12/29/25
to Bill E, [PiDP-1]
Thanks Bill,

I take a look at your AM1 to create a Testprogram wich loads data into a extended memory location. I implemented a Type15 Memory Extension to my Eps32-Simulator and  i want to test the new Feature if it works correct. 

I imagine that the regular rimloader loads a program into bank0 , the program starts extend-mode with eem and reads the data from the papertape to the extend-memory-banks. 


Matthias 

--
You received this message because you are subscribed to the Google Groups "[PiDP-1]" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-1+un...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/pidp-1/9ef0cd79-f1cc-4edd-9eca-1896c7e6987bn%40googlegroups.com.

Unibus

unread,
Dec 29, 2025, 9:02:41 AM12/29/25
to Matthias Barthel, Bill E, [PiDP-1]
Hi,
Just out of curiosity... Was there any difference between the Type 15 Memory Control which could support 16 of the Type 12 Memory (4,096 words) and later Type 121 Memory Controls supporting the Type 170 Memory (16,384 words). Functionally to me they look the same.

Regards,
Garry

Bill E

unread,
Dec 29, 2025, 12:15:51 PM12/29/25
to [PiDP-1]
Yes, AM1 'punches' a loader before the program, the same as macro and macro1 do. However, it's a different loader that handles extended memory loading. It resides at 7751, same as the usual bin loader.
AM1 allows a program to have code in any of the memory banks, controlled by a 'bank n' directive in the source. The loader will then put the code in the correct banks.
Bill

Matthias Barthel

unread,
Dec 29, 2025, 12:35:45 PM12/29/25
to Bill E, [PiDP-1]
I'm curious if your rimloader works with my esp32 simulator. In my simulator, I have installed the readin mode as faithfully as possible. 

A special readin mode reads the rimloader from the tape and then the rimloader is started by the CPU and reads the rest of the tape into the memory and starts the program at the end .

Matthias 

--
You received this message because you are subscribed to the Google Groups "[PiDP-1]" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-1+un...@googlegroups.com.

Bill E

unread,
Dec 29, 2025, 12:47:37 PM12/29/25
to [PiDP-1]
My extended memory bin loader is in rim format, so an AM1 produced binary loads via readin as usual. When my bin loader starts, it does enable extended memory via the eem instruction. Otherwise, it is similar to the existing bin loader, but not compatible with that format since it has to deal with extended addresses.

Here  it is. Note no checksum, we're not reading from electromechanical devices, no need for checksums.


lai=760040

7751/
    eem
loop, rpb
    lai
    and (177777
    dac addr
    spi
    jmp i addr /done
    rpb
    dio end
load, rpb
    dio i addr
    idx addr
    sas end
    jmp load
    jmp loop
addr, 0
end, 0
constants
start 7751
Bill

Matthias Barthel

unread,
Dec 29, 2025, 12:51:43 PM12/29/25
to Bill E, [PiDP-1]
Many thanks 👍 

Is it possible to build only the AM1 crossassembler from your git ?

Matthias 

--
You received this message because you are subscribed to the Google Groups "[PiDP-1]" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-1+un...@googlegroups.com.

Bill E

unread,
Dec 29, 2025, 3:38:22 PM12/29/25
to [PiDP-1]
Yes. Easiest way is to get the entire project via zip, unzip it. Then go to the Tools/AM1 directory and just type 'make'.
If you want to use the include files I've already defined, they are in the Am1Includes dir. You will find other useful tools in the Tools dir also.
Documentation is in the Docs directory.
Bill
Reply all
Reply to author
Forward
0 new messages