em00k / nextbuild Goto Github PK
View Code? Open in Web Editor NEWNextBuild : A suite of tools based on Boriel's ZX Basic Compiler targetting the ZX Spectrum Next
NextBuild : A suite of tools based on Boriel's ZX Basic Compiler targetting the ZX Spectrum Next
In SaveSD method, after "fileopen" label loads b register with 158 ($9e), but this value isn't a valid, or at least documented value.
In ZEsarUX emulator don't work if the file not exist.
fileopen:
ld b,158 ; mode write
;db 33 ; open
;ld b,$0c
push ix
pop hl
; ld a,42
rst $08
db $9a ; F_OPEN
ld (filehandle),a
ret
Changing "ld b,158" by "ld b,$0e" works in ZEsarUX and CSpect emulators and in ZX-DOS+/GomaDOS+ devices.
fileopen:
ld b,$0e ; mode write
;db 33 ; open
;ld b,$0c
push ix
pop hl
; ld a,42
rst $08
db $9a ; F_OPEN
ld (filehandle),a
ret
Don't know if there is a hidden feature or really is a bug.
If I use the LoadSDBank proc and comment it out, it's still processed by nextbuild.py and can raise an error
' LoadSDBank("foo", addr, size, ofs, bank)
e.g. if the filename doesn't exist then
##ERROR - Failed to find file :./data/foo Please make sure this file exist!
Hello,
I will use LoadSDBank with variables for long data files and got an error 9009.
Here my code (maybe not perfect, but I can't test it):
LoadBigSDBank("xxx.nxt", 95488, 40)
sub LoadBigSDBank(byval name as string, byval length as ulong, byval bank as ubyte)
dim chunk as ulong
dim i, part as ubyte
part = cast(ubyte,length/8192)
chunk = cast(ubyte,length mod 16384)
for i = 0 to part - 1 step 2
LoadSDBank(name,0,16384,cast(ulong,i)*16384,bank+i)
next i
if chunk > 0 then LoadSDBank(name,0,chunk,part*16384,bank+part) : end if
end sub
I have looked at the python script and it requires a direct variables in the procedure call.
Can this be changed or I have to self use switch banks and LoadSD?
Regards
Hans
nextbuild.py line 165 has an issue with the path when building projects stored outside the NextBuild directories.
My attempts to change the path didn't work even when they produced an absolute path using BASE_DIR so I'm not able to offer a simple pull request to fix the issue :( My python is obviously very rusty :)
My quick fix was to remove the path entirely and drop sysvars.bin in my project directory.
Environment used
Windows 11.
NextBuild directory is not in the path.
NextBuild Directory is in the parent of my project directory and my task.json uses relative paths as shown below
"windows": { "command": "./../NextBuild/zxbasic/python/python.exe", "args": [ "./../NextBuild/Scripts/nextbuild.py", "${file}" ] },
MyFirstTest.bas doesn't compile:
There's two files, with the same name, in directory pathes where the only difference is case changes - this causes errors on a clean git checkout to a case insensitive filesystem.
Steps to reproduce:
cd /Volumes/APFS-insensitive
git clone https://github.com/em00k/NextBuild.git
Cloning into 'NextBuild'...
remote: Enumerating objects: 32, done.
remote: Counting objects: 100% (32/32), done.
remote: Compressing objects: 100% (24/24), done.
remote: Total 3097 (delta 13), reused 19 (delta 7), pack-reused 3065
Receiving objects: 100% (3097/3097), 56.83 MiB | 19.94 MiB/s, done.
Resolving deltas: 100% (1259/1259), done.
Updating files: 100% (1373/1373), done.
warning: the following paths have collided (e.g. case-sensitive paths
on a case-insensitive filesystem) and only one from the same
colliding group is in the working tree:
'Sources/XMASmodplay/XMAS2020intro2.bas'
'Sources/xmasmodplay/XMAS2020intro2.bas'
Hello,
In NextLib 7.5 the stack is changed to point to the "nbtempstackstart" label, leaving a stack area of 256 bytes:
asm
filename:
DEFS 255,0
endfilename:
end asm
asm
nbtempstackstart:
**ld sp,nbtempstackstart**
end asm
This can cause serious problems, for example in the use of local variables of type string that are a bit big.
It would be possible not to alter the SP?
I think it would be best to respect the one the main program has, and the library should restore the original stack when finished.
Right now, SP is changed directly by doing "#include <NextLib.bas>", and not works if SP is changed to another position.
Thanks a lot for your work!
I can compile files. I just get the following error.
22:09:09 -> : Compilation failed
22:09:12 ->
22:09:12 -> Compilation time: 3547ms
A way to iterate structures/objects in memory, similar to what sjasm does with it's structs would be fantastic, especially if combined with a foreach type command and list/array management?
e.g. Dim aliens as new List(alien)
for i = 1 to 10 :aliens.Add(alien): next i
foreach alien a in aliens
doAction(a)
NextEach
aliens.removeAt(4)
I know that's huge but would be a massive plus point making games and more serious utilities too.
The line 100 of NextLib.bas is:
border 7 : paper 7: ink 0 : cls
not included on any sub.
Can be removed in next versions?
It creates undesired effects on my program.
I love NextBuild. It's very fast programing start for ZX Next. Zero config is lovelly!
But with BorIDE abandoned, the next step is jump to VSCode or other editor.
An Boriel is working on v2 ZX Basic.
I think that is a good choice to detach NextLib from NextBuild.
Hello, based on the megaman-sample, I'm trying to play a .pt3 ong with this code:
`' MusicTest
#include <NextLib.bas>
print at 0,0;"Music Test";
MusicTest()
dim n as uinteger
Bucle:
for n=0 to 10000
print at 1,0;n;" "
next n
goto Bucle
sub MusicTest()
ASM
di
END ASM
MMU8(7,46)
LoadSD("ptplay000",$e000,1617,0) ' File from MegaMan demo
LoadSD("Music.1.pt3",$E86e,3000,0) ' My pt3 file
asm
;ld bc,65533 : ld a,254 : out (c),a
call $e000
;ld bc,65533 : ld a,255 : out (c),a
end asm
end sub
`
I attached all the sample files.
Thanks for your time!
The xmasmodplay folther don't has any .bas file.
I love NextBuild/NextLib!
The Visual Studio Code example provided does not create the temp file needed. Compilation only works if there is an already existing temp file in the directory.
I've included a Task file here which creates the necessary temp file, and then calls compile.bat (The task to run is called Boriel Compile and Run)
Hello, NextBuild works just fine under macOS, where CSpect can be used thanks to mono. UDGeedNext instead only available as a Windows executable. I have read on a forum thread that NextUDGeed would be a PureBasic program. As such, it should be easily compiled under macOS and Linux.
Has this been carried out?
I am confident that UDGeedNext would be very useful to completely bring NextBuild to different platforms.
Thanks and congratulations for all this huge and super-useful work!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.