I'm not sure if anyone has tried using C/80 and the default
AS.ABS, but what you're doing here looks strange. At the very
least, you may need to use PIP to combine the files instead of
Linux utils. I'll take a peek at the C/80 manual to see what it
says about this procedure.
--
You received this message because you are subscribed to the Google Groups "SEBHC" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sebhc+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/11065210-7c9e-48d8-a3e0-9ec261a038d0n%40googlegroups.com.
--
Perhaps it is something to do with AS.ABS, which I haven't analyzed to see what HDOS calls it makes. I certainly haven't had any problem using C/80 with M80 and L80. I know AS.ABS is pretty crude, even Walt seemed to advise against using it.
But, I don't understand what you're using to build HELLO.ABS, and
where clibrary.asm comes into things. I guess I need to read up on
how AS.ABS is supposed to be used.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/a88c9cfa-ad66-45a3-a632-8ba98e9b5e4cn%40googlegroups.com.
On May 17, 2023, at 11:13 PM, smb...@gmail.com <smb...@gmail.com> wrote:
I followed the instructions for C/80 which said to run:
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/cdc3a71b-87fa-48c3-a60d-12908d5f284en%40googlegroups.com.
There's probably something I can tweak in the vhdos emulator. I
just need to look at what AS.ABS is doing and adjust.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/cb1e6c90-d68c-4c9c-b6e8-64ee55c8861dn%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/cb1e6c90-d68c-4c9c-b6e8-64ee55c8861dn%40googlegroups.com.
cconfig allows you to adjust various parameters, specifically allocate space for things like macros. you'll need to adjust those.
typedef is not supported.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/f095930e-bfed-4b7b-a081-4fd8616eb5e1n%40googlegroups.com.
On May 18, 2023, at 5:17 PM, smb...@gmail.com <smb...@gmail.com> wrote:
The last thing I ran into was it told me I had run out of Macro Space... Maybe there's a way to increase that?
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/f095930e-bfed-4b7b-a081-4fd8616eb5e1n%40googlegroups.com.
On May 18, 2023, at 8:15 PM, Les Bird <lesb...@gmail.com> wrote:
And for the record, I was able to build Hello.c using C.ABS and AS.ABS without any issues on a floppy system on a real H8 so I'm guessing it is an emulation issue.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/fd230024-2330-4a8c-abde-f52e7736cf11n%40googlegroups.com.
The file is being correctly created, NUL-padded on the last sector. Keep in mond, this all works with M80/L80. As far as I can tell, AS.ABS is doing a simple .READ syscall, check for carry, and then checking for EOF before declaring an error. So far, haven't found anything wrong, but will need to do some tracing. I might try to reproduce with a smaller example to see if I can reduce the amount of trace output. I suspect it is some corner-case where a syscall is not exactly what AS.ABS expects, but other HDOS utils don't care or aren't perturbing things the same way.
It's looking like AS is loading (XTEXT) CLIBRARY.ASM twice,
although I can't be certain because I can't get a decent listing
file out of AS. Just to make things weirder, AS uses straight
octal in the listings, instead of split-octal.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/F79DAA6D-85B2-40DD-AC1C-CE4C2BE54886%40gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/fdd9c86d-d814-87e2-9b7d-461123dc27d6%40gmail.com.
I've got a pretty good idea now of what is happening, but don't see anything wrong with what the emulator is returning.
AS.ABS is reading files using a 1K buffer, doing 1K block reads (BC=0400H on calling .READ). It just happens that the final block read of clibrary.asm fills only 3 sectors of the buffer, leaving the last sector with the contents of the previous block read (the offending duplicate code). But I can't see any reason that AS should think that was valid data. The return values from the final read clearly indicate that the last sector of the block was not filled (BC=0100H), and the address in DE also correctly shows how much of the buffer was filled.
I'm hoping that HDOS does not gratuitously fill the entire remainder of the buffer with NULs in this case - that would be horribly inefficient for programs using large buffers (like "all of memory").
Unless, HDOS does something abnormal like return EOF when there
actually was data returned? I.e. it preemptively returns EOF,
unlike pretty much every other OS that returns EOF only when no
more data can be read.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/CAGQDgBBozbcsZSdFqNb9onmaYdvZ2zpcM7HWtAnf%3DzmURzbgSQ%40mail.gmail.com.
I've updated the emulator to treat a partial read as an error, returning EOF. This fixed AS.ABS and did not break anything in ASM.ABS, C.ABS, M80.ABS, or L80.ABS.
I see that most other programs, including C.ABS, do 1-sector reads and thus never see a problem.
Thanks, Scott, for raising the issue.
On May 19, 2023, at 6:58 PM, Douglas Miller <durga...@gmail.com> wrote:
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/8c456f6c-9f1c-8b09-36b0-350863f3b30f%40gmail.com.