Comments (10)
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.
Basically you need to do this:
- Find out where the BDOS and BIOS of RunCPM are located. The INFO command on the disk A.ZIP chows you that.
- Verify on the source code of CCPZ if these are referenced there and adjust accordingly.
- 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.
- 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.
- Verify if Z80ASM builds it with no errors. Maybe you will need a specific assembler to do so.
- 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.
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.
Damn ... I couldn't resist ... lol:
- Copy the source code to a disk.
- Rename CCPZ.MAC to CCPZ.Z80
- Comment out the first 10 lines of the code, except the ORG
- 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.
Correction ... the offset for the $$$.SUB FCB is 0x7A
from runcpm.
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.
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.
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.
Sorry... closing was a pure accidentally clicking the wrong place error...
from runcpm.
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)
- Build errors in cpm.h HOT 4
- Allow RunCPM to be used as a Github Action for SUBMIT jobs. HOT 4
- COPY program HOT 5
- Transverse (copy/execute) between slices HOT 1
- Going Crazt HOT 4
- CCP-ZCP3.60K HOT 1
- Feature request: Console on ESP32 TTL Serial port HOT 9
- BASIC/Z compiler not supported HOT 3
- NULU open lbr files does not work HOT 9
- saving/loading Problem with HEBAS under RunCPM HOT 2
- Bdos Err on M: Select when I try ASM DUMP.ASM HOT 2
- ESP32-Wrover kit freeze HOT 8
- Request: Simple variation on LED.BAS as a Hello World using BDOS 9 HOT 3
- [Q] Difference for RunCPM between TYPE and TYPE in a .SUB? HOT 4
- [Q] How about updateing to LUA v5.4.6? HOT 2
- Command switch to select base virtual-disk directory HOT 2
- Builds break after moving Lua in git submodule HOT 1
- Z80ASM (and M80) hang HOT 4
- 8085 and APU/FPU HOT 3
- Unable to build latest main branch HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from runcpm.