(10-11-2021 06:50 AM)J-F Garnier Wrote: Did you deliberately set PORT (0.00) to IRAM?
If yes, you may not be in the same configuration as the OP. If not, it may be the sign of something wrong.
Yes, I was tired of reloading MEMBUF, but you are right I should not have done this.
I have redone the tests and there is a problem.
When I do
polbit configuration with a 32KB RAM module in port 1, 2, and 3, it seems to work, but when I free one on the 32KB RAM port, I get a
Memory Lost on the first free port but not on the others.
Startup configuration
Code:
INIT 3 → "Memory Lost" , lets start clean
MEM → 115049
DELAY 0,0
DISPLAY IS :PRINTER
COPY MEMBUF:TAPE
RUN MEMBUF
Port Dev Seq Size Addr Type
0 0 0 4 60000 0
0 1 0 4 62000 0
0 2 0 4 64000 0
0 3 0 4 66000 0
1 0 0 32 30000 0 32K RAM in port 1 part of main RAM
2 0 0 32 40000 0 32K RAM in port 2 part of main RAM
3 0 0 32 50000 0 32K RAM in port 3 part of main RAM
0 5 0 16 70000 2
5 0 0 16 78000 2
5 1 0 32 D0000 2
5 2 0 32 C0000 2
5 3 0 16 80000 2
First free first port:
Code:
FREE PORT(1) → "Memory Lost" , what? not expected
MEM → 82241
DELAY 0,0
DISPLAY IS :PRINTER
COPY MEMBUF:TAPE
RUN MEMBUF
Port Dev Seq Size Addr Type
0 0 0 4 50000 0
0 1 0 4 52000 0
0 2 0 4 54000 0
0 3 0 4 56000 0
2 0 0 32 30000 0 32K RAM in port 2 part of main RAM
3 0 0 32 40000 0 32K RAM in port 3 part of main RAM
0 5 0 16 60000 2
1 0 0 32 D0000 1 32K RAM in port 1 is now IRAM
5 0 0 16 68000 2
5 1 0 32 C0000 2
5 2 0 32 B0000 2
5 3 0 16 70000 2
Free second port:
Code:
FREE PORT(2) → works without loosing memory
MEM → 49500
RUN MEMBUF
Port Dev Seq Size Addr Type
0 0 0 4 40000 0
0 1 0 4 42000 0
0 2 0 4 44000 0
0 3 0 4 46000 0
3 0 0 32 30000 0 32K RAM in port 3 part of main RAM
0 5 0 16 50000 2
1 0 0 32 D0000 1 32K RAM in port 1 is IRAM
2 0 0 32 C0000 1 32K RAM in port 2 is now IRAM
5 0 0 16 58000 2
5 1 0 32 B0000 2
5 2 0 32 A0000 2
5 3 0 16 60000 2
Get back first port:
Code:
CLAIM PORT(1) → works without loosing memory
MEM → 82254
RUN MEMBUF
Port Dev Seq Size Addr Type
0 0 0 4 50000 0
0 1 0 4 52000 0
0 2 0 4 54000 0
0 3 0 4 56000 0
1 0 0 32 30000 0 32K RAM in port 1 now part of main RAM
3 0 0 32 40000 0 32K RAM in port 3 part of main RAM
0 5 0 16 60000 2
2 0 0 32 D0000 1 32K RAM in port 2 is IRAM
5 0 0 16 68000 2
5 1 0 32 C0000 2
5 2 0 32 B0000 2
5 3 0 16 70000 2
Get back second port:
Code:
CLAIM PORT(2) → works without loosing memory
MEM → 115008
RUN MEMBUF
Port Dev Seq Size Addr Type
0 0 0 4 60000 0
0 1 0 4 62000 0
0 2 0 4 64000 0
0 3 0 4 66000 0
1 0 0 32 30000 0 32K RAM in port 1 part of main RAM
2 0 0 32 40000 0 32K RAM in port 2 now part of main RAM
3 0 0 32 50000 0 32K RAM in port 3 part of main RAM
0 5 0 16 70000 2
5 0 0 16 78000 2
5 1 0 32 D0000 2
5 2 0 32 C0000 2
5 3 0 16 80000 2
All modules are back to main memory, lets try to free a port again
Free third port:
Code:
FREE PORT(3) → "Memory Lost", not expected but same behavior as last time
MEM → 82281
DELAY 0,0
DISPLAY IS :PRINTER
COPY MEMBUF:TAPE
RUN MEMBUF
Port Dev Seq Size Addr Type
0 0 0 4 50000 0
0 1 0 4 52000 0
0 2 0 4 54000 0
0 3 0 4 56000 0
1 0 0 32 30000 0 32K RAM in port 1 part of main RAM
2 0 0 32 40000 0 32K RAM in port 2 part of main RAM
0 5 0 16 60000 2
3 0 0 32 D0000 1 32K RAM in port 3 is now IRAM
5 0 0 16 68000 2
5 1 0 32 C0000 2
5 2 0 32 B0000 2
5 3 0 16 70000 2
Same behavior applies to any port, when all memory modules are part of main RAM, when I free a module I get a memory lost on the first FREE PORT but not on the others.
I also did this test:
- no RAM memory modules
- INIT 3, MEM → 16760
- power off, insert 32K RAM into port 1, power on, MEM → 49517
- power off, insert 32K RAM into port 2, power on, MEM → 82280
- power off, insert 32K RAM into port 3, power on, MEM → 115043
- power off, insert 32K RAM into port 4, power on, MEM → 98654 → What?
OK, how this is mapped ...
Code:
MEM → 98654
DELAY 0,0
DISPLAY IS :PRINTER
COPY MEMBUF:TAPE
RUN MEMBUF
Port Dev Seq Size Addr Type
1 0 0 32 30000 0
2 0 0 32 40000 0
3 0 0 32 50000 0
0 0 0 4 78000 1
0 1 0 4 7A000 1
0 2 0 4 7C000 1
0 3 0 4 7E000 1
0 5 0 16 60000 2
4 0 0 32 D0000 1
5 0 0 16 68000 2
5 1 0 32 C0000 2
5 2 0 32 B0000 2
5 3 0 16 70000 2
Power cycle and show memory map again
Code:
MEM → 146306 , memory is now what was expected
RUN MEMBUF
Port Dev Seq Size Addr Type
0 0 0 4 70000 0
0 1 0 4 72000 0
0 2 0 4 74000 0
0 3 0 4 76000 0
1 0 0 32 30000 0
2 0 0 32 40000 0
3 0 0 32 50000 0
4 0 0 32 60000 0
0 5 0 16 80000 2
5 0 0 16 88000 2
5 1 0 32 D0000 2
5 2 0 32 C0000 2
5 3 0 16 90000 2
mmm, ok, what happen when I remove module now ?
- four RAM memory modules, all part of main RAM, MEM → 146303
- power off, remove 32K RAM from port 4, power on, MEM → 113540
- power off, remove 32K RAM from port 3, power on, Memory Lost , MEM → 82236
- power off, remove 32K RAM from port 2, power on, MEM → 49523
- power off, remove 32K RAM from port 1, power on, MEM → 16760
I have to go, but more test are needed on this last part.
Sylvain