• The Collosal Cave Adventure game for Z80 under CP/M

    From ladislau szilagyi@21:1/5 to All on Tue Oct 24 08:35:02 2023
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Cooper@21:1/5 to ladislau szilagyi on Thu Oct 26 08:42:03 2023
    On Tuesday, 24 October 2023 at 16:35:04 UTC+1, ladislau szilagyi wrote:
    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
    Ok thats good,

    How do I compile it ?

    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From ladislau szilagyi@21:1/5 to All on Thu Oct 26 10:54:25 2023
    Hi Derek,

    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.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.$$$
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Cooper@21:1/5 to ladislau szilagyi on Thu Oct 26 12:15:34 2023
    On Thursday, 26 October 2023 at 18:54:26 UTC+1, ladislau szilagyi wrote:
    Hi Derek,

    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.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.$$$
    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
    Next daft question, Where is your version on the C compiler. I found https://github.com/Laci1953/HiTech-C-compiler-enhanced/tree/main
    This has directories for the mentioned programs C, CCP etc, No executable in them, do i LOAD the hex files to obtain the COM file?

    I found the new CP/M Putsys files, but at some point I see mention of the SCM Rom searching for the Bank switching code from address 7f00 onwards. Do I need a modified ROM?

    I can't seen to see a set of "howto" create the New C compiler anywhere, I see the "This is what it does and the principles of how" - just no actual this is what you need to do instructions.

    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From David Schultz@21:1/5 to ladislau szilagyi on Thu Oct 26 17:19:38 2023
    On 10/24/23 10:35 AM, ladislau szilagyi wrote:
    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

    I have used several versions of the Adventure program. Beginning back
    around 1978 on a DEC System 10. It always amazed me the things they
    thought of. (For example, try siccing the bird on the dragon.)

    Then later a C version but I did finally buy a copy of the CP/M version
    to run using an 8080 simulator (com from DDJ) on CP/M-68K. I poked
    around on the old hard drive and found these files along with a version
    of the manual that I created from scans.

    http://davesrocketworks.com/electronics/cpm68/tmp/advent.zip


    --
    http://davesrocketworks.com
    David Schultz

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From ladislau szilagyi@21:1/5 to All on Thu Oct 26 20:43:48 2023
    Hi Derek,

    the boot files are here: https://github.com/Laci1953/RC2014-CPM/tree/main/BOOT

    Please let me know if you still have problems with the smaller CP/M, booting-it, or with the enhanced HiTech C compiler...

    Ladislau

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From ladislau szilagyi@21:1/5 to All on Thu Oct 26 21:05:24 2023
    Hi Derek,

    I just realized that you need a Z80 computer provided with SCM in order to store the smaller CP/M to the appropriate CF ...

    The procedure is the following: (let's say you have a SC108, running SCM, and you want to store the smaller CP/M on a 512KB RAM Z80 computer provided with ACIA and 64MB CF)

    On the SC108 computer, insert in the CF board the CF to be used on the 512KB RAM machine, boot, paste on the terminal the ACIA_PutSys_CF64_CPM_DA00H.hex file, then:

    *g8000<CR>

    Now, the CF contains a CP/M to be used on your 512KB RAM computer, you will need to move the CF on that machine.

    Seems a little complicated, but it's the only way I know so far...

    regards,
    Ladislau

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From ladislau szilagyi@21:1/5 to All on Thu Oct 26 20:39:23 2023
    Hi Derek,

    here are the details:

    1. The enhanced HiTech C
    ------------------------------------------

    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

    2. The smaller CP/M (for 128KB RAM Z80 computers) --------------------------------

    To change your CP/M with the smaller CP/M, to be able to run the enhanced HiTech C for 128KB RAM Z80 computers, select in https://github.com/Laci1953/RC2014-CPM/tree/main/PutSys the appropriate .hex file (according to your RC2014's serial type & CF size),
    and, under SCM:

    load the *_PutSys*.hex
    then
    *g8000<CR>

    Your CP/M is ready and can be booted:
    *cpm<CR>

    3. The boot ROM
    ---------------------------
    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)

    Choose the appropriate .hex file (according to your RC2014's serial type & CF size), and burn-it to an (E)EPROM, insert the EPROM to your board.
    Now, at power ON, the CP/M directly boots.

    All these details are also to be found on GitHub, by the way.
    I consider these steps very simple.
    I hope you can now try-it.

    regards,
    Ladislau




    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From ladislau szilagyi@21:1/5 to All on Thu Oct 26 21:47:00 2023
    Hi all,

    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Cooper@21:1/5 to ladislau szilagyi on Fri Oct 27 04:05:12 2023
    On Friday, 27 October 2023 at 05:47:03 UTC+1, ladislau szilagyi wrote:
    Hi all,

    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
    Hi,
    I have installed the correct version of CP/M on an SC114. It boots into cpm 2.2 ok.

    I downloaded the 128k versions of cpp p1 cgen optim z80as (cgen only had one version, no 512/128 option).
    I ran the LOAD util with each file to get the new versions of the files.

    I downloaded the adventure game and tried:

    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.$$$

    But it never gets past p1 ?

    This is my directory (with the adventure files and updated hitech files) Do they look about the same size as your files?

    a:stat *.*

    Recs Bytes Ext Acc
    5 4k 1 R/W G:$$EXEC.$$$
    220 28k 1 R/W G:$CTMP1.$$$
    9 4k 1 R/W G:$EXEC.COM
    62 8k 1 R/W G:ADVCAVE.H
    16 4k 1 R/W G:ADVDEC.H
    12 4k 1 R/W G:ADVDEF.H
    484 64k 2 R/W G:ADVENT.ARC
    69 12k 1 R/W G:ADVENT.C
    19 4k 1 R/W G:ADVENT.H
    27 4k 1 R/W G:ADVENT0.C
    139 20k 1 R/W G:ADVENT1.TXT
    49 8k 1 R/W G:ADVENT2.TXT
    42 8k 1 R/W G:ADVENT3.TXT
    139 20k 1 R/W G:ADVENT4.TXT
    37 8k 1 R/W G:ADVTEXT.H
    38 8k 1 R/W G:ADVWORD.H
    4 4k 1 R/W G:ASSERT.H
    152 20k 1 R/W G:C.COM
    369 48k 2 R/W G:CGEN.COM
    154 20k 1 R/W G:CNEW.COM
    5 4k 1 R/W G:CONIO.H
    28 4k 1 R/W G:CPM.H
    223 28k 1 R/W G:CPP.COM
    132 20k 1 R/W G:CREF.COM
    3 4k 1 R/W G:CRTCPM.OBJ
    7 4k 1 R/W G:CTYPE.H
    50 8k 1 R/W G:DATABASE.C
    106 16k 1 R/W G:DEBUG.COM
    94 12k 1 R/W G:DEHUFF.COM
    24 4k 1 R/W G:ENGLISH.C
    3 4k 1 R/W G:EXEC.H
    17 4k 1 R/W G:FLOAT.H
    1535 192k 6 R/W G:HITECH.ARC
    16 4k 1 R/W G:HITECH.H
    31 4k 1 R/W G:ITVERB.C
    477 60k 2 R/W G:LIBC.LIB
    199 28k 1 R/W G:LIBF.LIB
    141 20k 1 R/W G:LIBR.COM
    6 4k 1 R/W G:LIMITS.H
    235 32k 1 R/W G:LINK.COM
    4 4k 1 R/W G:MATH.H
    191 24k 1 R/W G:OBJTOHEX.COM
    272 36k 2 R/W G:OPTIM.COM
    6 4k 1 R/W G:OPTIONS
    340 44k 2 R/W G:P1.COM
    0 0k 1 R/W G:QUIT.COM
    7 4k 1 R/W G:RAND.AS
    7 4k 1 R/W G:READ.ME
    11 4k 1 R/W G:README.TXT
    6 4k 1 R/W G:RRTCPM.OBJ
    2 4k 1 R/W G:SETJMP.H
    9 4k 1 R/W G:SIGNAL.H
    6 4k 1 R/W G:STAT.H
    2 4k 1 R/W G:STDARG.H
    3 4k 1 R/W G:STDDEF.H
    20 4k 1 R/W G:STDIO.H
    8 4k 1 R/W G:STDLIB.H
    10 4k 1 R/W G:STRING.H
    8 4k 1 R/W G:SYS.H
    7 4k 1 R/W G:TIME.H
    117 16k 1 R/W G:TURN.C
    6 4k 1 R/W G:UNIXIO.H
    96 12k 1 R/W G:VERB.C
    202 28k 1 R/W G:ZAS.COM
    Bytes Remaining On G: 7192k

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From ladislau szilagyi@21:1/5 to All on Fri Oct 27 05:11:00 2023
    Hi Derek,

    let's check, step by step...

    First, your CP/M. (I suppose that's the problem...)

    Try this:

    zsid
    ZSID 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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Cooper@21:1/5 to ladislau szilagyi on Fri Oct 27 05:39:33 2023
    On Friday, 27 October 2023 at 13:11:01 UTC+1, ladislau szilagyi wrote:
    Hi Derek,

    let's check, step by step...

    First, your CP/M. (I suppose that's the problem...)

    Try this:

    zsid
    ZSID 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
    Not what I get, this is mine, i used SCM to upload the file ACIA_PutSys_CF64_CPM_DA00H.hex

    *cpm
    RC2014 CP/M BIOS 1.2 by G. Searle 2007-18

    CP/M 2.2 Copyright 1979 (c) by Digital Research

    zsid
    ZSID VERS 1.4
    #lf000
    F000 JP F0E0
    F003 JP F163
    F006 JP F1CB
    F009 JP F1F3
    F00C JP F222
    F00F JP F20A
    F012 JP F216
    F015 JP F1E8
    F018 JP F268
    F01B JP F240
    F01E JP F274
    #lff4e
    FF4E NOP
    FF4F NOP
    FF50 NOP
    FF51 NOP
    FF52 NOP
    FF53 NOP
    FF54 NOP
    FF55 NOP
    FF56 NOP
    FF57 NOP
    FF58 NOP

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From ladislau szilagyi@21:1/5 to All on Fri Oct 27 07:07:50 2023
    Hi Derek,
    please download again the optim128.hex... I updated it 10 minutes ago

    the sizes should be:

    CGEN COM 48k 369
    CPP COM 28k 223
    P1 COM 44k 340
    OPTIM COM 36k 258

    Ladislau

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From ladislau szilagyi@21:1/5 to All on Fri Oct 27 06:15:54 2023
    Oh, I did not know you have ACIA...

    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From ladislau szilagyi@21:1/5 to All on Fri Oct 27 06:58:26 2023
    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?

    Ladislau

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Cooper@21:1/5 to ladislau szilagyi on Fri Oct 27 06:43:16 2023
    On Friday, 27 October 2023 at 14:15:56 UTC+1, ladislau szilagyi wrote:
    Oh, I did not know you have ACIA...

    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
    My version is:

    Small Computer Monitor by Stephen C Cousins (www.scc.me.uk)
    Configuration S2 20220227, Monitor 1.3.0, SCZ80 BIOS 1.3.0

    I think this looks ok
    my CP instruction checks for $2c :
    051E: FE 2C ., CP $2C

    the listings:
    *d69
    0069: C3 23 01 .#. JP $0123
    006C: C3 23 04 .#. JP $0423
    006F: C3 48 03 .H. JP $0348
    0072: C3 5E 03 .^. JP $035E
    0075: C3 1F 01 ... JP $011F
    0078: C3 00 00 ... JP $0000
    007B: C3 19 05 ... JP $0519
    007E: C3 21 01 .!. JP $0121
    0081: C3 1F 01 ... JP $011F
    0084: C3 1F 01 ... JP $011F
    0087: C3 1F 01 ... JP $011F
    008A: C3 1F 01 ... JP $011F
    008D: C3 1F 01 ... JP $011F
    0090: C3 1F 01 ... JP $011F
    0093: C3 1F 01 ... JP $011F
    0096: C3 1F 01 ... JP $011F
    0099: C3 25 01 .%. JP $0125
    009C: C3 25 01 .%. JP $0125
    009F: C3 25 01 .%. JP $0125
    00A2: C3 25 01 .%. JP $0125
    *d0519
    0519: 21 2B 05 !+. LD HL,$052B
    051C: 47 G LD B,A
    051D: 79 y LD A,C
    051E: FE 2C ., CP $2C
    0520: D0 . RET NC
    0521: 78 x LD A,B
    0522: 06 00 .. LD B,$00
    0524: 09 . ADD HL,BC
    0525: 09 . ADD HL,BC
    0526: 46 F LD B,(HL)
    0527: 23 # INC HL
    0528: 66 f LD H,(HL)
    0529: 68 h LD L,B
    052A: E9 . JP (HL)
    052B: 78 x LD A,B
    052C: 02 . LD (BC),A
    052D: 48 H LD C,B
    052E: 03 . INC BC
    052F: 23 # INC HL
    0530: 04 . INC B
    *

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Cooper@21:1/5 to ladislau szilagyi on Fri Oct 27 07:11:45 2023
    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?

    Ladislau
    My 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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Cooper@21:1/5 to Derek Cooper on Fri Oct 27 07:24:21 2023
    On Friday, 27 October 2023 at 15:11:47 UTC+1, Derek Cooper wrote:
    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?

    Ladislau
    My 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

    I checked the sizes after downloading and LOADing again.
    369 48k 2 R/W G:CGEN.COM
    223 28k 1 R/W G:CPP.COM
    258 36k 2 R/W G:OPTIM.COM
    340 44k 2 R/W G:P1.COM

    They look ok to me. It was the P1.COM file that failed not optim.com

    if i run just optim.com it responds with nothing or if i give it a filename (not a real one) it responds not found.
    if i run p1.com the system locks until reset

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From ladislau szilagyi@21:1/5 to All on Fri Oct 27 07:27:15 2023
    Hi Derek,

    I must rebuild P1, CGEN & OPTIM, for SC114.

    Can you please list also the $1F9C routine?

    Ladislau

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From ladislau szilagyi@21:1/5 to All on Fri Oct 27 07:23:18 2023
    Hi Derek,

    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Cooper@21:1/5 to ladislau szilagyi on Fri Oct 27 07:26:43 2023
    On Friday, 27 October 2023 at 15:23:20 UTC+1, ladislau szilagyi wrote:
    Hi Derek,

    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
    the $1f9c code is:*d1f9c
    1F9C: 0E 30 .0 LD C,$30
    1F9E: 06 01 .. LD B,$01
    1FA0: ED 41 .A OUT (C),B
    1FA2: 12 . LD (DE),A
    1FA3: 05 . DEC B
    1FA4: ED 41 .A OUT (C),B
    1FA6: C9 . RET
    1FA7: ED B0 .. LDIR
    1FA9: C9 . RET

    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From ladislau szilagyi@21:1/5 to All on Fri Oct 27 07:32:04 2023
    Thanks Derek,

    now, back to the source code...

    I will notify you after finishing the modifications needed for SC114... it will take some time :(

    Ladislau

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Cooper@21:1/5 to ladislau szilagyi on Fri Oct 27 07:37:33 2023
    On Friday, 27 October 2023 at 15:32:05 UTC+1, ladislau szilagyi wrote:
    Thanks Derek,

    now, back to the source code...

    I will notify you after finishing the modifications needed for SC114... it will take some time :(

    Ladislau
    ok thanks,

    When your ready I will test it foe you - no problem. And no rush.

    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From ladislau szilagyi@21:1/5 to All on Fri Oct 27 12:17:11 2023
    Hi Derek,

    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Cooper@21:1/5 to ladislau szilagyi on Fri Oct 27 13:19:56 2023
    On Friday, 27 October 2023 at 20:17:13 UTC+1, ladislau szilagyi wrote:
    Hi Derek,

    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
    Thanks,
    I give them a go tomorrow, about to out.

    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Zbig@21:1/5 to All on Fri Oct 27 15:03:02 2023
    Compilation of the game seems to be quite an adventure…

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From ladislau szilagyi@21:1/5 to All on Fri Oct 27 20:42:10 2023
    Pe sâmbătă, 28 octombrie 2023, la 01:03:03 UTC+3, Zbig a scris:
    Compilation of the game seems to be quite an adventure…

    @Zbig: well, it might seem an adventure, but this whole "adventure" was caused because:

    - the "original" HiTech C fails compiling the game files
    - I neglected to include, for my enhanced HiTech C, a decent "install procedure instructions" text file (fixed !)
    - the appropriate HiTech executables for Derek's hardware (SC114) were missing from my GitHub page (fixed !)

    But, at the end, this only confirms the fact that an installation kit of a software product must cover all hardware variants and also contain a user guide.

    thanks,
    Ladislau

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Cooper@21:1/5 to ladislau szilagyi on Sat Oct 28 04:07:43 2023
    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.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()
    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.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 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.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 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.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 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.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 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.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 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.as
    Z80AS Macro-Assembler V4.8

    Errors: 0
    Finished.

    xsub

    link
    link> -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)
    clock
    00: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 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

    -------------------

    Ladislau
    I'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.c
    HI-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:
    dir
    F: : : :
    F: : : :
    F: : : :
    F: : : :
    F: : : :
    F: : : :
    F: : : :
    F: : : :
    F: : : :
    F: : : :
    F: : : :
    F: : : :
    F: : : :
    F: : : :
    F: : : :
    etc

    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From ladislau szilagyi@21:1/5 to All on Sat Oct 28 03:25:31 2023
    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.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()
    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.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 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.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 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.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 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.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 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.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 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.as
    Z80AS Macro-Assembler V4.8

    Errors: 0
    Finished.

    xsub

    link
    link> -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)
    clock
    00: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 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

    -------------------

    Ladislau

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From ladislau szilagyi@21:1/5 to All on Sat Oct 28 05:48:22 2023
    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:

    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

    BUT, then, I erased the HiTech C from F: (let's see, the HiTech C executables, from where are they loaded ?)

    era c.com
    era cpp.com
    era cgen.com
    era optim.com
    era zas.com

    then, I tried exactly what you did:

    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:

    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:

    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

    era boot.obj

    (OK, I have now space for 3 more files)

    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 ...)

    era siotst.obj
    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)

    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From ladislau szilagyi@21:1/5 to All on Sat Oct 28 05:52:34 2023
    Again,
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Cooper@21:1/5 to Derek Cooper on Sat Oct 28 05:41:37 2023
    On Saturday, 28 October 2023 at 12:07:45 UTC+1, Derek Cooper wrote:
    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.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()
    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.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 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.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 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.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 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.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 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.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 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.as
    Z80AS Macro-Assembler V4.8

    Errors: 0
    Finished.

    xsub

    link
    link> -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)
    clock
    00: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 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

    -------------------

    Ladislau
    I'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.c
    HI-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:
    dir
    F: : : :
    F: : : :
    F: : : :
    F: : : :
    F: : : :
    F: : : :
    F: : : :
    F: : : :
    F: : : :
    F: : : :
    F: : : :
    F: : : :
    F: : : :
    F: : : :
    F: : : :
    etc

    Derek
    Success !
    (after a new CF-card....)


    d:link
    link> -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 d:libc.lib

    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?

    yes


    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.


    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Cooper@21:1/5 to ladislau szilagyi on Mon Oct 30 02:56:50 2023
    On Saturday, 28 October 2023 at 13:52:35 UTC+1, ladislau szilagyi wrote:
    Again,
    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
    It's all working ok now bye the way.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)