Bugs

One suite to code them all. An complete IDE and assembler for all your z80 projects!

Moderators: benryves, kv83

User avatar
silver calc
New Member
Posts: 73
Joined: Tue 28 Mar, 2006 10:50 pm
Location: Wouldn't you like to know?

Bugs

Post by silver calc »

Well, I hope this topic will help to quickly fix bugs that people might find while using LateNite, Brass, or EarlyMorning.

Here's one I found with LateNite:

When you try to rename a project (or change the "Binary Name") to include characters not allowed for file names (ex. : " ; > < ), LateNite will accept this as an acceptable input. However, if you compile, Brass will crash because of this error. Here's the error it displays:
Unhandled Exception: System.NotSupportedException: The given path's format is not supported.
at System.Security.Util.StringExpressionSet.CanonicalizePath(String path, Boolean needFullPath)
at System.Security.Util.StringExpressionSet.CreateListFromExpressions(String[] str, Boolean needFullPath)
at System.Security.Permissions.FileIOPermission.AddPathList(FileIOPermissionAccess access, AccessControlActions control, String[] pathListOrig, Boolean checkForDuplicates, Boolean needFullPath, Boolean copyPathList)
at System.Security.Permissions.FileIOPermission..ctor(FileIOPermissionAccess access, String[] pathList, Boolean checkForDuplicates, Boolean needFullPath)
at System.IO.Path.GetFullPath(String path)
at Brass.Program.Main(String[] args)
Not sure if this is fixable, but LateNite does detect if you try to use 'incompatable charaters' for the project name.
Please "encourage" me to work more on Image any way you deem necessary
User avatar
benryves
Maxcoderz Staff
Posts: 3080
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

Thanks :)

Not sure exactly where the bug is, but part of it is Latenite not escaping the invalid characters when running things on the command-line. This is worst with the > characters for redirection if they're not contained within ". I'll see what I can do!
King Harold
Calc King
Posts: 1513
Joined: Sat 05 Aug, 2006 7:22 am

Post by King Harold »

I found a .... bug..... in the help that goes with latenite.
LateNite help wrote:B is decreased, and a jr label happens when the result was zero.
That sounds like its talking about DJNZ, it is, but wait... DJNZ is supposed to jump just when B is not zero
Last edited by King Harold on Tue 31 Oct, 2006 1:08 pm, edited 1 time in total.
User avatar
benryves
Maxcoderz Staff
Posts: 3080
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

I suppose CoBB should be informed - the notes there were largely copied from here.

Well spotted.
CoBB
MCF Legend
Posts: 1601
Joined: Mon 20 Dec, 2004 8:45 am
Location: Budapest, Absurdistan
Contact:

Post by CoBB »

Yep, that’s right. On the other hand, it is correct on this page. Stupid negations, they are so confusing. :P
necro
Calc King
Posts: 1619
Joined: Sat 26 Mar, 2005 2:45 am
Location: your shadow

Post by necro »

so, is it fixxed yet?
CoBB
MCF Legend
Posts: 1601
Joined: Mon 20 Dec, 2004 8:45 am
Location: Budapest, Absurdistan
Contact:

Post by CoBB »

Of course it is.
User avatar
silver calc
New Member
Posts: 73
Joined: Tue 28 Mar, 2006 10:50 pm
Location: Wouldn't you like to know?

Post by silver calc »

Not sure why this happens, but whenever I try to click on another help item in the 'see also' section, it displays this instead:
For the item 'dec':
lnh_dec

For the item 'org'
lnh_org

...
All of the items are there, and if you select them from the index they work perfectly. Why does this happen when you try to access them through the 'see also', though?
Please "encourage" me to work more on Image any way you deem necessary
User avatar
benryves
Maxcoderz Staff
Posts: 3080
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

Hyperlinks with lnh_ in front of them are looked up in the index again. Yep, it's a bug. Latenite 1 and Brass 1 are 'dead' branches, so this will probably not be fixed. Sorry, I haven't the time. :\
King Harold
Calc King
Posts: 1513
Joined: Sat 05 Aug, 2006 7:22 am

Post by King Harold »

I just noticed that f is not being coloured as register, not that it matters, but still..
bfr
New Member
Posts: 22
Joined: Sat 02 Sep, 2006 8:39 pm

Post by bfr »

Shouldn't:

ld (de),(hl)

work?

The description of "lddr" even says:

The instruction copies a byte from (HL) to (DE) (i.e. it does an ld (de),(hl)), then decreases both HL and DE to return to the previous byte. Besides, it decreases BC, and sets the P/V flag in the case of overflowing.

The following code generates the error "Argument '(de),(hl)' (for 'ld') not understood.":

Code: Select all

; ===============================================================
; TEST
; ===============================================================

.module Program
.export

	Main
		bcall(_ClrLCDFULL)
		ld hl,test
		ld de,plotsscreen
		ld (de),(hl)
		bcall(_GrBufCpy)
		ret
test:
	.db %11110000

User avatar
Timendus
Calc King
Posts: 1729
Joined: Sun 23 Jan, 2005 12:37 am
Location: Netherlands
Contact:

Post by Timendus »

http://clap.timendus.com/ - The Calculator Link Alternative Protocol
http://api.timendus.com/ - Make your life easier, leave the coding to the API
http://vera.timendus.com/ - The calc lover's OS
bfr
New Member
Posts: 22
Joined: Sat 02 Sep, 2006 8:39 pm

Post by bfr »

Hmm...well, I guess I was wrong. Maybe the description of lddr should say thay if ld (de),(hl) were an instruction, that's what it would do, or something like that.
User avatar
silver calc
New Member
Posts: 73
Joined: Tue 28 Mar, 2006 10:50 pm
Location: Wouldn't you like to know?

Post by silver calc »

I've found another bug with the LateNite help files:
Z80 Instructions for bit wrote:The opposite of the nth bit of the second operand is written into the Z flag.
This is obviously not true if you try this:

Code: Select all

ld a,$FF
bit 7,a
jr nz,quit                    ;test if not zero and quit
bcall(_GetKey)           ;pause if zero

quit:
 ret
You can also do this with any valid input. The only problem I can find is this:

Code: Select all

set OnInterrupt,(IY+OnFlags)
bit OnInterrupt,(IY+OnFlags)
jr nz,quit                    ;test if not zero and quit
bcall(_GetKey)           ;pause if zero

quit:
 res OnInterrupt,(IY+OnFlags)     ;So you don't get ERR:BREAK when you quit
 ret
For some reason this does the opposite of what you would expect it to. I also tried to do this with adding a 'di' at the beginning to disable interrupts, but this still happens.
Please "encourage" me to work more on Image any way you deem necessary
User avatar
benryves
Maxcoderz Staff
Posts: 3080
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

It is quite true...

Code: Select all

    ld a,$FF 
    bit 7,a
According to the help files, this means that the opposite of the 7th bit of $FF is written into the Z flag. In this case, the 7th bit is 1, so the Z flag becomes 0.

Maybe it's confusing due to the terminology of the Z flag? It is set (becomes a 1) when representing a 0 result and reset (becomes a 0) when representing a non-zero result.
Post Reply