Hi,Ok thats good,
you may found-it here: https://github.com/Laci1953/RC2014-CPM/tree/main/ADVENTURE
It runs on any Z80 machine under CP/M.
Ladislau
c -v -c -o advent.cHI-TECH C COMPILER (CP/M-80) V3.09
Hi Derek,Next daft question, Where is your version on the C compiler. I found https://github.com/Laci1953/HiTech-C-compiler-enhanced/tree/main
use:
c -v -c -o advent.c
c -v -c -o database.c
c -v -c -o english.c
c -v -c -o itverb.c
c -v -c -o turn.c
c -v -c -o verb.c
z80as rand
then:
xsub
link
-ptext=0,data,bss -c100h -oadvent.com \
crtcpm.obj advent.obj database.obj english.obj itverb.obj \
turn.obj verb.obj rand.obj libc.lib
Or, use the shortcut:
c -v -o advent.c database.c english.c itverb.c turn.c verb.c rand.as
However, if you use the original HiTech C compiler, you will encounter some problems while compiling (assembling)...
First issue: the // comments. This can be fixed immediately by using the old-style /* ... */ comments ...
Second issue: I tried to compile using the original HiTech C (using the modified sources with /* ... */ comments).
Here is what happens:
c -v -c -o advent.cHI-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.$$$
0:CGEN $CTMP2.$$$ $CTMP1.$$$
0:OPTIM $CTMP1.$$$ $CTMP2.$$$
0:ZAS -J -N -oADVENT.OBJ $CTMP2.$$$
$CTMP2.$$$:4387: Too many temporary labels
ERA $CTMP1.$$$
ERA $CTMP2.$$$
ERA $CTMP3.$$$
ERA $$EXEC.$$$
Of course, I used my enhanced HiTech C compiler & Z80AS, to avoid all problems... so, I advice you to do the same.
Ladislau
Hi,
you may found-it here: https://github.com/Laci1953/RC2014-CPM/tree/main/ADVENTURE
It runs on any Z80 machine under CP/M.
Ladislau
Hi all,Hi,
I added to https://github.com/Laci1953/HiTech-C-compiler-enhanced ,
the file "How to install" ,
containing the following text:
---------------------------
Here are the necessary 3 steps, depending on your specific Z80 computer's hardware:
1. The boot (E)EPROM
This is a mandatory step only for computers provided with the 512KB ROM + 512KB RAM board.
(For computers provided with Steve Cousins SCM, e.g. SC108, this step is not mandatory, you can boot CP/M from SCM, so go to step 2)
For computers provided with 512KB RAM, you need to boot CP/M at power ON, in order to use the enhanced HiTech C compiler.
Running CP/M from ROMWBW will not allow the enhanced HiTech C compiler to be executed !
Choose the appropriate .hex file (according to your RC2014's serial type & CF size), and burn-it to an (E)EPROM, then insert the EPROM to your 512KB RAM + 512KB ROM board.
Example: you have a Z80 computer with an ACIA serial and 64MB CF. You will choose the CPM_boot_512_ACIA_CF64.hex file.
Now, at power ON, the CP/M directly boots.
2. The smaller CP/M (for 128KB RAM Z80 computers)
This step is mandatory only for 128KB RAM computers.
(For computers provided with 512KB RAM + 512KB ROM boards, you may use the "original" CP/M, go to step 3)
To change your CP/M with the smaller CP/M, to be able to run the enhanced HiTech C for 128KB RAM Z80 computers, you need to
paste on the terminal the appropriate .hex file.
Example: you have an 128KB RAM Z80 computer with an ACIA serial and 64MB CF. You will choose the ACIA_PutSys_CF64_CPM_DA00H.hex file.
Then:
*g8000<CR>
Now, the CF contains a smaller CP/M.
3. The enhanced HiTech C
This step is mandatory for all computers.
To implement on your computer the enhanced HiTech C, you need to copy the appropriate .HEX files (according to your hardware), here I will use the "generic" names, then execute:
LOAD CPP
LOAD P1
LOAD CGEN
LOAD OPTIM
LOAD Z80AS
PIP ZAS.COM=Z80AS.COM
Now, you have the enhanced HiTech C installed.
----------------------------
Many thanks Derek for pointing out the need to have a clear "install instruction" text for the enhanced HiTech C compiler !!!
regards,
Ladislau
c -v -c -o advent.cHI-TECH C COMPILER (CP/M-80) V3.09
a:stat *.*
zsidZSID VERS 1.4
Hi Derek,Not what I get, this is mine, i used SCM to upload the file ACIA_PutSys_CF64_CPM_DA00H.hex
let's check, step by step...
First, your CP/M. (I suppose that's the problem...)
Try this:
zsidZSID VERS 1.4
#lf000
F000 JP F0E0
F003 JP F163
F006 JP F1CB
F009 JP F1F9
F00C JP F22E
F00F JP F216
F012 JP F222
F015 JP F1EE
F018 JP F27D
F01B JP F255
F01E JP F289
#lff4e
FF4E LD A,01
FF50 OUT 38,A
FF52 POP AF
FF53 CP 01
FF55 JR Z,04
FF57 LD A,01
FF59 JR 02
FF5B LD A,00
FF5D LD (0003),A
FF60 JP F000
FF63 NOP
#
Is this what you see on your computer?
Ladislau
zsidZSID VERS 1.4
Oh, I did not know you have ACIA...My version is:
The CP/M seems OK !
Let's dig deeper...
Try this:
BOOT
Small Computer Monitor - S3
*d69
0069: C3 57 01 .W. JP $0157
006C: C3 0B 04 ... JP $040B
006F: C3 25 03 .%. JP $0325
0072: C3 3B 03 .;. JP $033B
0075: C3 54 01 .T. JP $0154
0078: C3 16 0E ... JP $0E16
007B: C3 FD 04 ... JP $04FD
007E: C3 55 01 .U. JP $0155
0081: C3 54 01 .T. JP $0154
0084: C3 54 01 .T. JP $0154
0087: C3 54 01 .T. JP $0154
008A: C3 54 01 .T. JP $0154
008D: C3 54 01 .T. JP $0154
0090: C3 54 01 .T. JP $0154
0093: C3 54 01 .T. JP $0154
0096: C3 54 01 .T. JP $0154
0099: C3 59 01 .Y. JP $0159
009C: C3 59 01 .Y. JP $0159
009F: C3 59 01 .Y. JP $0159
00A2: C3 59 01 .Y. JP $0159
*d4fd
04FD: 21 0F 05 !.. LD HL,$050F
0500: 47 G LD B,A
0501: 79 y LD A,C
0502: FE 2C ., CP $2C
0504: D0 . RET NC
0505: 78 x LD A,B
0506: 06 00 .. LD B,$00
0508: 09 . ADD HL,BC
0509: 09 . ADD HL,BC
050A: 46 F LD B,(HL)
050B: 23 # INC HL
050C: 66 f LD H,(HL)
050D: 68 h LD L,B
050E: E9 . JP (HL)
050F: 6C l LD L,H
0510: 02 . LD (BC),A
0511: 25 % DEC H
0512: 03 . INC BC
0513: 0B . DEC BC
0514: 04 . INC B
*
The 7'th JP from 69H is in my case JP $04FD.
At 04FD, the code MUST contain:
LD HL,xxxx
LD B,A
LD A,C
CP $2C ;HERE, STEVE CHECKS FOR THE MAX FUNCTION # - in my case $2C
(this means, my SCM version contains the functions $2A and $2B, to move bytes from/to the high 64KB RAM bank.)
Check, on your computer, the code at $7B (the 7'th JP). It's a JP to some address. Check that address (d addr).
I suppose you will find , on your computer:
LD HL,xxxx
LD B,A
LD A,C
CP $2A ;HERE, STEVE CHECKS FOR THE MAX FUNCTION # - in your case $2A
I suppose you have an older version of SCM (without the functions $2A and $2B).
In this case, we must use another solution...
but first, I wait for your response...
Ladislau
ok, lets check the code of functions $2A and $2B ...My version has an extra jump:
on my computer:
007B: C3 FD 04 ... JP $04FD
04FD: 21 0F 05 !.. LD HL,$050F
50F + 2A + 2A = 563
*m563
0563: 8C 1D 98 1D ... (2 words = addresses of byte move routines)
*d1D8C
1D8C: 0E 38 .8 LD C,$38
1D8E: 06 80 .. LD B,$80
1D90: ED 41 .A OUT (C),B
1D92: 1A . LD A,(DE)
1D93: 06 00 .. LD B,$00
1D95: ED 41 .A OUT (C),B
1D97: C9 . RET
1D98: 0E 38 .8 LD C,$38
1D9A: 06 80 .. LD B,$80
1D9C: ED 41 .A OUT (C),B
1D9E: 12 . LD (DE),A
1D9F: 06 00 .. LD B,$00
1DA1: ED 41 .A OUT (C),B
1DA3: C9 . RET
Is this code also on your computer?
Ladislau
On Friday, 27 October 2023 at 14:58:28 UTC+1, ladislau szilagyi wrote:
ok, lets check the code of functions $2A and $2B ...
on my computer:
007B: C3 FD 04 ... JP $04FD
04FD: 21 0F 05 !.. LD HL,$050F
50F + 2A + 2A = 563
*m563
0563: 8C 1D 98 1D ... (2 words = addresses of byte move routines)
*d1D8C
1D8C: 0E 38 .8 LD C,$38
1D8E: 06 80 .. LD B,$80
1D90: ED 41 .A OUT (C),B
1D92: 1A . LD A,(DE)
1D93: 06 00 .. LD B,$00
1D95: ED 41 .A OUT (C),B
1D97: C9 . RET
1D98: 0E 38 .8 LD C,$38
1D9A: 06 80 .. LD B,$80
1D9C: ED 41 .A OUT (C),B
1D9E: 12 . LD (DE),A
1D9F: 06 00 .. LD B,$00
1DA1: ED 41 .A OUT (C),B
1DA3: C9 . RET
Is this code also on your computer?
LadislauMy version has an extra jump:
so from the top:
0519: 21 2B 05 !+. LD HL,$052B
52b+2a+2a = 57f
*m57f
057F: E0 1C E3 1C C9 21 A1 05 79 FE 03 30 09 06 00 09 .....!..y..0....
058F: 09 46 23 66 68 E9 AF 47 67 6F C9 C3 48 03 7B C3 .F#fh..Ggo..H.{.
*d1ce0 THIS SHOWS an extra JP to the code
1CE0: C3 91 1F ... JP $1F91
1CE3: C3 9C 1F ... JP $1F9C
1F91: 0E 30 .0 LD C,$30
1F93: 06 01 .. LD B,$01
1F95: ED 41 .A OUT (C),B
1F97: 1A . LD A,(DE)
1F98: 05 . DEC B
1F99: ED 41 .A OUT (C),B
1F9B: C9 . RET
It looks like it does something similar
Derek
Hi Derek,the $1f9c code is:*d1f9c
the mystery is solved!!!
turns out that your SC114 has other ports used to select the ROM/RAM banks, compared to SC108:
SC108:
MEMP_PORT equ 38H
; ROM 0000 to 8000H
;
ROM_OUT_CMD equ 00000001B
ROM_IN_CMD equ 00000000B
LOWER_64RAM equ 00000000B
UPPER_64RAM equ 10000000B
1D8C: 0E 38 .8 LD C,$38
1D8E: 06 80 .. LD B,$80
1D90: ED 41 .A OUT (C),B
1D92: 1A . LD A,(DE)
1D93: 06 00 .. LD B,$00
1D95: ED 41 .A OUT (C),B
1D97: C9 . RET
SC114:
1F91: 0E 30 .0 LD C,$30
1F93: 06 01 .. LD B,$01
1F95: ED 41 .A OUT (C),B
1F97: 1A . LD A,(DE)
1F98: 05 . DEC B
1F99: ED 41 .A OUT (C),B
1F9B: C9 . RET
Can you please list also the $1F9C routine?
I will modify the source files, with a new option : SC114 !!! I was convinced that is similar to SC108... but IT'S NOT !!!
Ladislau
Thanks Derek,ok thanks,
now, back to the source code...
I will notify you after finishing the modifications needed for SC114... it will take some time :(
Ladislau
Hi Derek,Thanks,
I published the versions for SC114 on GitHub.
You need to copy only P1_114.HEX , CGEN114.HEX , OPTIM114.HEX , then LOAD them.
I tested the executables on a configuration using the Phillip Stevens 32KB ROM + 128KB RAM memory module, which is compatible with SC114, they work OK.
When compiling the game, you will get some warnings, it's OK...
regards,
Ladislau
Compilation of the game seems to be quite an adventure…
The expected output from the build procedure:
(this was executed on Z80ALL, on RC2014(SC108) it takes about 20 minutes...) ---------------
submit buildadv
clock reset
c -v -c -o advent.cHI-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()
59: 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
Errors: 0
Jump optimizations done: 38
Finished.
ERA $CTMP1.$$$
ERA $CTMP2.$$$
ERA $CTMP3.$$$
ERA $$EXEC.$$$
c -v -c -o database.cHI-TECH C COMPILER (CP/M-80) V3.09
Copyright (C) 1984-87 HI-TECH SOFTWARE
0:CPP -DCPM -DHI_TECH_C -Dz80 -I DATABASE.C $CTMP1.$$$
0:P1 $CTMP1.$$$ $CTMP2.$$$ $CTMP3.$$$
0:CGEN $CTMP2.$$$ $CTMP1.$$$
0:OPTIM $CTMP1.$$$ $CTMP2.$$$
0:ZAS -J -N -oDATABASE.OBJ $CTMP2.$$$
Z80AS Macro-Assembler V4.8
Errors: 0
Jump optimizations done: 47
Finished.
ERA $CTMP1.$$$
ERA $CTMP2.$$$
ERA $CTMP3.$$$
ERA $$EXEC.$$$
c -v -c -o english.cHI-TECH C COMPILER (CP/M-80) V3.09
Copyright (C) 1984-87 HI-TECH SOFTWARE
0:CPP -DCPM -DHI_TECH_C -Dz80 -I ENGLISH.C $CTMP1.$$$
0:P1 $CTMP1.$$$ $CTMP2.$$$ $CTMP3.$$$
0:CGEN $CTMP2.$$$ $CTMP1.$$$
0:OPTIM $CTMP1.$$$ $CTMP2.$$$
0:ZAS -J -N -oENGLISH.OBJ $CTMP2.$$$
Z80AS Macro-Assembler V4.8
Errors: 0
Jump optimizations done: 36
Finished.
ERA $CTMP1.$$$
ERA $CTMP2.$$$
ERA $CTMP3.$$$
ERA $$EXEC.$$$
c -v -c -o itverb.cHI-TECH C COMPILER (CP/M-80) V3.09
Copyright (C) 1984-87 HI-TECH SOFTWARE
0:CPP -DCPM -DHI_TECH_C -Dz80 -I ITVERB.C $CTMP1.$$$
0:P1 $CTMP1.$$$ $CTMP2.$$$ $CTMP3.$$$
ITVERB.C: ivtake()
104: if(anobj==0|| (dcheck() && dflag>=2)) {
Warning #88 dcheck ^ (warning)
ITVERB.C: ivopen()
117: if(here(14))
Warning #88 here ^ (warning)
121: if(at(9))
Warning #88 at ^ (warning)
ITVERB.C: ivdrink()
192: if(liqloc(loc) != 21 &&
Warning #88 liqloc ^ (warning)
193: (liq()!= 21 || !here(20)))
Warning #88 liq ^ (warning)
ITVERB.C: ivquit()
206: if(gaveup=yes(22,54,54))
Warning #88 yes ^ (warning)
ITVERB.C: ivfoo()
229: k = vocab(word1,3000);
Warning #88 vocab ^ (warning)
242: (toting(56) && loc == 92)) {
Warning #88 toting ^ (warning)
ITVERB.C: ivread()
271: if (object > 100 || object == 0 || dark()) {
Warning #88 dark ^ (warning)
0:CGEN $CTMP2.$$$ $CTMP1.$$$
0:OPTIM $CTMP1.$$$ $CTMP2.$$$
0:ZAS -J -N -oITVERB.OBJ $CTMP2.$$$
Z80AS Macro-Assembler V4.8
Errors: 0
Jump optimizations done: 61
Finished.
ERA $CTMP1.$$$
ERA $CTMP2.$$$
ERA $CTMP3.$$$
ERA $$EXEC.$$$
c -v -c -o turn.cHI-TECH C COMPILER (CP/M-80) V3.09
Copyright (C) 1984-87 HI-TECH SOFTWARE
0:CPP -DCPM -DHI_TECH_C -Dz80 -I TURN.C $CTMP1.$$$
0:P1 $CTMP1.$$$ $CTMP2.$$$ $CTMP3.$$$
TURN.C: turn()
36: if (newloc != loc && !forced(loc) && cond[loc]&8 == 0)
Warning #88 forced ^ (warning)
67: if (wzdark && dark() && pct(35)) {
Warning #88 dark ^ (warning)
Warning #88 pct ^ (warning)
84: if (prop[15] < 0 && toting (15))
Warning #88 toting ^ (warning)
95: if (stimer())
Warning #88 stimer ^ (warning)
98: while (!english())
Warning #88 english ^ (warning)
TURN.C: descitem()
137: if (at(i)) {
Warning #88 at ^ (warning)
TURN.C: death()
469: yea = yes(81+numdie*2, 82+numdie*2, 54);
Warning #88 yes ^ (warning)
491: }
^ unused variable definition: k (warning)
TURN.C: doobj()
503: if (fixed[object] == loc || here(object))
Warning #88 here ^ (warning)
521: else if (dcheck() && dflag >= 2) {
Warning #88 dcheck ^ (warning)
528: else if ((liq() == object && here(20)) ||
Warning #88 liq ^ (warning)
529: liqloc(loc) == object)
Warning #88 liqloc ^ (warning)
558: }
^ unused variable definition: i (warning)
TURN.C: stimer()
793: prop[20] = put(20, 115, 1);
Warning #88 put ^ (warning)
0:CGEN $CTMP2.$$$ $CTMP1.$$$
TURN.C:36: constant relational expression
TURN.C:643: constant relational expression
0:OPTIM $CTMP1.$$$ $CTMP2.$$$
0:ZAS -J -N -oTURN.OBJ $CTMP2.$$$
Z80AS Macro-Assembler V4.8
Errors: 0
Jump optimizations done: 212
Finished.
ERA $CTMP1.$$$
ERA $CTMP2.$$$
ERA $CTMP3.$$$
ERA $$EXEC.$$$
c -v -c -o verb.cHI-TECH C COMPILER (CP/M-80) V3.09
Copyright (C) 1984-87 HI-TECH SOFTWARE
0:CPP -DCPM -DHI_TECH_C -Dz80 -I VERB.C $CTMP1.$$$
0:P1 $CTMP1.$$$ $CTMP2.$$$ $CTMP3.$$$
VERB.C: vtake()
111: if (toting(object)) {
Warning #88 toting ^ (warning)
133: if (!here(20) || liq() != object) {
Warning #88 here ^ (warning)
Warning #88 liq ^ (warning)
VERB.C: vdrop()
217: else if (object == 8 && at(31) && prop[31] == 0){
Warning #88 at ^ (warning)
VERB.C: vkill()
460: if (!yes(49,0,0))
Warning #88 yes ^ (warning)
VERB.C: vthrow()
607: if (i = dcheck()) {
Warning #88 dcheck ^ (warning)
609: if (pct(33)) {
Warning #88 pct ^ (warning)
VERB.C: vfind()
669: object == liqloc(loc))
Warning #88 liqloc ^ (warning)
VERB.C: vread()
786: if (dark()) {
Warning #88 dark ^ (warning)
0:CGEN $CTMP2.$$$ $CTMP1.$$$
0:OPTIM $CTMP1.$$$ $CTMP2.$$$
0:ZAS -J -N -oVERB.OBJ $CTMP2.$$$
Z80AS Macro-Assembler V4.8
Errors: 0
Jump optimizations done: 234
Finished.
ERA $CTMP1.$$$
ERA $CTMP2.$$$
ERA $CTMP3.$$$
ERA $$EXEC.$$$
z80as rand.asZ80AS Macro-Assembler V4.8
Errors: 0
Finished.
xsub
linklink> -ptext=0,data,bss -c100h -oadvent.com \
link> crtcpm.obj advent.obj database.obj english.obj itverb.obj \
link> turn.obj verb.obj rand.obj libc.lib
(xsub active)
clock00:05:42 since the last clock call...
(xsub active)
advent
Welcome to ADVENTURE!
=====================
-Original development by Willie Crowther.
-Major features added by Don Woods.
-Conversion to BDS C by J. R. Jaeger
-Unix standardization by Jerry D. Pohl.
-OS/2 Conversion by Martin Heller
-Conversion to TurboC 2.0 by Daimler
Would you like instructions?
Somewhere nearby is Colossal Cave, where others haveI've just tried it, it's doing some very strange things on my sc114.
found fortunes in treasure and gold, though it is rumored
that some who enter are never seen again. Magic is said
to work in the cave. I will be your eyes and hands. Direct
me with commands of 1 or 2 words. I should warn you that I
look at only the first five letters of each word, so you'll
have to enter "Northeast" as "ne" to distinguish it from
"North". (Should you get stuck, type "help" for some
general hints).
You are inside a building, a well house for a large spring.
There are some keys on the ground here.
There is a shiny brass lamp nearby.
There is tasty food here.
There is a bottle of water here.
^C
-------------------
Ladislau
d:c -v -c -o database.cHI-TECH C COMPILER (CP/M-80) V3.09
dirF: : : :
submit buildadvHI-TECH C COMPILER (CP/M-80) V3.09
clock reset
c -v -c -o advent.c
c -v -c -o database.cHI-TECH C COMPILER (CP/M-80) V3.09
c -v -c -o english.cHI-TECH C COMPILER (CP/M-80) V3.09
c -v -c -o itverb.cHI-TECH C COMPILER (CP/M-80) V3.09
c -v -c -o turn.cHI-TECH C COMPILER (CP/M-80) V3.09
c -v -c -o verb.cHI-TECH C COMPILER (CP/M-80) V3.09
z80as rand.asZ80AS Macro-Assembler V4.8
xsublink> -ptext=0,data,bss -c100h -oadvent.com \
link
clock00:05:42 since the last clock call...
advent
^C
pip f: = d:rand.as
pip f: = d:advent.c
pip f: = d:database.c
pip f: = d:english.c
pip f: = d:itverb.c
pip f: = d:turn.c
pip f: = d:verb.c
pip f: = d:advcave.h
pip f: = d:advdec.h
pip f: = d:advdef.h
pip f: = d:advent.h
pip f: = d:advtext.h
pip f: = d:advword.h
era c.com
era cpp.com
era cgen.com
era optim.com
era zas.com
d:c -v -c -o advent.cHI-TECH C COMPILER (CP/M-80) V3.09
d:c -v -c -o advent.cHI-TECH C COMPILER (CP/M-80) V3.09
sdir *.obj
era boot.obj
d:c -v -c -o advent.cHI-TECH C COMPILER (CP/M-80) V3.09
era siotst.obj
sdir *.obj
d:c -v -c -o advent.cHI-TECH C COMPILER (CP/M-80) V3.09
On Saturday, 28 October 2023 at 11:25:33 UTC+1, ladislau szilagyi wrote:
The expected output from the build procedure:
(this was executed on Z80ALL, on RC2014(SC108) it takes about 20 minutes...)
---------------
submit buildadv
clock reset
c -v -c -o advent.cHI-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()
59: 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
Errors: 0
Jump optimizations done: 38
Finished.
ERA $CTMP1.$$$
ERA $CTMP2.$$$
ERA $CTMP3.$$$
ERA $$EXEC.$$$
c -v -c -o database.cHI-TECH C COMPILER (CP/M-80) V3.09
Copyright (C) 1984-87 HI-TECH SOFTWARE
0:CPP -DCPM -DHI_TECH_C -Dz80 -I DATABASE.C $CTMP1.$$$
0:P1 $CTMP1.$$$ $CTMP2.$$$ $CTMP3.$$$
0:CGEN $CTMP2.$$$ $CTMP1.$$$
0:OPTIM $CTMP1.$$$ $CTMP2.$$$
0:ZAS -J -N -oDATABASE.OBJ $CTMP2.$$$
Z80AS Macro-Assembler V4.8
Errors: 0
Jump optimizations done: 47
Finished.
ERA $CTMP1.$$$
ERA $CTMP2.$$$
ERA $CTMP3.$$$
ERA $$EXEC.$$$
c -v -c -o english.cHI-TECH C COMPILER (CP/M-80) V3.09
Copyright (C) 1984-87 HI-TECH SOFTWARE
0:CPP -DCPM -DHI_TECH_C -Dz80 -I ENGLISH.C $CTMP1.$$$
0:P1 $CTMP1.$$$ $CTMP2.$$$ $CTMP3.$$$
0:CGEN $CTMP2.$$$ $CTMP1.$$$
0:OPTIM $CTMP1.$$$ $CTMP2.$$$
0:ZAS -J -N -oENGLISH.OBJ $CTMP2.$$$
Z80AS Macro-Assembler V4.8
Errors: 0
Jump optimizations done: 36
Finished.
ERA $CTMP1.$$$
ERA $CTMP2.$$$
ERA $CTMP3.$$$
ERA $$EXEC.$$$
c -v -c -o itverb.cHI-TECH C COMPILER (CP/M-80) V3.09
Copyright (C) 1984-87 HI-TECH SOFTWARE
0:CPP -DCPM -DHI_TECH_C -Dz80 -I ITVERB.C $CTMP1.$$$
0:P1 $CTMP1.$$$ $CTMP2.$$$ $CTMP3.$$$
ITVERB.C: ivtake()
104: if(anobj==0|| (dcheck() && dflag>=2)) {
Warning #88 dcheck ^ (warning)
ITVERB.C: ivopen()
117: if(here(14))
Warning #88 here ^ (warning)
121: if(at(9))
Warning #88 at ^ (warning)
ITVERB.C: ivdrink()
192: if(liqloc(loc) != 21 &&
Warning #88 liqloc ^ (warning)
193: (liq()!= 21 || !here(20)))
Warning #88 liq ^ (warning)
ITVERB.C: ivquit()
206: if(gaveup=yes(22,54,54))
Warning #88 yes ^ (warning)
ITVERB.C: ivfoo()
229: k = vocab(word1,3000);
Warning #88 vocab ^ (warning)
242: (toting(56) && loc == 92)) {
Warning #88 toting ^ (warning)
ITVERB.C: ivread()
271: if (object > 100 || object == 0 || dark()) {
Warning #88 dark ^ (warning)
0:CGEN $CTMP2.$$$ $CTMP1.$$$
0:OPTIM $CTMP1.$$$ $CTMP2.$$$
0:ZAS -J -N -oITVERB.OBJ $CTMP2.$$$
Z80AS Macro-Assembler V4.8
Errors: 0
Jump optimizations done: 61
Finished.
ERA $CTMP1.$$$
ERA $CTMP2.$$$
ERA $CTMP3.$$$
ERA $$EXEC.$$$
c -v -c -o turn.cHI-TECH C COMPILER (CP/M-80) V3.09
Copyright (C) 1984-87 HI-TECH SOFTWARE
0:CPP -DCPM -DHI_TECH_C -Dz80 -I TURN.C $CTMP1.$$$
0:P1 $CTMP1.$$$ $CTMP2.$$$ $CTMP3.$$$
TURN.C: turn()
36: if (newloc != loc && !forced(loc) && cond[loc]&8 == 0)
Warning #88 forced ^ (warning)
67: if (wzdark && dark() && pct(35)) {
Warning #88 dark ^ (warning)
Warning #88 pct ^ (warning)
84: if (prop[15] < 0 && toting (15))
Warning #88 toting ^ (warning)
95: if (stimer())
Warning #88 stimer ^ (warning)
98: while (!english())
Warning #88 english ^ (warning)
TURN.C: descitem()
137: if (at(i)) {
Warning #88 at ^ (warning)
TURN.C: death()
469: yea = yes(81+numdie*2, 82+numdie*2, 54);
Warning #88 yes ^ (warning)
491: }
^ unused variable definition: k (warning)
TURN.C: doobj()
503: if (fixed[object] == loc || here(object))
Warning #88 here ^ (warning)
521: else if (dcheck() && dflag >= 2) {
Warning #88 dcheck ^ (warning)
528: else if ((liq() == object && here(20)) ||
Warning #88 liq ^ (warning)
529: liqloc(loc) == object)
Warning #88 liqloc ^ (warning)
558: }
^ unused variable definition: i (warning)
TURN.C: stimer()
793: prop[20] = put(20, 115, 1);
Warning #88 put ^ (warning)
0:CGEN $CTMP2.$$$ $CTMP1.$$$
TURN.C:36: constant relational expression
TURN.C:643: constant relational expression
0:OPTIM $CTMP1.$$$ $CTMP2.$$$
0:ZAS -J -N -oTURN.OBJ $CTMP2.$$$
Z80AS Macro-Assembler V4.8
Errors: 0
Jump optimizations done: 212
Finished.
ERA $CTMP1.$$$
ERA $CTMP2.$$$
ERA $CTMP3.$$$
ERA $$EXEC.$$$
c -v -c -o verb.cHI-TECH C COMPILER (CP/M-80) V3.09
Copyright (C) 1984-87 HI-TECH SOFTWARE
0:CPP -DCPM -DHI_TECH_C -Dz80 -I VERB.C $CTMP1.$$$
0:P1 $CTMP1.$$$ $CTMP2.$$$ $CTMP3.$$$
VERB.C: vtake()
111: if (toting(object)) {
Warning #88 toting ^ (warning)
133: if (!here(20) || liq() != object) {
Warning #88 here ^ (warning)
Warning #88 liq ^ (warning)
VERB.C: vdrop()
217: else if (object == 8 && at(31) && prop[31] == 0){
Warning #88 at ^ (warning)
VERB.C: vkill()
460: if (!yes(49,0,0))
Warning #88 yes ^ (warning)
VERB.C: vthrow()
607: if (i = dcheck()) {
Warning #88 dcheck ^ (warning)
609: if (pct(33)) {
Warning #88 pct ^ (warning)
VERB.C: vfind()
669: object == liqloc(loc))
Warning #88 liqloc ^ (warning)
VERB.C: vread()
786: if (dark()) {
Warning #88 dark ^ (warning)
0:CGEN $CTMP2.$$$ $CTMP1.$$$
0:OPTIM $CTMP1.$$$ $CTMP2.$$$
0:ZAS -J -N -oVERB.OBJ $CTMP2.$$$
Z80AS Macro-Assembler V4.8
Errors: 0
Jump optimizations done: 234
Finished.
ERA $CTMP1.$$$
ERA $CTMP2.$$$
ERA $CTMP3.$$$
ERA $$EXEC.$$$
z80as rand.asZ80AS Macro-Assembler V4.8
Errors: 0
Finished.
xsub
linklink> -ptext=0,data,bss -c100h -oadvent.com \
link> crtcpm.obj advent.obj database.obj english.obj itverb.obj \
link> turn.obj verb.obj rand.obj libc.lib
(xsub active)
clock00:05:42 since the last clock call...
(xsub active)
advent
Welcome to ADVENTURE!
=====================
-Original development by Willie Crowther.
-Major features added by Don Woods.
-Conversion to BDS C by J. R. Jaeger
-Unix standardization by Jerry D. Pohl.
-OS/2 Conversion by Martin Heller
-Conversion to TurboC 2.0 by Daimler
Would you like instructions?
Success !Somewhere nearby is Colossal Cave, where others have
found fortunes in treasure and gold, though it is rumored
that some who enter are never seen again. Magic is said
to work in the cave. I will be your eyes and hands. Direct
me with commands of 1 or 2 words. I should warn you that I
look at only the first five letters of each word, so you'll
have to enter "Northeast" as "ne" to distinguish it from
"North". (Should you get stuck, type "help" for some
general hints).
You are inside a building, a well house for a large spring.
There are some keys on the ground here.
There is a shiny brass lamp nearby.
There is tasty food here.
There is a bottle of water here.
^C
-------------------
LadislauI've just tried it, it's doing some very strange things on my sc114.
first compile of advent.c seems ok
second compile database.c produces:
d:c -v -c -o database.cHI-TECH C COMPILER (CP/M-80) V3.09
Copyright (C) 1984-87 HI-TECH SOFTWARE
0:D:CPP -DCPM -DHI_TECH_C -Dz80 -I0:D: DATABASE.C $CTMP1.$$$
0:D:P1 $CTMP1.$$$ $CTMP2.$$$ $CTMP3.$$$
0:D:CGEN $CTMP2.$$$ $CTMP1.$$$
0:D:OPTIM $CTMP1.$$$ $CTMP2.$$$
0:D:ZAS -J -N -oDATABASE.OBJ $CTMP2.$$$
Z80AS Macro-Assembler V4.8
U 01A6' 21 0000 ld hl,19f
U 0392' 21 0000 ld hl,29f
U 03C1' 21 0000 ld hl,39f
O ld
N p]z4v)?Yp]Q(YxUloc
Errors: 5
then the entire directory and contents of all the files are deleted from f: dir now shows:
dirF: : : :
F: : : :
F: : : :
F: : : :
F: : : :
F: : : :
F: : : :
F: : : :
F: : : :
F: : : :
F: : : :
F: : : :
F: : : :
F: : : :
F: : : :
etc
Derek
d:linklink> -ptext=0,data,bss -c100h -oadvent.com \
advent
yes
Again,It's all working ok now bye the way.
Many thanks Derek, now I'm sure that the enhanced HiTech C is working well also on SC114.
I hope you succeeded to recover your files...
regards,
Ladislau
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 547 |
Nodes: | 16 (2 / 14) |
Uptime: | 74:22:38 |
Calls: | 10,398 |
Files: | 14,070 |
Messages: | 6,417,657 |