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 220 online users.
» 0 Member(s) | 218 Guest(s)
Bing, Google

Latest Threads
New video Couse / Nuevo c...
Forum: News
Last Post: Duefectu
2026-04-29, 11:02 PM
» Replies: 0
» Views: 209
location of heap manageme...
Forum: Help & Support
Last Post: boriel
2026-03-07, 12:13 AM
» Replies: 1
» Views: 483
non-paged supervisor code...
Forum: Help & Support
Last Post: sdo303
2026-02-20, 06:38 PM
» Replies: 8
» Views: 1,290
How to open fuse as an ex...
Forum: How-To & Tutorials
Last Post: Duefectu
2026-02-09, 01:52 PM
» Replies: 3
» Views: 1,388
Old zxbasic game errors
Forum: Help & Support
Last Post: boriel
2025-11-09, 11:52 AM
» Replies: 7
» Views: 2,073
Error: Undefined GLOBAL l...
Forum: Help & Support
Last Post: ardentcrest
2025-11-04, 05:46 PM
» Replies: 3
» Views: 1,078
A Fast(er) Plot Routine f...
Forum: How-To & Tutorials
Last Post: tubz74
2025-10-30, 03:16 PM
» Replies: 2
» Views: 1,177
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,215
3DOS Commands?
Forum: Help & Support
Last Post: boriel
2025-10-06, 02:54 PM
» Replies: 3
» Views: 1,377

 
  strings initialized?
Posted by: programandala.net - 2010-06-18, 01:34 PM - Forum: Help & Support - Replies (6)

Yesterday I experienced a kind of coding poltergeist with the following simple function:

Code:
function strings(times as ubyte, text as string ) as string

    dim i as ubyte
    dim result as string
    for i = 1 to times
        let result = result + text
    next i
    return result

end function

The program did strange things when printing the string returned by strings(): it printed other strings of the program that had nothing to do, and then froze. The reason was I had supposed the DIMed strings were initialized to an empty string but they are not; it took time to find out. When I added a simple line, everything worked as expected:

Code:
    dim result as string
    let result = ""

I've searched in the forum, but found no reference about this. The DIM wiki page doesn't mention string initialitazion. I just want to confirm this issue before updating the wiki. Are strings not initialized to empty strings because of a technical issue or simply because it's not implemented yet? Is this definitive or will it change in the future?

Print this item

  INCBIN
Posted by: britlion - 2010-06-18, 04:31 AM - Forum: Help & Support - Replies (1)

Boriel, what's the syntax for including a binary chunk with INCBIN?

Print this item

  Assembler "EQU"
Posted by: britlion - 2010-06-18, 04:24 AM - Forum: Help & Support - Replies (3)

I have some code that has things like

BORDER_CLR: EQU 4

What's the equivalent in your assembly? A #define?

Print this item

  typo in library comment
Posted by: programandala.net - 2010-06-17, 09:48 PM - Forum: Bug Reports - Replies (1)

This is not a bug but an innocuous typo. The following lines in library/csrlin.bas:

Code:
    dim maxy as ubyte at 23683: REM 'Max COL position + 1 (default 33)
    dim ny as ubyte at 23689  : REM current maxx - column screen position

Should read:

Quote: dim maxy as ubyte at 23683: REM 'Max LIN position + 1 (default 24)
dim ny as ubyte at 23689 : REM current maxy - line screen position

I guess they were copied and pasted from library/pos.bas Wink

Print this item

  Vim syntax file for ZX BASIC
Posted by: programandala.net - 2010-06-17, 08:09 PM - Forum: How-To & Tutorials - Replies (10)

I use the Vim editor a lot; well, it's the only one I use Smile. I wrote a Vim syntax file for ZX BASIC. Maybe it can be useful for someone else.

Print this item

  "Unexpected end of file" because of missing brackets
Posted by: programandala.net - 2010-06-17, 11:55 AM - Forum: Bug Reports - Replies (1)

I got the error "Unexpected end of file" and it took time to find out the stupid reason: I had forgotten to write the brackets in a sub call! That sub needs no parameters, so I naively hadn't written the bracktes in the call Smile

Well, maybe the message could be more explicit? It's not an important issue at all, just a suggestion. Anyway I won't forget the empty brackets again Smile

Code:
pressAnyKey()

Print this item

  Any way to to include command line options into the code?
Posted by: programandala.net - 2010-06-16, 08:25 PM - Forum: Help & Support - Replies (3)

Is there any compiler directive to include command line options into the source? I've looked in the docs and in the forum, and found some mentions about "#pragma", but nothing clear.

I always include the following comment at the top of my source

Code:
' Compile with the following command:
' zxb.py myprogram.bas --tap --autorun --BASIC --strict-bool
in order to remember the options needed (sometimes I tinker with them, and they are not the same for every program). It would be easier to include the options into the source:

Code:
#option tap
#option strict-bool
or
Code:
#options tap strict-bool

Then all programs could be compiled just with zxb.py program.bas. Of course, the actual command line options would have higher priority than those in the source.

Print this item

  First draft of FOR...NEXT
Posted by: programandala.net - 2010-06-16, 04:46 PM - Forum: Documentation - No Replies

I created the first draft of the FOR...NEXT page.

Print this item

  Illegal Character "."
Posted by: britlion - 2010-06-16, 01:50 AM - Forum: Help & Support - Replies (5)

I was playing with putChars to tighten it and add attribs...

This comes back with "illegal character "." in line 52. There is indeed one in that line. It's in a comment. If you remove it (I already removed all the others) it freaks into "Too many errors. Giving up".

Line 52:
; gets screen address in HL, and bytes address in DE. [<<<< This . is apparently an error] Copies the 8 bytes to the screen

I have no idea why!



Code:
SUB Baspaint (x as uByte,y as uByte, width as uByte, height as uByte, attribute as ubyte)
    dim i,j as ubyte
    FOR i=x to x+width-1
        for j=y to y+height-1
        poke (22528+(CAST(uinteger,32)*j)+i),attribute
        next j
    next i
    END SUB
    
    SUB paint (x as uByte,y as uByte, width as uByte, height as uByte, attribute as ubyte)
    print x,y,width,height,attribute
    
    END SUB
    
    
    
    
    
    
    SUB putChars(x as uByte,y as uByte, width as uByte, height as uByte, dataAddress as uInteger)
  
    BLPutChar:
             LD      a,(IX+5)
             ;AND     31
             ld      l,a
             ld      a,(IX+7) ; Y value
             ld      d,a
             AND     24
             add     a,64
             ld      h,a
             ld      a,d
             AND     7
             rrca
             rrca
             rrca
             OR      l
             ld      l,a

    PUSH HL ; save our address

    LD E,(IX+12) ; Marker - This will be poked for the data address by the subroutine
    LD D,(IX+13)
    LD B,(IX+9) ; Marker - this will be poked for the width
    PUSH BC ; save our column count

    BLPutCharColumnLoop:

    LD B,(IX+11) ; Marker - this will be poked for the height by the subroutine

    BLPutCharInColumnLoop:
  
    ; gets screen address in HL, and bytes address in DE. Copies the 8 bytes to the screen
    ld a,(DE) ; First Row
    LD (HL),a
    
    INC DE
    INC H
    ld a,(DE)
    LD (HL),a ; second Row
    
    INC DE
    INC H
    ld a,(DE)
    LD (HL),a ; Third Row
    
    INC DE
    INC H
    ld a,(DE)
    LD (HL),a ; Fourth Row
    
    INC DE
    INC H
    ld a,(DE)
    LD (HL),a ; Fifth Row
    
    INC DE
    INC H
    ld a,(DE)
    LD (HL),a ; Sixth Row
    
    INC DE
    INC H
    ld a,(DE)
    LD (HL),a ; Seventh Row
    
    INC DE
    INC H
    ld a,(DE)
    LD (HL),a ; Eigth Row
    
    INC DE ; Move to next data item.
    
    DEC B
    JR Z,BLPutCharNextColumn
    ;The following code calculates the address of the next line down below current HL address.
    PUSH DE ; save DE
             ld   a,l  
             and  224  
             cp   224  
             jp   z,BLPutCharNextThird

    BLPutCharSameThird:
             ld   de,-1760
             ;and  a        
             add  hl,de      
             POP DE ; get our data point back.
             jp BLPutCharInColumnLoop

    BLPutCharNextThird:
             ld   de,32      
             ;and  a
             add  hl,de  
             POP DE ; get our data point back.
    JP BLPutCharInColumnLoop

    BLPutCharNextColumn:
    POP BC
    POP HL
    DEC B
    JP Z BLPutCharsEnd

    INC HL
    PUSH HL
    PUSH BC
    JP BLPutCharColumnLoop

BLPutCharsEnd:
    end asm

    END SUB

    goto start

    datapoint:
asm
defb 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32
defb 33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64
defb 65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96
defb 97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128
end asm

    start:
    cls
    putChars(10,10,3,3,@datapoint)
    paint(10,10,3,3,79)

Print this item

  Any missing reserved identifier in the docs?
Posted by: programandala.net - 2010-06-09, 03:57 PM - Forum: Documentation - Replies (1)

I think it would be fine to confirm the list of reserved identifiers is complete (even if the linked pages don't exist yet). Then it will be easy to keep it updated with every ZX Basic version.

boriel, may you check it?

Print this item