floobydust wrote:
Hi Proxy,
So, the CMOS version I did is really a lot of changes and some streamlining of Lee's EnHanced Basic, which seems to be derived partly from MS Basic. The source code will need to be assembled and linked. I use WDC Tools, which is a free download and will run on Windows... I use Win7 in a VM, but XP should work as well... likely Win 10 as well.
I tried to install the WDC Tools but it always gets stuck at "Target was appended to PATH", at the second try it says "Target is already in PATH. it will be removed and appended to PATH". i checked the path variable and it did add itself, but the string it added pointed to the wrong drive...? i told the program to install into "F:\HDD\wdc" but the path variable is "C:\WDC\tools\INCLUDE". that folder doesn't exist by the way...
even changing the installation directory to be in C:\WDC doesn't change anything, it still gets stuck.
i'm on Win10 and i got programs like WinCUPL and ATMISP running on this machine as well so i don't see why this one doesn't work.
floobydust wrote:
If you look at the source, there are some monitor routines that need to be declared before assembling the aource. In short, you need two routines define at a minimum: one for character out and one for character in. If your Simulator has these input/output routines, just replace the ones that are there and you should be set.
where exactly do i replace those in the file? i did find "B_CHRIN_NW" and "B_CHROUT" but they just seem to be constants not actual functions. can i just delete those 2 lines and put my functions directly there? or do it via an external file?
i mean i assume it would as long as they have the same label, right?
it confuses me because it often mentions a BIOS/Monitor being located in ROM as well, probably because it expects a specific code being at those locations because it was made for that.
floobydust wrote:
Second, look at the page zero usage as well as the buffer and vector space. These are declared in the source along with the memory (RAM) start and end addresses. For my config, I use $0400 for vectors and input buffer, a RAM start address of $0800 and and a RAM end address of $8000.
any specific reason it's at 0x0400? i think i saw it being the lowest thing in memory to be used (besides the stack and ZP), so why not put it directly after the stack at 0x0200? and then User RAM could also start earlier.
floobydust wrote:
Hopefully the above helps.... if not, please post details on your simulator, i.e., memory map, existing routines, page zero usage, etc. and I can probably modify the source and assemble/link a version that could work with your simulator. Cheers!
thanks, though i think there was a small misunderstanding, i literally just have the CPU (65C02), a variable Memory map, and a Terminal (ASCII input/output). there is absolutely no software running on the simulated system (which is why i wanted to try running EhBASIC in the first place), there is nothing else, no BIOS, Monitor, etc. so literally 100% of the memory can be used by BASIC.
plus as said i can change the memory map to whatever is needed, so i'll likely just have enough ROM to fit BASIC and make everything else RAM.
also why does BASIC start at 0xB000 when 0x8000 is said to be the start of the ROM? is it because of constants and strings that are stored before the code? that seems like a lot of space for some error messages...
overall i'm just a bit confused by the complexity of the file. i'm sorry for the constant confusion/questions the comments are helpful and i can understand parts of it
i know how the IO functions should look like but not where to place them. or how to assemble the whole thing for example.