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 "rar" - Line: 4649 - File: inc/functions.php PHP 8.2.31 (Linux)
File Line Function
/inc/class_error.php 157 errorHandler->error
/inc/functions.php 4649 errorHandler->error_callback
/inc/functions_post.php 1034 get_attachment_icon
/portal.php 673 get_post_attachments
Warning [2] Trying to access array offset on value of type null - Line: 4649 - File: inc/functions.php PHP 8.2.31 (Linux)
File Line Function
/inc/class_error.php 157 errorHandler->error
/inc/functions.php 4649 errorHandler->error_callback
/inc/functions_post.php 1034 get_attachment_icon
/portal.php 673 get_post_attachments
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: 274
» Latest member: zxspecticle
» Forum threads: 1,086
» Forum posts: 6,487

Full Statistics

Online Users
There are currently 172 online users.
» 0 Member(s) | 171 Guest(s)
Bing

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

 
  started ColecoVision version based on MSX1 (not working yet)
Posted by: nitrofurano - 2013-06-29, 08:18 PM - Forum: Wishlist - No Replies

Started ColecoVision version! \o/
<!-- m --><a class="postlink" href="http://atariage.com/forums/topic/213707-colecovision-stuff-from-boriels-zx-basic-compiler-about-to-start/">http://atariage.com/forums/topic/213707 ... -to-start/</a><!-- m -->
Besides i can't yet generate a decent .rom file, it seems that some small fixes on the .rom arrangement and libraries will fix it soon, from the ColecoVision retro-development community! Smile (they seems very enthusiastic with Boriel's ZX-Basic Compiler!)
What i'm mostly struggling now is that the ColecoVision Bios routines are too confusing, and perhaps some replacements with i/o calls might be needed... and ColecoVision only have 1kb of ram... :S

Print this item

  New game: "Spectral Dungeons"
Posted by: LCD - 2013-06-25, 12:08 AM - Forum: Gallery - No Replies

[Image: spectral-dungeons-catacomb.png]
Not my game, but the Author (Felix) asked to do a crosspost.
<!-- m --><a class="postlink" href="http://www.worldofspectrum.org/forums/showthread.php?t=44202">http://www.worldofspectrum.org/forums/s ... hp?t=44202</a><!-- m -->
I hope, you like roguelikes, and the ZXBC source is included.

Print this item

  Vampe:GOTO Vampe
Posted by: valz - 2013-06-11, 04:43 PM - Forum: Gallery - Replies (3)

Hello guys ,
here is my game made with this great compiler, to show what this program can do,
fast and addictive,not bad for a basic game Smile
thank you Boriel for this great program.

[Image: scr1.png] [Image: scr2.png]
Hope you enjoy it.



Attached Files
.rar   vampeGV.rar (Size: 16.55 KB / Downloads: 208)
Print this item

  sub and function, asm and ix
Posted by: nitrofurano - 2013-06-10, 03:22 PM - Forum: Help & Support - No Replies

when advancing a bit more on the MSX part of Boriel's ZX-Basic Compiler, and after that help from accessing paged memory on ZX-Spectrum 128k, i got this situation:

the library i used on the MSX "version"

Code:
sub msxvpoke(tad as uinteger,tva as uinteger) asm ld h,(ix+5) ld l,(ix+4) ld a,(ix+6) call $004D end asm end sub

there i'm seeing that sub is using 'ix' from the arguments, but i don't know how are they arranged (as ubyte, uinteger, etc.), and why or what for we use fastcall, get ix instead of bc,de,hl,af - and from a function, in which register or index the value is returned (af, just like from fastcall?)

i can't find documentation explaining it better on the wiki: <!-- m --><a class="postlink" href="http://www.boriel.com/wiki/en/index.php/ZX_BASIC:FUNCTION">http://www.boriel.com/wiki/en/index.php ... C:FUNCTION</a><!-- m --> and <!-- m --><a class="postlink" href="http://www.boriel.com/wiki/en/index.php/ZX_BASIC:SUB">http://www.boriel.com/wiki/en/index.php/ZX_BASIC:SUB</a><!-- m -->

thanks and cheers! Smile

Print this item

  zxbasic for dos?
Posted by: slenkar - 2013-05-29, 07:00 PM - Forum: Wishlist - Replies (10)

Would it be easier to create a script to translate zxbasic to C, or to write a compiler target for x86 asm?

Print this item

  128k memory paging, how can we do that? :S
Posted by: nitrofurano - 2013-05-29, 01:55 PM - Forum: Help & Support - Replies (11)

hi everyone!
based on the information i found at <!-- m --><a class="postlink" href="http://www.worldofspectrum.org/faq/reference/128kreference.htm">http://www.worldofspectrum.org/faq/refe ... erence.htm</a><!-- m -->

i tried this one:

Code:
cls page1=0 a=(((peek($5B5C))band $F8)bor (page1 band 7)) poke $5B5C,a:out $7FFD,a poke $C123,80 page1=1 a=(((peek($5B5C))band $F8)bor (page1 band 7)) poke $5B5C,a:out $7FFD,a poke $C123,81 page1=0 a=(((peek($5B5C))band $F8)bor (page1 band 7)) poke $5B5C,a:out $7FFD,a print peek($C123) page1=1 a=(((peek($5B5C))band $F8)bor (page1 band 7)) poke $5B5C,a:out $7FFD,a print peek($C123) pause 0

and i can't figure out what is going wrong there...- any clue? :S

Print this item

  Scrolling Tiles
Posted by: slenkar - 2013-05-21, 05:56 PM - Forum: How-To & Tutorials - Replies (10)

I managed to get it done using ZXBASIC

Code:
DIM mapdata(31) AS UBYTE => {1,0,2,0,2,1,1,2,1,0,2,0,2,1,1,2,1,0,2,0,2,1,1,2,1,0,2,0,2,1,1,2} DIM brick(7) AS UBYTE =>{249,249,0,159,159,0,249,249} DIM crystal(7) AS UBYTE =>{16,40,84,40,84,40,16,0} Dim CurrentGraphic as ubyte=1 Dim NextGraphic as Ubyte Dim PreviousGraphic as ubyte Dim address as UInteger Dim LineStartAddress as UInteger addr=16384 LineStartAddress=addr Dim PreviousAddress as UInteger Dim LandscapeEightIter as Ubyte Dim LandscapeIter as ubyte Dim LineNumber as UByte for x=0 to 31 Print AT 0,x;"[" next for iterations=0 to 258 'scroll left 258 times address=16384 for y=0 to 7 LineStartAddress=address for x=0 to 31 CurrentGraphic = PEEK(address) 'pause 5 if x>0 'the leftmost byte has no graphics to its left if CurrentGraphic Band 128=128 'if this graphic has a dot on the left PreviousGraphic=PreviousGraphic Bor 1 'Add a dot to the right of the previous graphic byte POKE PreviousAddress,PreviousGraphic end if end if PreviousAddress=address 'save the address of the byte on the left CurrentGraphic=CurrentGraphic SHL 1 'shift dors to left PreviousGraphic=CurrentGraphic 'save graphic if x<31 POKE address,CurrentGraphic end if if x=31 if mapdata(LandscapeIter)=1 NextGraphic=brick(LineNumber) end if if mapdata(LandscapeIter)=2 NextGraphic=crystal(LineNumber) end if if mapdata(LandscapeIter)=0 NextGraphic=0 end if if LandscapeEightIter=0 if NextGraphic Band 1=1 CurrentGraphic=CurrentGraphic BOR 1 end if end if if LandscapeEightIter=1 if NextGraphic Band 2=2 CurrentGraphic=CurrentGraphic BOR 1 end if end if if LandscapeEightIter=2 if NextGraphic Band 4=4 CurrentGraphic=CurrentGraphic BOR 1 end if end if if LandscapeEightIter=3 if NextGraphic Band 8=8 CurrentGraphic=CurrentGraphic BOR 1 end if end if if LandscapeEightIter=4 if NextGraphic Band 16=16 CurrentGraphic=CurrentGraphic BOR 1 end if end if if LandscapeEightIter=5 if NextGraphic Band 32=32 CurrentGraphic=CurrentGraphic BOR 1 end if end if if LandscapeEightIter=6 if NextGraphic Band 64=64 CurrentGraphic=CurrentGraphic BOR 1 end if end if if LandscapeEightIter=7 if NextGraphic Band 128=128 CurrentGraphic=CurrentGraphic BOR 1 end if end if POKE address,CurrentGraphic end if address=address+1 'move one square right next address=LineStartAddress address=address+256 'move one line down LineNumber=LineNumber+1 next LineNumber=0 LandscapeEightIter=LandscapeEightIter+1 if LandscapeEightIter=8 LandscapeEightIter=0 LandscapeIter=LandscapeIter+1 end if next Print "done" Print STR(178 Band 128) STOP

but I could never get it done using assembly:
Code:
function FASTCALL drawthis() as ubyte asm ;LD HL,2000 ;LD (delayiter),HL LD HL,16384 ;drawvert: ;LD A,31 ;LD L,A ;LD (screenwidthiter),A ;drawblokes: ;LD A,(graphic) ;DEC A ;LD (graphic),A ;LD (HL),A ;LD A,(screenwidthiter) ;LD L,A ;DEC A ;LD (screenwidthiter),A ;LD B,A ;INC B ;INC B ;INC B ;djnz drawblokes ;LD A,(screenheightiter) ;LD L,A ;INC H ;DEC A ;LD (screenheightiter),A ;LD B,A ;INC B ;djnz drawvert LD A,31 LD (screenwidthiter),A LD A,7 LD (screenheightiter),A LD HL,60000 LD (delayiter),HL loop: LD BC,20000 LD A,7 LD (screenheightiter),A LD HL,16384 LD (screenaddress),HL screenvert: ;LD BC,6000 ;wait: ;DEC BC ;LD A,B ;Or C ;jp nz,wait LD (screenaddress),HL ;load landscape number into a LD HL,data LD BC,(landscapeiter) ADD HL,BC LD A,(HL) LD (__LABEL__printablevar),A ;load graphic into B CP 0 jp z,thisisempty CP 1 jp z,thisisbrick CP 2 jp z,thisiscrystal jp thisisbrick thisisempty: LD B,0 jp donegraphic thisisbrick: LD HL,brick LD DE,(screenheightiter) ADD HL,DE LD B,(HL) jp donegraphic thisiscrystal: LD HL,crystal LD DE,(screenheightiter) ADD HL,DE LD B,(HL) jp donegraphic donegraphic: LD A,0 LD (rightbit),A LD A,(landscapeiter) CP 0 jp z,bit0 CP 1 jp z,bit1 CP 2 jp z,bit2 CP 3 jp z,bit3 CP 4 jp z,bit4 CP 5 jp z,bit5 CP 6 jp z,bit6 CP 7 jp z,bit7 bit0: BIT 0,B jp nz,setbitfirst jp z,dontsetbitfirst bit1: BIT 1,B jp nz,setbitfirst jp z,dontsetbitfirst bit2: BIT 2,B jp nz,setbitfirst jp z,dontsetbitfirst bit3: BIT 3,B jp nz,setbitfirst jp z,dontsetbitfirst bit4: BIT 4,B jp nz,setbitfirst jp z,dontsetbitfirst bit5: BIT 5,B jp nz,setbitfirst jp z,dontsetbitfirst bit6: BIT 6,B jp nz,setbitfirst jp z,dontsetbitfirst bit7: BIT 7,B jp z,dontsetbitfirst jp nz,setbitfirst setbitfirst: LD A,1 LD (rightbit),A dontsetbitfirst: LD HL,(screenaddress) LD A,31 LD L,A LD (screenwidthiter),A LD (screenaddress),HL LD A,0 LD (leftbit),A BIT 7,(HL) jp nz,dontsetbit LD A,1 LD (leftbit),A dontsetbit: LD A,(HL) SLA A LD (HL),A LD A,(rightbit) CP 0 jp z, dontsetrightbit LD A,(HL) OR 1 LD (HL),A dontsetrightbit: LD A,(leftbit) LD (rightbit),A LD A,30 LD (screenwidthiter),A LD L,A LD (screenaddress),HL screenhori: LD A,0 LD (leftbit),A BIT 7,(HL) jp nz,dontsetbit3 LD A,1 LD (leftbit),A dontsetbit3: LD B,(HL) SLA B LD A,(rightbit) CP 0 jp nz,dontsetblockbit2 LD A,B OR 1 LD B,A dontsetblockbit2: LD (HL),B LD A,(screenwidthiter) LD L,A DEC A LD (screenwidthiter),A LD A,(leftbit) LD (rightbit),A LD A,(screenwidthiter) CP 0 jp nz,screenhori LD A,(screenheightiter) INC H DEC A LD (screenaddress),HL LD (screenheightiter),A CP 0 jp nz,screenvert LD A,(__LABEL__landscapeeightiter) INC A LD (__LABEL__landscapeeightiter),A LD A,(__LABEL__landscapeeightiter) CP 8 jp nz,dontresetblock LD A,0 LD (__LABEL__landscapeeightiter),A LD A,(landscapeiter) INC A LD (landscapeiter),A dontresetblock: ;jp loop end asm end function Dim x as Integer for x=0 to 31 Print AT 0,x;STR(x) next for x=0 to 30 drawthis() Print AT x,0;STR(PEEK(@printablevar))+"-" next Print "done" STOP: printablevar: ASM defb 255 END ASM landscapeeightiter: ASM defb 0 blockiter: defw 8 delayiter: defw 60000 screenwidthiter: defb 31 screenheightiter: defb 8 scrolliter: defw 10000 graphic: defb 255 screenaddress: defw 0 landscapeiter: defb 0 data: defb 1,1,0,1,1,1,0,1,1,2,2,2,2,0,1,0,1,0,2,2,2,2 brick: defb 249,249,0,159,159,0,249,249 crystal: defb 16,40,84,40,84,40,16,0 rightbit: defb 0 leftbit: defb 0 DISPNUM: call 11563 ; We'll push the BC register onto the calculator stack call 11747 ; and then output that number to the screen by calling this routine ret end asm

Print this item

  trying to print from assembly
Posted by: slenkar - 2013-05-20, 07:38 PM - Forum: How-To & Tutorials - Replies (3)

this doesnt compile because the label is made outside of ASM tags

Code:
function FASTCALL drawthis() as ubyte asm LD A,(landscapeeightiter) INC A LD (landscapeeightiter),A end asm end function for x=0 to 20 drawthis() Print AT x,0;STR(PEEK(@landscapeeightiter))+"-" next STOP landscapeeightiter: ASM defb 100 END ASM

im trying to print the value of the byte at the address, but also modify it in assembly

Print this item

  Assembly question
Posted by: slenkar - 2013-05-12, 06:00 PM - Forum: Help & Support - Replies (27)

In assembly how do you know where to put data?

like say I wanted some arrays how would I know which address in RAM to place the variables?

Is it possible to access arrays created in zxbasic from assembly? how would I do that

Print this item

  Version 1.3.0 Released!
Posted by: boriel - 2013-04-29, 01:46 PM - Forum: ZX Basic Compiler - Replies (6)

ZX Basic 1.3.0 is out! Download it here

NOTE: This is revision 1.3.0s1022
If you already have it, you don't need to download it again.

  • ! Fixed a bug in USR <string>
  • ! Fixed a bug in SAVE / LOAD
  • ! Fixed a serious bug in the preprocessor
  • ! Fixed a bug with DIM and constants
  • ! Fixed a bug with SHL/SHR for 0 shifts
  • + Added -D option. ZXBASIC now allows commandline macro definition
  • ! Fixed a bug with CODE and INKEY$
  • ! Fixed a bug with string slicing assignation (e.g. a$(3) = "x")
  • ! Fixed a bug with arrays of integer assignation (e.g. a(3) = 5, being a of Integer type)
  • ! Fixed a bug with peephole optimizer (-O3)
  • * Some changes and code refactorization towards 2.x branch
...and much much more.

Print this item