Hi Derek,
sorry for the incident...
The fact that one C file was compiled OK (advent.c) shows that the enhanced HiTech C version for SC114 works OK.
That's a relief for me, I do not have a SC114 (but I tested on a compatible configuration - the Phillip Stevens 32KB ROM + 128KB RAM )
But, let's see, what happened with your disk F?
The incident you described seems to me related to a limit being reached (disk directory full, files max nr/disk reached, ...)
But, let's take one step at a time...
First, I checked my disks having enough free space and enough free slots in the directories.
Then, I tried to do exactly what you did.
I have the HiTech C on D.
I moved all the source files to F:
D>pip f: = d:rand.as
D>pip f: = d:advent.c
D>pip f: = d:database.c
D>pip f: = d:english.c
D>pip f: = d:itverb.c
D>pip f: = d:turn.c
D>pip f: = d:verb.c
D>pip f: = d:advcave.h
D>pip f: = d:advdec.h
D>pip f: = d:advdef.h
D>pip f: = d:advent.h
D>pip f: = d:advtext.h
D>pip f: = d:advword.h
BUT, then, I erased the HiTech C from F: (let's see, the HiTech C executables, from where are they loaded ?)
F>era c.com
F>era cpp.com
F>era cgen.com
F>era optim.com
F>era zas.com
then, I tried exactly what you did:
F>d:c -v -c -o advent.c
HI-TECH C COMPILER (CP/M-80) V3.09
Copyright (C) 1984-87 HI-TECH SOFTWARE
0:CPP: Not found - change disks, hit a key
Ups... it turns out that despite calling C to be executed from D, C tries then to load the rest of the HiTech executables from the local disk (F)
!!! That's the first warning !!!
Next, I copied back the HiTech executables to F, but replaced ZAS with an older version of Z80AS ( which allows only a small number of temporary labels to be used...)
And I tried the same:
F>d:c -v -c -o advent.c
HI-TECH C COMPILER (CP/M-80) V3.09
Copyright (C) 1984-87 HI-TECH SOFTWARE
0:CPP -DCPM -DHI_TECH_C -Dz80 -I ADVENT.C $CTMP1.$$$
0:P1 $CTMP1.$$$ $CTMP2.$$$ $CTMP3.$$$
ADVENT.C: main()
79: else if (yes(65, 1, 0))
Warning #88 yes ^ (warning)
0:CGEN $CTMP2.$$$ $CTMP1.$$$
0:OPTIM $CTMP1.$$$ $CTMP2.$$$
0:ZAS -J -N -oADVENT.OBJ $CTMP2.$$$
Z80AS Macro-Assembler V4.8
E 057A" 0000 defw 4019f
E 057C" 0000 defw 4029f
E 057E" 0000 defw 4039f
E 0580" 0000 defw 4049f
E 0582" 0000 defw 4059f
E 0584" 0000 defw 4069f
E 0586" 0000 defw 4079f
E 0588" 0000 defw 4089f
E 058A" 0000 defw 4099f
E 058C" 0000 defw 4109f
E 058E" 0000 defw 4119f
E 0590" 0000 defw 4129f
E 0592" 0000 defw 4139f
E 0594" 0000 defw 4149f
E 0596" 0000 defw 4159f
E 0598" 0000 defw 4169f
E 059A" 0000 defw 4179f
E 059C" 0000 defw 4189f
E 059E" 0000 defw 4199f
E 05A0" 0000 defw 4209f
E 05A2" 0000 defw 4219f
E 05A4" 0000 defw 4229f
E 05A6" 0000 defw 4239f
E 05A8" 0000 defw 4249f
E 05AA" 0000 defw 4259f
E 05AC" 0000 defw 4269f
E 05AE" 0000 defw 4279f
E 05B0" 0000 defw 4289f
E 05B2" 0000 defw 4299f
E 05B4" 0000 defw 4309f
E 05B6" 0000 defw 4319f
E 05B8" 0000 defw 4329f
E 05BA" 0000 defw 4339f
E 05BC" 0000 defw 4349f
E 05BE" 0000 defw 4359f
E 05C0" 0000 defw 4369f
E 05C2" 0000 defw 4379f
E 05C4" 0000 defw 4389f
E 05C6" 0000 defw 4399f
E 05C8" 0000 defw 4409f
E 05CA" 0000 defw 4419f
E 00EA' 21 0000 ld hl,4429f
E 0170' 21 0000 ld hl,4439f
E 01C5' 21 0000 ld hl,4449f
E 01D1' 21 0000 ld hl,4459f
E 01DD' 21 0000 ld hl,4469f
E 01E9' 21 0000 ld hl,4479f
E 01F5' 21 0000 ld hl,4489f
E 0201' 21 0000 ld hl,4499f
E 020D' 21 0000 ld hl,4509f
E 0219' 21 0000 ld hl,4519f
E 0225' 21 0000 ld hl,4529f
E 0231' 21 0000 ld hl,4539f
E 024E' 21 0000 ld hl,4549f
E 025A' 21 0000 ld hl,4559f
E 0266' 21 0000 ld hl,4569f
E 0272' 21 0000 ld hl,4579f
E 027E' 21 0000 ld hl,4589f
E 028A' 21 0000 ld hl,4599f
E 02A7' 21 0000 ld hl,4609f
E 02B3' 21 0000 ld hl,4619f
E 02BF' 21 0000 ld hl,4629f
E 02CB' 21 0000 ld hl,4639f
E 02D7' 21 0000 ld hl,4649f
E 02E3' 21 0000 ld hl,4659f
E 02EF' 21 0000 ld hl,4669f
E 02FB' 21 0000 ld hl,4679f
E 0382' 21 0000 ld hl,4689f
E 038E' 21 0000 ld hl,4699f
E 03A0' 21 0000 ld hl,4709f
E 03DE' 21 0000 ld hl,4729f
E 03E2' 21 0000 ld hl,4719f
E 03F2' 21 0000 ld hl,4739f
E 03FD' 21 0000 ld hl,4759f
E 0401' 21 0000 ld hl,4749f
E 0411' 21 0000 ld hl,4769f
E 041C' 21 0000 ld hl,4789f
E 0420' 21 0000 ld hl,4779f
E 0430' 21 0000 ld hl,4799f
E 043B' 21 0000 ld hl,4819f
E 043F' 21 0000 ld hl,4809f
E 044E' 21 0000 ld hl,4829f
E 045E' 21 0000 ld hl,4839f
E 046D' 21 0000 ld hl,4849f
E 04AB' 21 0000 ld hl,4859f
E 04BB' 21 0000 ld hl,4869f
E 04E0' 21 0000 ld hl,4879f
(well, not a catastrophe, as in your case, my files were not deleted...but that's not definitely OK...)
Of course, Z80AS failed... because it was executed from F, not from D, where the last version of the HiTech C toolset is stored.
Next, I tried to produce some "limit" situations:
Let's see what is the status of F:
F>sdir *.obj
Directory For Drive F: User 0
Name Bytes Recs Attributes Name Bytes Recs Attributes
------------ ------ ------ ------------ ------------ ------ ------ ------------
ADVENT OBJ 0k 0 Dir RW BOOT OBJ 4k 14 Dir RW
CPMBOOT OBJ 4k 8 Dir RW CRTCPM OBJ 4k 3 Dir RW
SIO OBJ 4k 6 Dir RW SIOTST OBJ 4k 6 Dir RW
T OBJ 12k 88 Dir RW TASM1 OBJ 8k 34 Dir RW
UTIL OBJ 4k 18 Dir RW VGA OBJ 4k 12 Dir RW
Total Bytes = 48k Total Records = 189 Files Found = 10
Total 1k Blocks = 27 Used/Max Dir Entries For Drive F: 510/ 512
F>era boot.obj
(OK, I have now space for 3 more files)
F>d:c -v -c -o advent.c
HI-TECH C COMPILER (CP/M-80) V3.09
Copyright (C) 1984-87 HI-TECH SOFTWARE
0:CPP -DCPM -DHI_TECH_C -Dz80 -I ADVENT.C $CTMP1.$$$
0:P1 $CTMP1.$$$ $CTMP2.$$$ $CTMP3.$$$
$CTMP1.$$$:
0: Error #95 $CTMP3.$$$
ERA $CTMP1.$$$
ERA $CTMP2.$$$
ERA $CTMP3.$$$
ERA $$EXEC.$$$
(Ah, so I need more free file slots in the directory ...)
F>era siotst.obj
F>sdir *.obj
Directory For Drive F: User 0
Name Bytes Recs Attributes Name Bytes Recs Attributes
------------ ------ ------ ------------ ------------ ------ ------ ------------
ADVENT OBJ 0k 0 Dir RW CPMBOOT OBJ 4k 8 Dir RW
CRTCPM OBJ 4k 3 Dir RW SIO OBJ 4k 6 Dir RW
T OBJ 12k 88 Dir RW TASM1 OBJ 8k 34 Dir RW
UTIL OBJ 4k 18 Dir RW VGA OBJ 4k 12 Dir RW
Total Bytes = 40k Total Records = 169 Files Found = 8
Total 1k Blocks = 24 Used/Max Dir Entries For Drive F: 508/ 512
(Now, I have 4 free file slots)
F>d:c -v -c -o advent.c
HI-TECH C COMPILER (CP/M-80) V3.09
Copyright (C) 1984-87 HI-TECH SOFTWARE
0:CPP -DCPM -DHI_TECH_C -Dz80 -I ADVENT.C $CTMP1.$$$
0:P1 $CTMP1.$$$ $CTMP2.$$$ $CTMP3.$$$
ADVENT.C: main()
79: else if (yes(65, 1, 0))
Warning #88 yes ^ (warning)
0:CGEN $CTMP2.$$$ $CTMP1.$$$
(AND THE SYSTEM IS DEAD !!!)
!!! that was the second warning !!!
(I was lucky though, my files survived :)
(but, my disk directory is full:)
Total Bytes = 5872k Total Records = 38335 Files Found = 464
Total 1k Blocks = 5007 Used/Max Dir Entries For Drive F: 512/ 512
Of course, in "close-to-limit" conditions, things can easily get out of control, and I was lucky, my F disk survived...
To sum up:
1. using commands like F>d:c -v -c -o advent.c , without being sure that on F you have the same HiTech executables as on D, is like playing russian roulette... you might have some nasty surprises.
2. when I want to make a test with a new executable, I first want to be sure that my system has enough free space on disk/directory; I do not like to made experiments in an environment with resources close to the limit.
This being said, I'm sorry about the incident that wiped your F drive, and I want to thank you for your patience in testing my enhanced HiTech C compiler.
regards,
Ladislau