"bug" on NestorBasic vram page 1 to vram page 0 ?

Door DanySoft

Champion (433)

afbeelding van DanySoft

05-11-2011, 23:12

Hello,
This is "bug" on BASIC to see graphics from page 2 to page 0 (65536-131072 to 0-65535)
And can't link this list of BASIC :

10 bload "nbasic.bin",r: Rem NestorBASIC is loading...
20 p(0)=1 [: p(0)= 0  : rem page 2 : 65535 - 131072
30 p(1)=0 : p(2)= 0  : rem page 0 : 0 - 65535
40 p(3)=&H4000 : p(4) = 1 : p (5)= 1
50 K=usr(23)

And resolved on the my assembleer

di
ld a,2
out (099h),A
ld a,14 
or 128
out (99h),a
ei

STOP at this list why is easy to make read to write, but at ending of loop...
(for example 16384 bytes from page 2 to page 0) and the result is not OK

Can't help this problem of read/write on page 0/1 ? Question
Talk you.
Dany

n.b.: This MSX-BASIC is not full : missing functions for get/put 64/128K but
SET PAGE is use but screen 0-4 is not use because syntax error ...

Aangemeld of registreer om reacties te plaatsen

Van DanySoft

Champion (433)

afbeelding van DanySoft

06-11-2011, 00:03

Olther metod of load o move from page 1 of 64K to page 0 of 64K is this :

bload "",s and set page but for screen 2/4 is not available, only for screen 5 to 12...

or use DMMM command of VDP ?
... please make the example to use VDP to screen 1 or 2 the block of vram (page 1:0000 - 1:FFFFh)
to page 0:0000 - 0:FFFFh)... Crying

Van DanySoft

Champion (433)

afbeelding van DanySoft

07-11-2011, 23:19

Hello, I correct one thing:

di
ld a, 4     <---------- Byte 4 is correct, 2 is low addres, 4 is high address!
out (099h),A
ld a,14 
or 128
out (99h),a
ei

Now everything is OK, we ran the access to the VRAM from 1:0000 h!!

But no one helped me? However, I solved the problem by itself! Sad

Van konamiman

Paragon (1046)

afbeelding van konamiman

08-11-2011, 10:13

Isn't there a bug on line 20? you are setting p(0) twice...

Van DanySoft

Champion (433)

afbeelding van DanySoft

08-11-2011, 20:34

Yes, all ok, P(0)=0 page vram, P(1)= adres
P(2)=2: page vram, p(3)=adres and p(4)=16384 (max)

and execute K=usr(23) and see result not ok :
page 1 (064-128K) non copy to page 0: 000K-64K)
Why is wrong ?
is see VDP-14 to set the number 4, this is correct to set /get address 1:0000 (64k-128K!!)

But not resoved this problem, and ripare this bug ? The version is NestorBasic 1.11.
Bye Bye

Sad

Van hit9918

Prophet (2868)

afbeelding van hit9918

10-11-2011, 15:53


But no one helped me? However, I solved the problem by itself! Sad

@DanySoft

The problem is language Smile2

Also, the details are unclear. The numbers you are using. And the code.

Van DanySoft

Champion (433)

afbeelding van DanySoft

10-11-2011, 21:11

Sorry for language, else ...

Refer to the function of 23 NestorBasic 1.11:
VRAM method => VRAM:
I put:
p (0) = 0: p (a) = 0: rem block bam and address
p (2) = 0: p (3) = 0: rem block bam and address
p (4) = size (max 16384)
Usr = K (23)
This will copy the page and the VRAM address to the new page and the new address.
But unfortunately, I could not copy the page 1 to page 0 (64K)

But what value has been given to the page block of vram? P (0) and p (2) = 0? 1? 2?

Register 0Eh:
VRAM access (VRAM address select, higher address lines)
Bit Name Expl.
0 A14 1 if 4000h and forward
1 A15 1 if 8000h and forward
A16 2 1 if 10 000h-and-forward
7-3 Always 0 0

A16 A15 A14 Expl.
0 0 0 0 - 3FFFh (VRAM) memory
0 0 1 4000h - 7FFFH
0 1 0 8000h - BFFFh
C000h 0 1 1 - FFFFh
1 0 0-10000h 13FFFh
1 0 1 14000h-17FFFh
1 1 0-18000h 1BFFFh
1 1 1-1C000h 1FFFFh

But what value has been assigned to 10000h - 13fffh? Question

Van Warchild

Paragon (1271)

afbeelding van Warchild

10-11-2011, 21:51

Do you want to copy 64Kb of data or just the 16384 bytes? It's explained at NestorBasic manual how to do it if you want to transfer more than the 16384, that is slighty different (don't remember exactly now). If that's not the case then please explain clear (take a time to write it) what you are trying to do, post again your corrected basic program and tell us if you can see anything changing when run: Stops before you expected? Has part of the data been transferred or none of it? If you only say "it doesn't work" and get angry we don't have any clue for helping you (and I know people here likes to help) Smile

Van DanySoft

Champion (433)

afbeelding van DanySoft

11-11-2011, 21:15

All right:
I WANT to copy the address specified in the new location of VRAM:
Source: 65536 (up to 131072)
end: 16384 -65535
All these addresses are VRAM, please make the example to use
the funzione 23 !

Bye bye Tongue

N.B.: And make this function 23, i'm use function 22 (ram - > VRAM)
but can't access vram ad 1:0000 !! Question to segnment of RAM

Van DanySoft

Champion (433)

afbeelding van DanySoft

11-11-2011, 21:23

Note, this source is insert in binary make by USR, but continue ad insert olther function but function 23 is not access to High VRAM (UP >64K). Sorry....

di
ld a, 4 <---------- Byte 4 is correct, 2 is low addres, 4 is high address!
out (099h),A
ld a,14
or 128
out (99h),a
ei

And continue ad use NestoBasic !!