-
Notifications
You must be signed in to change notification settings - Fork 10
Description
I was working on a browser-based CP/M Z80 system, and came across your compiler collection after getting turbo pascal and some others working.
my project is at: https://github.com/lockboot/desktop/tree/main/win95-sim
one feature I like is I can add read-only 'overlays' to a drive, so my A: drive I may load cpm22 and bds-c and whatever else, and they're available to use without unzipping the package .zip
I was going to build some packages using your compiler collection, but would you be open to a pull request that adds metadata files and a tool to create & validate package .zip files?
Currently the package spec looks like:
packages/
my-package/
manifest.mf # Package definition (JSON)
TOOL.COM # CP/M binaries
TOOL.DOC # Documentation (optional)
my-package.test.ts # Tests (optional)
You can even associate 'actions' with file patterns, to run templated SUBMIT batch commands, or expect style scripts as I did with turbo-pascal below, this means when I drag the turbo pascal 3 zip onto the emulator it becomes available, and if I open a .PAS file in the IDE it shows 'Turbo Pascal 3' in the dropdown next to the 'build & run' button, and the package becomes available under the 'compiler' section of the programs menu, for example:
{
"id": "turbo-pascal-3",
"name": "Turbo Pascal",
"version": "3.0",
"description": "Borland Turbo Pascal 3.0 compiler for CP/M",
"files": [
{ "src": "TURBO.COM" },
{ "src": "TURBO.MSG" },
{ "src": "TURBO.OVR" },
{ "src": "TINST.COM" },
{ "src": "TINST.DTA" },
{ "src": "TINST.MSG" }
],
"meta": {
"type": "compiler"
},
"actions": [
{
"id": "turbop3",
"name": "Turbo Pascal 3",
"command": "TURBO",
"patterns": ["*.PAS"],
"outputExts": ["COM"],
"interactiveScript": [
{ "wait": "(Y/N)?", "send": "Y" },
{ "wait": "E)dit", "send": "W" },
{ "wait": "Work file name:", "send": "{drive}:{name}.PAS\r" },
{ "wait": "Loading", "send": "O" },
{ "wait": "(Q)uit", "send": "C" },
{ "wait": ")om-file", "send": "Q" },
{ "wait": ">", "send": "C" },
{ "wait": "Compiling", "send": "Q" }
]
}
]
}