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

By DanySoft

Champion (433)

DanySoft's picture

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 ...

Login or register to post comments

By DanySoft

Champion (433)

DanySoft's picture

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

By DanySoft

Champion (433)

DanySoft's picture

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

By konamiman

Paragon (1044)

konamiman's picture

08-11-2011, 10:13

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

By DanySoft

Champion (433)

DanySoft's picture

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

By hit9918

Prophet (2868)

hit9918's picture

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.

By DanySoft

Champion (433)

DanySoft's picture

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

By Warchild

Paragon (1271)

Warchild's picture

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

By DanySoft

Champion (433)

DanySoft's picture

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

By DanySoft

Champion (433)

DanySoft's picture

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 !!