The following warnings occurred:
Warning [2] Undefined array key "attachments" - Line: 20 - File: portal.php(680) : eval()'d code PHP 8.2.31 (Linux)
File Line Function
/inc/class_error.php 157 errorHandler->error
/portal.php(680) : eval()'d code 20 errorHandler->error_callback
/portal.php 680 eval
Warning [2] Undefined array key "attachments" - Line: 20 - File: portal.php(680) : eval()'d code PHP 8.2.31 (Linux)
File Line Function
/inc/class_error.php 157 errorHandler->error
/portal.php(680) : eval()'d code 20 errorHandler->error_callback
/portal.php 680 eval
Warning [2] Undefined array key "attachments" - Line: 20 - File: portal.php(680) : eval()'d code PHP 8.2.31 (Linux)
File Line Function
/inc/class_error.php 157 errorHandler->error
/portal.php(680) : eval()'d code 20 errorHandler->error_callback
/portal.php 680 eval
Warning [2] Undefined array key "attachments" - Line: 20 - File: portal.php(680) : eval()'d code PHP 8.2.31 (Linux)
File Line Function
/inc/class_error.php 157 errorHandler->error
/portal.php(680) : eval()'d code 20 errorHandler->error_callback
/portal.php 680 eval
Warning [2] Undefined array key "attachments" - Line: 20 - File: portal.php(680) : eval()'d code PHP 8.2.31 (Linux)
File Line Function
/inc/class_error.php 157 errorHandler->error
/portal.php(680) : eval()'d code 20 errorHandler->error_callback
/portal.php 680 eval
Warning [2] Undefined array key "attachments" - Line: 20 - File: portal.php(680) : eval()'d code PHP 8.2.31 (Linux)
File Line Function
/inc/class_error.php 157 errorHandler->error
/portal.php(680) : eval()'d code 20 errorHandler->error_callback
/portal.php 680 eval
Warning [2] Undefined array key "attachments" - Line: 20 - File: portal.php(680) : eval()'d code PHP 8.2.31 (Linux)
File Line Function
/inc/class_error.php 157 errorHandler->error
/portal.php(680) : eval()'d code 20 errorHandler->error_callback
/portal.php 680 eval
Warning [2] Undefined array key "attachments" - Line: 20 - File: portal.php(680) : eval()'d code PHP 8.2.31 (Linux)
File Line Function
/inc/class_error.php 157 errorHandler->error
/portal.php(680) : eval()'d code 20 errorHandler->error_callback
/portal.php 680 eval
Warning [2] Undefined array key "attachments" - Line: 20 - File: portal.php(680) : eval()'d code PHP 8.2.31 (Linux)
File Line Function
/inc/class_error.php 157 errorHandler->error
/portal.php(680) : eval()'d code 20 errorHandler->error_callback
/portal.php 680 eval
Warning [2] Undefined array key "attachments" - Line: 20 - File: portal.php(680) : eval()'d code PHP 8.2.31 (Linux)
File Line Function
/inc/class_error.php 157 errorHandler->error
/portal.php(680) : eval()'d code 20 errorHandler->error_callback
/portal.php 680 eval




Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 277
» Latest member: Elemento26
» Forum threads: 1,087
» Forum posts: 6,490

Full Statistics

Online Users
There are currently 139 online users.
» 0 Member(s) | 138 Guest(s)
Google

Latest Threads
GuSprites
Forum: Help & Support
Last Post: zedex82
2026-06-19, 06:39 PM
» Replies: 2
» Views: 357
New video Couse / Nuevo c...
Forum: News
Last Post: Duefectu
2026-04-29, 11:02 PM
» Replies: 0
» Views: 2,702
location of heap manageme...
Forum: Help & Support
Last Post: boriel
2026-03-07, 12:13 AM
» Replies: 1
» Views: 745
non-paged supervisor code...
Forum: Help & Support
Last Post: sdo303
2026-02-20, 06:38 PM
» Replies: 8
» Views: 1,851
How to open fuse as an ex...
Forum: How-To & Tutorials
Last Post: Duefectu
2026-02-09, 01:52 PM
» Replies: 3
» Views: 1,745
Old zxbasic game errors
Forum: Help & Support
Last Post: boriel
2025-11-09, 11:52 AM
» Replies: 7
» Views: 2,541
Error: Undefined GLOBAL l...
Forum: Help & Support
Last Post: ardentcrest
2025-11-04, 05:46 PM
» Replies: 3
» Views: 1,397
A Fast(er) Plot Routine f...
Forum: How-To & Tutorials
Last Post: tubz74
2025-10-30, 03:16 PM
» Replies: 2
» Views: 1,480
Hall of Fame - Include fo...
Forum: How-To & Tutorials
Last Post: tubz74
2025-10-28, 03:48 PM
» Replies: 0
» Views: 820
[SOLVED] Array layout bug...
Forum: Bug Reports
Last Post: Zoran
2025-10-25, 05:48 PM
» Replies: 2
» Views: 1,541

 
  an additional label in <library-asm/print.asm>
Posted by: programandala.net - 2014-06-08, 08:11 PM - Forum: Library - Replies (3)

Mi wish is easy to satisfy: I need one label after CP 80h in <print.asm>:

Code:
ex af, af' cp 80h ; Is the char an UDG, a block character or a token? JUMP_IF_GREATER_THAN_80H: ; XXX label needed to hack the printing system jp c, __SRCADDR ; if not, jump

(That is an extract from my hacked version of <print.asm>, with additional comments of my own; the actual name of the label doesn't matter.)

The reason I need a label there is I have written a module that provides a sub to switch on an off the ZX Spectrum legacy printing mode (that treats ASCII chars, block chars and UDG chars apart). When the legacy mode is off, all chars 32-255 are taken from the same charset. This makes it possible to write source code with a modern 8-bit encoding, e.g. Latin1. This is very useful for programs that print a lot of text in other languages than English.

I tinkered with this idea four years ago, and hacked <print.asm>, but I had to redo the changes after every new version of ZX BASIC. The new approach is simpler and better: The sub modifies the code of <print.asm> in two locations, and the legacy printing mode can be restored at any time by the program. It works great. So far I have tried it with a modified version of <print.asm>. That's why I need that single label.

I will publish the module as soon as it can be used with a new version of ZX BASIC, unless someone requires it sooner.

Thank you.

Print this item

  RAM page support
Posted by: wilco2009 - 2014-05-29, 06:17 PM - Forum: Wishlist - No Replies

I've never programmed used bank switching, but now I'm developing a new external interface to convert a 16Kb Spectrum to a machine very close to a plus 3 machine but with 512Kb of RAM, and due to it, I'm starting to be interested of this kind of programming.

I know now that ZXBasic has not support for bank-switching.

I have a suggestion about the possibility of support it natively and then support 512Kb of RAM too. The method to change the page above 128Kb is the same that the used in Pentagon, ie using bits 6 and 7 of the same port than 128Kb ($7FFD).

Could be very interesting to do it, because if we do it manually we can only use it for data, as a very fast disk, but not for code. The best way is to implement it natively. It is not possible to do that with a library.

The main challenge could be to use the same addresses for different functions.

Print this item

  Bank switching in ZX-Basic
Posted by: wilco2009 - 2014-05-22, 10:34 AM - Forum: Help & Support - Replies (2)

I've never programmed used bank switching, but now I'm developing a new external interface to convert a 16Kb Spectrum to a machine very close to a plus 3 machine but with 512Kb of RAM, and due to it, I'm starting to be interested of this kind of programming.

Have ZXBasic support for bank-switching?. If the aswer is yes, I have a suggestion about the possibility of support for 512Kb of RAM. The method to change the page above 128Kb is the same that the used in Pentagon, ie using bits 6 and 7 of the same port than 128Kb ($7FFD).

If it is not supported, could be very interesting to do it, because if we do it manually we can only use it for data, but not for code. The best way is to implement it natively. It is not possible to do that with a library.

The main challenge could be to use the same addresses for different functions.

Print this item

  poke string address,string$
Posted by: programandala.net - 2014-05-21, 06:17 PM - Forum: Wishlist - Replies (1)

I think POKE STRING would be useful in many situations. It would poke the content of a string (not its lenght). I've written it this way:

Code:
sub fastcall pokeString(address as uinteger,text$ as string) asm ; HL = first parameter, address ex de,hl ; DE = address pop bc ; return address pop hl ; second parameter, address of the text$ lenght push bc ; restore the return address ld c,(hl) inc hl ld b,(hl) ; BC = text$ lenght inc hl ; HL = first char of text$ ldir end asm end sub

The advantage of a native POKE STRING would be POKE would work with all current types.

Print this item

  Error Undefined label 'None' (!)
Posted by: programandala.net - 2014-05-16, 04:01 PM - Forum: Help & Support - Replies (2)

Any clue what could cause the error "Undefined label 'None'"? It seems something missing is misinterpreted as a missing label?! I tried to find the wrong line with #line, but there are several #include and the error line changed without logic depending on the zones I commented out. Then I've created a debug version of the code, pasting all modules into their places instead of using #include. The same error happens, and also in different lines depending on the zones I comment out. So far I see no logic: the error line can be an "end asm" or a BASIC comment, an assembler comment or whatever.

Thank you

Print this item

  #INCBIN not working in 1.4 and 1.3
Posted by: programandala.net - 2014-05-14, 09:33 PM - Forum: Help & Support - Replies (3)

Hi all,

I'm back with some ZX BASIC projects.

The Z80 #INCBIN doesn't work for me. I never tried it before, but I think it's implemented (it's mentioned in the Syntax page of the wiki, and in a post by Boriel about graphics (2011)).

Code:
asm #incbin "file.bin" end asm

I use 1.4, but a symbolic link lets me switch to 1.3. Both versions show the same error: "invalid directive #incbin".

Is it a bug?

Thank you.

Print this item

  Another string related problem (*solved*)
Posted by: LCD - 2014-05-10, 02:00 AM - Forum: Bug Reports - Replies (5)

Let me demonstrate this nasty bug...

Code:
sub printerPutString(x as ubyte,y as ubyte,attribute as ubyte,char$ as string) print at y,x;char$ end sub sub Frame(x1 as ubyte,y1 as ubyte,width as ubyte,height as ubyte) printerPutString(x1,y1,6,chr(35)) printerPutString(x1,y1+height,6,chr(35)) printerPutString(x1+width,y1,6,chr(35)) printerPutString(x1+width,y1+height,6,chr(35)) strg$="" for old=1 to width-1 strg$=strg$+chr(33) next old printerPutString(x1+1,y1,7,strg$) printerPutString(x1+1,y1+height,7,strg$) for old=y1+1 to y1+height-1 printerPutString(x1,old,7,chr(34)) printerPutString(x1+width,old,7,chr(34)) next old end sub Frame(15,0,16,5)

This does not work correctly, but it *should* work.
print len strg$ is 15, but in procedure the char$ length is calculated with 0 lchars.
It works if I change the code to this:

Code:
sub printerPutString(x as ubyte,y as ubyte,attribute as ubyte,char$ as string) print at y,x;char$ end sub sub Frame(x1 as ubyte,y1 as ubyte,width as ubyte,height as ubyte) printerPutString(x1,y1,6,chr(35)) printerPutString(x1,y1+height,6,chr(35)) printerPutString(x1+width,y1,6,chr(35)) printerPutString(x1+width,y1+height,6,chr(35)) for old=x1+1 to x1+width-1 printerPutString(old,y1,7,chr(33)) printerPutString(old,y1+height,7,chr(33)) next old for old=y1+1 to y1+height-1 printerPutString(x1,old,7,chr(34)) printerPutString(x1+width,old,7,chr(34)) next old end sub Frame(15,0,16,5)

Print this item

  Variable corruption?
Posted by: britlion - 2014-03-23, 03:13 AM - Forum: Help & Support - Replies (1)

Code:
SUB FZXPrintAt(Y as uByte, X as uByte, printData as String) DIM FZXi as uInteger=0 PRINT INK 0;FZXi: PAUSE 0 FZXPrintAChar(22) 'at PRINT INK 1;FZXi: PAUSE 0 FZXPrintAChar(Y) PRINT INK 2;FZXi: PAUSE 0 FZXPrintAChar(X) PRINT INK 3;FZXi: PAUSE 0 PRINT LEN printData FOR FZXi=0 to LEN printData-1 PRINT INK 4;FZXi: PAUSE 0 FZXPrintAChar(CODE printData(FZXi)) PRINT INK 5;FZXi: PAUSE 0 NEXT FZXi END SUB

The first 3 calls to FZXPrintAChar work perfectly. Then we get to the loop part. It prints out 0 for FZXi and then prints the first letter of the string. Next time around the loop, FZXi becomes 33633!
But I'm not sure where?

Should I assume FZXPrintAChar does some stack corruption? This is just FZX from Einar Saukas (and friends) - and seems to work perfectly when called to print a single character. Even multiple times. But when looping, strange things happen.

The odd thing is it just seems to happen once. If I change the code to FZXPrintAChar(65) - it happily prints out letter A's in sequence beautifully. Except the first time through the loop, FZXi is set to 33633. It then proceeds to count upwards through 33634 33635 etc, as you'd expect for a loop variable.

Investigating as I type:
If I set the variable type to be a uByte, it gets set to 131 in the loop. (Which makes some sense, as the high byte of 33633 is 131 ) - but it isn't reset each time to 131, but is allowed to count upwards.

2 AM.

Time to quit for the night. Code dumped to <deleted> for the moment. - I fully accept the issue might be with the assembly module from someone else I've used!

EDIT: I think I see it. It's using IX in the routine. That will have to be changed!

Print this item

  Weird problem with strings / arrays (*solved*)
Posted by: Mousey - 2014-03-10, 08:35 PM - Forum: Bug Reports - Replies (16)

Hopefully my example listing makes it clear!

Code:
' using version 1.4.0s1864 paper 0 border 0 ink 7 cls dim textArray(1) as string dim text as string dim i as UBYTE text = "This is a string." i = 0 textArray(i) = text ' doesn't work - generates "Out of Memory" error if compiled with --debug-memory textArray(i) = "" + text ' works fine textArray(0) = text ' works fine print textArray(0) pause 0 end ' why does the first method not work?

Print this item

  SPECTRA Blitz
Posted by: LCD - 2014-02-25, 01:39 AM - Forum: Gallery - Replies (13)

First ZXBC game supporting SPECTRA Interface was released now:
<!-- m --><a class="postlink" href="http://members.inode.at/838331/zx/SPECTRA-Blitz2014.zip">http://members.inode.at/838331/zx/SPECTRA-Blitz2014.zip</a><!-- m -->
No screenshots as no Windows Emulator supports SPECTRA yet.

Print this item