Sorry for all typos, trying to do better! Tell me if something is not understandable!
Okay, I read little more on bank-switching, this is my conclusion so far;
The logical memory address space of the Z80, 64K, is divided in to four 16K windows.
The physical memory space is 256K=16 by 16K shunks/banks/pages or whatever you want to call it.
Each of the four windows of the logical memory space can be assigned with anyone of the 16 different pages/banks of the physical memory space( in theory, there are probably some limitations).
The logical 64K memory space that the CPU see is divided like this and is assigned to four I/O ports;
Window/bank 0, 0000-3FFF, port 40H
Window/bank 1, 4000-7FFF, port 41H
Window/bank 2, 8000-BFFF, port 42H
Window/bank 3, C000-FFFF, port 43H
You simply write the bank/page number(1-16) to the right I/O port of the window you want to assign it with!
Out &H43, 7 (swapping in 16K video RAM page 7 in the top 16K logical memory map, C000-FFFF)
Out &H43, 5 (swapping in 16K RAM page 5 in the same area)
LD A, 7
OUT (43H), A
So if I switch in 16K block #7 into the memory map at $C000, would that be 16K VRAM or 16K all purpose RAM that the graphics subsystem also has access to?
Page 7(or 3) is tied to the video circuits at all time and constantly update your screen with its contents. When you switch it in, in one of the four 16K windows, you can access it and change it contents at those window addresses. All do, access time is shared between CPU and video circuits, which perhaps explain garbage on the screen and possible limitation.
It would have been a nice feature if it really was possible to switch between two VRAM pages(3 and 7) on the fly. The manual states the VLSI chip is the same in all Laser 350/500/700 and that it is possible to switch between page 3 and 7 when writing to bit 3 in port 44H. But I suspect there is no RAM at page 3 on a 500 because it is mapped differently than the 350, a 350 with RAM expansion could possible reach both pages.
The 500 64K RAM is said to be at page 4 to 7.
The bank-switching on Laser 350/500/700 seem to be very dynamic. It seems to switch in and out pages very regularly/frequently to do even basic things like for example reading the keyboard(page 2=memory mapped I/O) or write to the video memory.
I am not to familiar with bank-switching before but usually I associate it with extended RAM or other expansion, here the computer wouldn't work on basic level without it----only my reflection!
There are of course a clear parallel to the VLSI chip on the LASER 128 which also have a crisp video/80 column and does a tons of things.
But also to Sinclair(ULA), Acorn and Amstrad. Probably this was a major achievement for VTECH in 1984-85 to produce its own custom ASIC chip. In Laser 350/500/700 it says to compromise hundreds of regular ICs.
Be aware that nothing above is tested on real hardware, but be welcome to verify whats working or not!
Edited by Platis, Fri Feb 16, 2018 6:28 PM.