Comments (5)
Finally, I made tests with newest ca65 available (2.19) - and problem disappeared.
from of816.
As side note: I used latest version of ./inc/macros.inc from Your repo.
from of816.
How bizarre.
from of816.
(also, sorry it took so long to answer, I tend to develop in random spurts depending on what is happening elsewhere in my life)
What version of ca65 are you using? Right now my development machine is running "ca65 V2.18 - Git e0cb33d9"... Did you build ca65 yourself? If not, where did you get it? If so, what C compiler and platform?
You'll have noted that I have a test suite (in /test) that I run with an emulator of my own that I created specifically for developing OF816 (GoSXB). Current coverage is about 82% of the public (always have headers) words. I had never run it with no_headerless = 1 until now. The suite passes either way, but I have not tried making changes by adding NOPs to platform-lib.s. I will play around with that.
I also have a TeamCity instance that compiles every commit automatically against a relatively recent version of ca65 (billing itself as "ca65 V2.18 - N/A"). I just compared the output binaries to those made by my local ca65, and they are the same.
The output of the suite run against GoSXB just now is:
Executing suite: 7.3.1 Stack functions
Lines complete.
testing 7.3.1.1 Stack duplication
testing 7.3.1.2 Stack removal
testing 7.3.1.3 Stack rearrangement
testing 7.3.1.4 Return stack
testing 7.3.1.5 Stack depth
Errors = 0
Suite complete.
Executing suite: 7.3.2.1 Arithmetic - Single-precision integer arithmetic
Lines complete.
testing 7.3.2.1 Single-precision integer arithmetic
Errors = 0
Suite complete.
Executing suite: 7.3.2.2 Arithmetic - Bitwise logical operators
Lines complete.
testing 7.3.2.2 Bitwise logical operators
Errors = 0
Suite complete.
Executing suite: 7.3.2.3 Arithmetic - Double number arithmetic
Lines complete.
testing 7.3.2.3 Double number arithmetic
TESTING D+ with small integers
TESTING D+ with mid range integers
TESTING D+ with large double integers
TESTING D- with small integers
TESTING D- with mid-range integers
TESTING D- with large integers
Errors = 0
Suite complete.
Executing suite: 7.3.2.4 Arithmetic - Data type conversion
Lines complete.
testing 7.3.2.4 Data type conversion
Errors = 0
Suite complete.
Executing suite: 7.3.2.5 Arithmetic - Address arithmetic
Lines complete.
testing 7.3.2.5 Address arithmetic
Errors = 0
Suite complete.
Executing suite: 7.3.3 Memory control
Lines complete.
testing 7.3.3.1 Memory access
testing 7.3.3.2 Memory allocation
Errors = 0
Suite complete.
Executing suite: 7.3.4 Text input and output
Lines complete.
testing 7.3.4.1 Text input
testing 7.3.4.2 Console input
testing 7.3.4.3 ASCII constants
testing 7.3.4.4 Console output
testing 7.3.4.5 Output formatting
testing 7.3.4.6 Display pause
testing 7.3.4.7 String literals
testing 7.3.4.8 String manipulation
Errors = 0
Suite complete.
Executing suite: 7.3.5 Numeric input and output
Lines complete.
testing 7.3.5.1 Numeric-base control
testing 7.3.5.2 Numeric input
testing 7.3.5.3 Numeric output
testing 7.3.5.4 Numeric output primitives
Errors = 0
Suite complete.
Executing suite: 7.3.6 Comparison operators
Lines complete.
testing 7.3.6 Comparison operators
Errors = 0
Suite complete.
Executing suite: 7.3.7 Flag constants
Lines complete.
testing 7.3.7 Flag constants
Errors = 0
Suite complete.
Executing suite: 7.3.8 Control-flow commands
Lines complete.
testing 7.3.8.1 Conditional branches
testing 7.3.8.2 Case statement
testing 7.3.8.3 Conditional loops
testing 7.3.8.4 Counted loops
testing 7.3.8.5 Other control flow commands
testing 7.3.8.6 Error handling
Errors = 0
Suite complete.
Executing suite: 7.3.8-i Control-flow commands in interpretation state
Lines complete.
testing 7.3.8.1 Conditional branches - interpretation state
testing 7.3.8.2 Case statement - interpretation state
testing 7.3.8.3 Conditional loops - interpretation state
testing 7.3.8.4 Counted loops - interpretation state
testing 7.3.8.6 Error handling - interpretation state
Errors = 0
Suite complete.
Executing suite: 7.3.9 Forth dictionary
Lines complete.
testing 7.3.9.1 Defining words
testing 7.3.9.2 Dictionary commands
testing 7.3.9.2.1 Data space allocation
testing 7.3.9.2.2 Immediate words
testing 7.3.9.2.3 Dictionary search
testing 7.3.9.2.4 Miscellaneous dictionary
testing 7.3.9.2.4 Assembler
Errors = 0
Suite complete.
Executing suite: 7.5.1 Automatic stack display
Lines complete.
testing 7.5.1 Automatic stack display
Errors = 0
Suite complete.
Executing suite: 7.5.3 Dictionary
Lines complete.
testing 7.5.3 Dictionary
testing 7.5.3.1 Dictionary search
testing 7.5.3.2 Decompiler
Errors = 0
Suite complete.
Executing suite: 5.3.2 Forth FCode Functions
Lines complete.
testing 5.3.2 Forth FCode Functions
Errors = 0
Suite complete.
Executing suite: 5.3.3 FCode implementation functions
Lines complete.
testing 5.3.3 FCode implementation functions
testing 5.3.3.1 Defining new FCode functions
testing 5.3.3.3 Controlling values and defers
testing OF816 5.3.3-related checks
Errors = 0
Suite complete.
Executing suite: 5.3.4.3 Get local arguments
Lines complete.
testing 5.3.4.3 Get local arguments
Errors = 0
Suite complete.
Executing suite: 5.3.7.1 Peek/poke
Lines complete.
testing 5.3.7.1 Peek/poke
Errors = 0
Suite complete.
Executing suite: 5.3.7.2 Device-register access
Lines complete.
testing 5.3.7.1 Device-register access
Errors = 0
Suite complete.
Executing suite: 5.3.7.4 System-information
Lines complete.
testing 5.3.7.4 System information
Errors = 0
Suite complete.
Executing suite: 5.3.7.6 Start and end
Lines complete.
testing 5.3.7.6 Start and end
Errors = 0
Suite complete.
Executing suite: OF816 Words
Lines complete.
testing OF816 words
Errors = 0
Suite complete.
Tests complete, no errors.
Anyway, thanks for this report and I will play around with it.
from of816.
I just tried adding 1 through 6 NOPs to platform-lib.s for GoSXB and could not replicate the results.
You should be able to compile the W65C816SXB port, it's the simplest of them and was my reference hardware until I developed GoSXB. It's still one of two hardware platforms I test against, though not as often as the Neon816.
I am curious if you see the same effects by adding NOPs to its platform-lib.s... that might tell us whether your ca65/ld65 is being strange or not. You might also try moving the FStartup segment to the end of the memory and see if that changes anything.
As it stands, I am at a loss.
from of816.
Related Issues (10)
- C@ should perform an 8-bit access
- Build fails on recent ca65.
- Concerning immediacy in IEEE 1275-1994 HOT 10
- C! And W! Donβt need indexed addressing.
- Signed comparisons involving minimum signed integer fail HOT 3
- Native FM/MOD incorrect results HOT 2
- MOVE problem HOT 2
- Nested loop in temporary definition causes exception -60 (FREE). HOT 3
- text input number handling inconsistent with IEEE 1275-1994
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from of816.