{"id":16164623,"url":"https://github.com/johnsonjh/exchange","last_synced_at":"2026-02-06T05:03:13.867Z","repository":{"id":42125563,"uuid":"352783320","full_name":"johnsonjh/exchange","owner":"johnsonjh","description":"exchange: Exchange is a (user space) UNIX port of CP/M-68K by Roger Ivie, useful for manipulating DRI (8\" SSSD) or P112 (3.5\" DSDD) format CP/M disk images","archived":false,"fork":false,"pushed_at":"2022-04-12T15:33:38.000Z","size":71,"stargazers_count":9,"open_issues_count":2,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-07-18T07:44:01.738Z","etag":null,"topics":["cpm","cpm-68000","cpm-68k","disk-image","exchange","p112"],"latest_commit_sha":null,"homepage":"https://github.com/johnsonjh/exchange","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/johnsonjh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null}},"created_at":"2021-03-29T21:00:19.000Z","updated_at":"2024-06-06T03:34:22.000Z","dependencies_parsed_at":"2022-09-01T06:31:56.567Z","dependency_job_id":null,"html_url":"https://github.com/johnsonjh/exchange","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/johnsonjh/exchange","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnsonjh%2Fexchange","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnsonjh%2Fexchange/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnsonjh%2Fexchange/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnsonjh%2Fexchange/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/johnsonjh","download_url":"https://codeload.github.com/johnsonjh/exchange/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnsonjh%2Fexchange/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29151590,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-06T02:39:25.012Z","status":"ssl_error","status_checked_at":"2026-02-06T02:37:22.784Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpm","cpm-68000","cpm-68k","disk-image","exchange","p112"],"created_at":"2024-10-10T02:47:17.424Z","updated_at":"2026-02-06T05:03:13.851Z","avatar_url":"https://github.com/johnsonjh.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Exchange\n\nMinimal CP/M for UNIX\n\n### Overview\n\nGreetings!\n\nThis is a utility that allows **CP/M** disk images to be manipulated under UNIX.\nIt supports disk images in either the standard _DRI_ 8\" SSSD format or the\n_P112_ 3.5\" format. Disk images can be examined and files imported and exported\nfrom them.\n\n### Sources\n\nThe source is a slightly hacked over copy of **CP/M-68K** which has been worked\nover to allow compilation on UNIX using GCC, to wit:\n\n- A handful of typecasts have been dropped in.\n- An assumption that an int is 16 bits has been fixed.\n- An assumption that chars are signed has been fixed.\n- The file `diverge.h` renames all of the globals to ensure they don't collide\n  with operating system globals.\n- I changed the way the _BDOS_ communicates with the _BIOS_; see `biosdef.h`\n- There are probably a couple of other minor changes I made that I've forgotten\n  (perhaps renaming a routine or two before I decided to make `diverge.h`).\n- A **BIOS** that allows the program to be run under UNIX.\n\nI've also added a couple of built-in commands:\n\n- _EXIT_ causes **CP/M-68K** to exit, returning to the host operating system.\n- _IMPORT_ copies a file from the current directory of the host operating system\n  into the disk image.\n- _EXPORT_ copies a file from the disk image into the current directory of the\n  host operating system.\n\n_IMPORT_ and _EXPORT_ do not accept wildcards.\n\nThis is just a quick hack that turned out to be useful, not a snazzy disk image\nmanipulation program.\n\n### Building\n\nTo build the program, execute `make`.\n\nThis results in an executable called `exchange`.\n\nThe command-line syntax is: `exchange [-p112] file.img`, where:\n\n- `-p112` This option tells the file to use the _P112_ 3.5\" disk format for the\n  image. By default, the the standard _DRI_ 8\" SSSD format is used.\n\n- `file.img` is the name of the disk image that should be used.\n\n### Usage\n\nIn this example, I copy the file `BDOS.LST` from a _DRI_ 8\" SSSD image\ncontaining **CP/M-80** 1.4 sources (obtained from\n[The Unofficial CP/M Web Site](http://cpm.z80.de/)) to _USER 1_ of the _P112_\nboot disk image (obtained from\n[The P112 Homepage](http://members.iinet.net.au/~daveb/p112/p112.html)):\n\n```text\n% uname -a\nLinux powerpc.no.domain 2.4.22-2f #1 Sun Nov 9 16:49:49 EST 2003 ppc\n% ls\nbdosPLM.img  bootdisk.img  exchange\n%./exchange bdosPLM.img\n\nA\u003edir\nA: BDOSI    SRC : BDOS     PLM : BDOS     OBJ : BDOS     LST\nA\u003eexport BDOS.LST\nexport BDOS    .LST -\u003e BDOS.LST\nA\u003eexit\n% ls\nBDOS.LST  bdosPLM.img  bootdisk.img  exchange\n%./exchange -p112 bootdisk.img\n\nA\u003euser 1\n\n1A\u003edir\nA: RECEIVE  PAS : UUENCODE PAS : UUDECODE PAS : USER     MAC : ROM    UUE\nA: ROM      PAS : ROM      COM\n1A\u003eimport bdos.lst\nimport BDOS.LST -\u003e BDOS    .LST\n1A\u003edir\nA: RECEIVE  PAS : UUENCODE PAS : UUDECODE PAS : USER     MAC : ROM    UUE\nA: ROM      PAS : ROM      COM : BDOS     LST\n1A\u003eexit\n%\n```\n\n### Conclusion\n\nEnjoy!\n\n- _Roger Ivie_ \\\u003canachronda@hotmail.com\\\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnsonjh%2Fexchange","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohnsonjh%2Fexchange","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnsonjh%2Fexchange/lists"}