It's first revision 0.0001 ;D
How it's working?
OS Vector and basic has been copied to banks 4-7. (settings C2 similar to cpm)
Part of LowRom has been recompiled to bank 6 and part to bank 7.
Procedures in bank 7 disabling interrupts and switches for a while to C1 settings
Now not working basic graphics (it draws to bank 5), Shift+copy in mode 0 and 1.
Working print, Shift+copy in mode 2, cls, clg, locate, scrolling and window.
to change Video bank (now 1 or 2) applay poke &FFFF,&40 or &80
1024x256 perheps in emulator :P ShugarBox v0.29 only. (shows 1008 points, CRTC R0=66, H-freq=14,925kHz, small width H sync signal.)
Maybe some LCD monitor will show this....
Here is something possible I guess given you can run BASIC in the other 64k bank.
Imagine...
for people with 512kb expansions, you had 8 x 64k banks used
mode 2 writes to a text-only buffer/virtual screen also stored within those isolated 64k blocks
pressing ctrl+0 to 7 would change keyboard entry and physical screen updating (from the text-only buffer/virtual screen) between the 64k blocks
have an interrupt that cycles through the 8 blocks of 64kb... so, you now have a fully multi-tasking environment.
it's not the goal i guess of your patch, and I am interested to see how your modifications evolve. have you tried the Locomotive Shell to see if it is compatible with the changes you have made so far?
How much do You mean by saying "Locomotive Shell"?
Originally the patch was made to change the resolution. I have 6,5kB recompile part LowROM in ram, and (now) ~200bytes in bank 7.
This trick works because in C1 and c2 and c3 banks we have always bank 7 at &C000-FFFF. Thats why code works after the change bank settings.
Bank 7 is way to copy any data to screen without allocable code. Other way is C5 setting.
ps.
How did you go testing the shell rom with the new mode?
Also how do you invoke the new mode? Mode 3 4 5?
What is the aspect ratio of the new modes?
And whst would be the best mode if the basic shell was to open directly?
To be honest I am not testing Shell yet.
Now I create useful graphics and character writing in all 4 banks (0,1,2,3). Now FILL doesn't work. I have not changed the default operating system procedure for scrolling the screen. Overscan cannot use hardware scrolling. (Cannot show 3 banks in series).
So far I control the screen address &0, &40, &80 and sentings bank &C1 or &C3 (for writeing to bank 3 at address & 40)
I also added a mask setting for the Hardware scroll offset.
This is all in heavy under construction. ;D
the hardware scrolling is a pitty, but i guess it just means having to code a fast screen renderer - if text mode, then a linked list of lines would work nicely (no graphics though)
you could just not care about scrolling of graphics, but allow them when things aren't scrolled.
Quote from: zhulien on 16:18, 06 March 22What is the aspect ratio of the new modes?
In mode 2 characters:
for 16kB screen:
AspectRatio=width / (2048\width), when width is 62, 64, 68, 72, 76, 80, 84, 88, 92, 96 ,112, 120, 124, 128
for Overcscan screen:
AspectRatio=width / 32
for Overscan virtual screen:
AspectRatio=width / (8192\width) <-this possible 128x128 characters or 64x256 characters with smooth hardware scroll.
the mode 2 screens sound interesting, have you tried the zoom function that some TVs have to see if those modes zoom in, or is the border detected by the TV?
why do you suppose I have CPC. ;)
62-96 characters width fits in PAL standard.
ps. version 0.00012 please use option 4... and next m and d. Arrow up/down scrolling whole 64kb video memory.
change target screen: poke -1,&0 or ,&40 or &80, or &40 and poke &c001,&C3
to disable hardware scroll use window 1,.....
Quote from: zhulien on 16:18, 06 March 22What is the aspect ratio of the new modes?
Here the aspect ratio remains the same for a normal CPC, the total screen resolution is being increased with overscan and with emulation beyond what is possible with the CRTC.
So it doesnt provide anything new for a normal CPC outside of emulation(thats not to take anything from OPs investigations of course) .
what i meant was for example... let's say you put the CPC screen resolution down to 320x170, make the border black and the paper blue, would your monitor / TVs zoom function recognise only the paper portion as being the screen and zoom it in as 16:9 'full screen' as it does usually with DVDs?
perhaps the other screen resolutions that you can make also have interesting zoom behaviour? It would be nice to play full screen on a CPC even if the resolution was only 320x170 (mode 1) or 160x170 (mode 0), but... perhaps a variation of mode 0 (16 colours double width pixels) in 16:9 ratio, could still be good full screen on a zoom feature with a pretty cool resolution? 240x255 (16 colours)?
Hope you're not talking about existing games, because they have no way to modify the ratio of screen.
You can check if it works on your TV.
out &bc00,6:out &bd00,21:border 0 (320x168 in mode 1)
MODE 2 in 1024x256 on Real TV. DONE IT !!!!!!
MODE 0 in 256x256 on Real TV. DONE IT !!!!!!
CRTC settings R0=70 R1=64 R2=65 R3=&36 R4=64 R6=32 R7=33-61
Procedure to make dynamic Frame.
org #a200 ; 2bands.bin
.custom_int
push af
push bc
push hl
ld bc,#f500
in a,(c)
rra
ld bc,COUNT_INT
ld a,(bc)
jr nc,skipvs
xor a
.skipvs
inc a
ld (bc),a
CP 2
JR z,int2
CP 7
JR z,int7
JR end_custom_int
.int2
ld bc,#bc04
out (c),c
inc b
v1 equ $+1
ld a,31
out (c),a␛
dec b
ld c,07
out (c),c
inc b
ld a,63
out (c),a
dec b
ld c,12
out (c),c
inc b
offset2 equ $+1
ld a,#1c
out (c),a
jr end_custom_int
.int7
ld bc,#bc04
out (c),c
inc b
v2 equ $+1
ld a,25+7
out (c),a
dec b
ld c,07
out (c),c
inc b
Vsync equ $+1
ld a,25+3
out (c),a
dec b
ld c,12
out (c),c
inc b
offset1 equ $+1
ld a,#30
out (c),a
.end_custom_int
pop hl
pop bc
pop af
di
EX AF,AF'
JP C,#B978
JP #B945
.count_int
db 01
5 LOAD"2bands.bin",&A200
20 b=&A200:h=15
21 OUT &BC00,6:OUT &BD00,h+1
25 POKE b+&13,2:POKE b+&17,5:REM num interrupt since V-synch
30 POKE b+&23,h:POKE b+&43,h+7:REM hight-1
35 POKE b+&57,&30:POKE b+&37,&1C:REM offset for bank bands
36 POKE b+&4D,h+3:REM sync
40 CALL &BFF2,&C9,&B942,&53ED,&B941,&32C3,&3EF3,&A200
Work with last soft but disable interrupts crashing and blanking screen. Not very usable now. For static screen only.
WORK ONLY WIDTH MONITOR SUPPORT 720x480p30Hz FRAME.
Screen has bank 3 and 1,2. 48kB screen 256H x 384V resolution.
1024x480 mode 0, 512x480 mode 1, 256x480 mode 0 IT'S DONE !!!! 61,4 kB Video RAM for Amstrad CPC 6128.
release v0.00013 :o ;D use ovs256+3.bas
Fixed bug Pressing COPY after using poke&c001,&C3
Add display DynamicFrame in 2 Bands (32kb bank0 and bank1 + 29kB bank2 and bank3).
Frame use timing for Vesa 720x480p30Hz (forced to 27Hz)
R0 =70 (71us)
R4 =31 ,32 (32+33=65 chars, 65*8= 520lines, 10 interrupts)
Hsync 14084,5 Hz, Vsync 27,08Hz
Other way ..... 192x168 (21:9 ;D )
46 shades of green with flickering 3 bitplans (47kB VRAM)
82 Hz (188 lines, work 4 interrupts per frame).
Only monochrome monitor.
SNA for 50 Hz flickering more than 82 Hz ofcourse.
Venom original PC.png is a simulated 46 shades view in CPC
If you are mixing 3 biplanes, why the picture is MODE 0 and not MODE 2 ? ;D
For MODE 0, I think that you can reach a very close result with 2 frames instead of 3 (no flickering at 82Hz)
Quote from: TotO on 12:23, 23 November 22I think that you can reach a very close result with 2 frames instead of 3
Show us ...
Picture is standard BMP file. Read by CPC, convert and view.
I think it is a good way to view realistic photo. (with HDR too) 8)