Giter VIP home page Giter VIP logo

Comments (10)

MockbaTheBorg avatar MockbaTheBorg commented on August 21, 2024 1

Cool ... after some testing I will probably make CCPZ the default.

On Sat, Sep 24, 2016 at 10:05 AM, yeti [email protected] wrote:

This was the reason to think about running CCPZ:

C>user 1
C1>c
HI-TECH C COMPILER (CP/M-80) V3.09
Copyright (C) 1984-87 HI-TECH SOFTWARE
c> ^C
RunCPM Version 2.7 (CP/M 2.2 64K)

C1>dir
No File
C1>_

Noticing the "Change to Internal CCP search path" commit
71ba8e5
I thought playing with CCPZ's way to do it would make sense...


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
#37 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AP_Gi6VHecHlUfqKZMzm6HurI1oh6x1mks5qtS4RgaJpZM4KFn85
.

from runcpm.

MockbaTheBorg avatar MockbaTheBorg commented on August 21, 2024

Basically you need to do this:

  1. Find out where the BDOS and BIOS of RunCPM are located. The INFO command on the disk A.ZIP chows you that.
  2. Verify on the source code of CCPZ if these are referenced there and adjust accordingly.
  3. Normally the CCP is located on BDOS - XXXX ... you may need to figure out this XXXX from its source code and then adjust CCPZ's ORG accordingly.
  4. Once you have the source code ready (sometimes the modifiable values go on a LIB file which is inserted by the assembler source code, not on the source code itself.
  5. Verify if Z80ASM builds it with no errors. Maybe you will need a specific assembler to do so.
  6. If all things are good, build it and give it a try.

You will have to look inside the binary where the $$$.SUB fcb ends up after built, so you can adjust RunCPM's BatchFCB define accordingly, or else SUBMIT wont work, but this is only after you have it running already.

To be on the safe side, I recommend getting the latest source code, as I made many changes last night, setting it to 60K, which was the usual "maximum" in those days, and going from there.
Only after you get it working on 60K you should try 64K.

Once you have everything working fine ... share it ... :)

I won't be able to take a look at this CCP until much later today, by then I believe you will have made it work already ... :)

Good luck.

from runcpm.

MockbaTheBorg avatar MockbaTheBorg commented on August 21, 2024

After a quick look at the CFGCCPZ.LIB: both "bioslen" and "bdoslen" are 0200h.
Also, it looks like you can just dump the CFG file and modify the asm code directly.
This thing is VERY similar to ZCPR2.

from runcpm.

MockbaTheBorg avatar MockbaTheBorg commented on August 21, 2024

Damn ... I couldn't resist ... lol:

  1. Copy the source code to a disk.
  2. Rename CCPZ.MAC to CCPZ.Z80
  3. Comment out the first 10 lines of the code, except the ORG
  4. Set the ORG to 0e400h for 60k or 0f400h for 64k
    Build with A:Z80ASM CCPZ, it should build with no errors.
    The offset for the $$$.SUB FCB is 0x7C

from runcpm.

MockbaTheBorg avatar MockbaTheBorg commented on August 21, 2024

Correction ... the offset for the $$$.SUB FCB is 0x7A

from runcpm.

drawkula avatar drawkula commented on August 21, 2024

I just wanted to start by copying L80 and M80 and asking a:info but you were faster.
Let's see what I can get with Z80ASM...

...a while later:

CP/M 2.2 Emulator v2.7 by Marcelo Dantas
      Build Sep 24 2016 - 15:31:48
-----------------------------------------
CCP: CCPZ.64K Loaded at 0xf400

RunCPM Version 2.7 (CP/M 2.2 64K)

A>user 1
A1>_

I defined CCPZ directly after CCP-DR in globals.h because they are close relatives.

Now I need to do some more tests with it...

CP/M 2.2 Emulator v2.7 by Marcelo Dantas
      Build Sep 24 2016 - 15:42:32
-----------------------------------------
CCP: CCPZ.64K Loaded at 0xf400

RunCPM Version 2.7 (CP/M 2.2 64K)

A>c:
C>submit hello

RunCPM Version 2.7 (CP/M 2.2 64K)

C$; CREATE HELLO.COM
C$C HELLO.C
HI-TECH C COMPILER (CP/M-80) V3.09
Copyright (C) 1984-87 HI-TECH SOFTWARE

RunCPM Version 2.7 (CP/M 2.2 64K)

C>hello
hello, world

RunCPM Version 2.7 (CP/M 2.2 64K)

C>_

Sweet... ;-)

Even submit seems to work... \o/

Off topic question: Is the "RunCPM Version 2.7 (CP/M 2.2 64K)" line really needed so frequently?

...and I confess: So far I only tested CCPZ.64K...


I added the binaries to the thread start to keep all downloads in one place.

from runcpm.

drawkula avatar drawkula commented on August 21, 2024

This was the reason to think about running CCPZ:

C>user 1
C1>c
HI-TECH C COMPILER (CP/M-80) V3.09
Copyright (C) 1984-87 HI-TECH SOFTWARE
c> ^C
RunCPM Version 2.7 (CP/M 2.2 64K)

C1>dir
No File
C1>_

Stuff in C0: is accessable from C1:.

Noticing the "Change to Internal CCP search path" commit I thought playing with CCPZ's way to do it would make sense...

But it turns out that Hi Tech C is not a good example to show why having C0: in the search order is a good thing:

C1>dir
MYHI    .C    |  MYHI    .SUB
C1>c myhi.c
HI-TECH C COMPILER (CP/M-80) V3.09
Copyright (C) 1984-87 HI-TECH SOFTWARE
Can't execute $EXEC
RunCPM Version 2.7 (CP/M 2.2 64K)

C1>dir
$$EXEC  .$$$  |  MYHI    .C    |  MYHI    .SUB
C1>_

:-(

Hi Tech C's handling of temporary files gets screwed...

...it'll take some time to dig out old CP/M memories to explore that further...

Wordstar does it better:

E>dir
VIDATT  .Z80  |  WS      .BAK  |  WS      .COM  |  WS      .OVR
WS      .PRN  |  WSCHANGE.COM  |  WSCHANGE.OVR  |  WSCHHELP.OVR
WSHELP  .OVR  |  WSMSGS  .OVR  |  WSPRINT .OVR  |  WSPRINT .TST
WSREADME.BAK  |  WSREADME.TXT  |  WSSHORT .OVR  |  WSU     .COM
>user 1
E1>dir
No File
E1>ws

Wordstar starts:

_                     WordStar, CP/M Edition, Release 4                         
                           O P E N I N G   M E N U
     D open a document                    L change logged drive/user
     N open a nondocument                 C protect a file
     P print a file                       E rename a file
     M merge print a file                 O copy a file
     S check spelling of document         Y delete a file
     I index a document                   F turn directory off
     T table of contents                Esc shorthand 
     X exit WordStar                      R run a program
     J help
DIRECTORY   Drive E1

...so it is able to grab WS.OVR from E0:.

This allows keeping my texts in E1: while using WS.

Originally this workflow should be demonstrated with Hi Tech C... :-/


...to get the Hi Tech C question solved doping (a.k.a. reading the Z80DOC.TXT manual... page 130) helped a lot!

Hi Tech C wants a pointer to where it lives in the user's work area in a file called ENVIRON:

C1>type myhi.c
#include "stdio.h"
main()
{
        printf("Hi, RunCPM!\n");
}

C1>type environ
HITECH=0:C:

C1>c myhi.c
HI-TECH C COMPILER (CP/M-80) V3.09
Copyright (C) 1984-87 HI-TECH SOFTWARE

RunCPM Version 2.7 (CP/M 2.2 64K)

C1>myhi
Hi, RunCPM!

RunCPM Version 2.7 (CP/M 2.2 64K)

C1>_

from runcpm.

drawkula avatar drawkula commented on August 21, 2024

Houston, weI have a problem...

submit hates me:

A>submit ccpz

RunCPM Version 2.7 (CP/M 2.2 64K)

A$; BUILD CCPZ.Z80 INTO CCP-CCPZ.BIN
A$ERA CCPZ.COM
No File
A$Z80ASM CCPZ

Z80ASM Copyright (C) 1983-86 by SLR Systems Rel. 1.32 #RunCPM

 CCPZ
End of file Pass 1
Non-Standard COM File
 0 Error(s) Detected.
 2031 Absolute Bytes. 235 Symbols Detected.


RunCPM Version 2.7 (CP/M 2.2 64K)

A$ERA CCP-CCPZ.BIN
CCP-CCPZ.BIN
A$REN CCP-CCPZ.BIN=CCPZ.COM
A>c:
C>type hello.sub
; create hello.com
c hello.c
hello


C>submit hello

RunCPM Version 2.7 (CP/M 2.2 64K)

C>_

ccpz.sub (I only added the era-lines) works on A:.
hello.sub on C: does not.
I have no idea where to go on with searching.


Strange: In #37 (comment) submit hello worked.

from runcpm.

drawkula avatar drawkula commented on August 21, 2024

Sorry... closing was a pure accidentally clicking the wrong place error...

from runcpm.

MockbaTheBorg avatar MockbaTheBorg commented on August 21, 2024

I suspect the issue may be on my CheckSub function. It looks for the $$$.sub from the FCB defined by BatchFCB offset. If that FCB gets its drive modified for some reason, then it may make the CCP think the $$$.SUB is not present in A:
Also, it should look for $$$.SUB on user area 0 of drive .

Making it look like this made the "submit hello" work:

uint8 _CheckSUB(void) {
    _HostnameToFCB(tmpFCB, (uint8*)"$$$.SUB");
    _RamWrite(tmpFCB, 1); // Forces $$$ to be checked on drive A:
    return((_SearchFirst(tmpFCB, FALSE) == 0x00) ? 0xFF : 0x00);
}

but this is less than optimal. A good, more definitive solution, should make sure all accesses to $$$.SUB (using BatchFCB) would always refer to a file on A: user area 0.
I will close this one as it started as a different subject (which is solved), and open another one.

from runcpm.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.