Giter VIP home page Giter VIP logo

nextbuild's People

Contributors

boriel avatar em00k avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nextbuild's Issues

Possible error in NextLib SaveSD method when file not exist

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.

nextbuild.py processes LoadSDBank when commented (NextBuild v7)

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!

Exception in makenexcfg.py at LoadSDBank with Variables

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

NEX File Output path issue

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 on Ubuntu 20.10

MyFirstTest.bas doesn't compile:

  1. The "'!org=32767 Set the start address" confuses nextbuild.py ('nextbuild.py: error: Invalid --org option '32767 Set the start address '', if I change this to just "'!org=32767" it does compile OK
  2. ./data/font3.spr is missing causing '##ERROR - Failed to find file :./data/font3.spr'. If I copy it from another directory then it works of course

Case-Insensitive filename collision on new checkout

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'

Stack corruption

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!

Compilation failed - windows

I can compile files. I just get the following error.

22:09:09 -> : Compilation failed
22:09:12 ->
22:09:12 -> Compilation time: 3547ms

Well you asked for suggestions... ;)

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.

Remove NextLib.bas line 100

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.

Make a new repository for NextLib

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.

Play .pt3 files

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!

MusicTest.zip

Visual Studio Task Example Does not create the Temp file needed

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)

tasks.txt

Question about UDGeedNext

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!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.