Skip to content

Releases: skx/cpmulator

v0.7.0

21 May 14:13
@skx skx
Compare
Choose a tag to compare

This release improves our CCP support, and adds a couple more syscalls:

  • There are now two embedded CCP implementations available
    • "ccp" - the default, from Digital Research
    • "ccpz" - An alternative, and enhanced replacement.
      • This has support for working SUBMIT.COM.
  • I've added support for more syscalls.
    • Console, Aux, and Printer status. Nothing too likely to be useful.
  • The console input layer has been improved.
    • We still use stty for setting the console into the appropriate echo/no-echo state, but now we don't do that excessively.
    • The console "read line" implementation now reboots CP/M, as it should, when you press Ctrl-C twice in a row. (Once is traditional, but seems too likely to happen by accident.)
  • A new -version flag has been added.
    • Run cpmulator -help to see all available CLI flags.

What's Changed

This is a list of pull-requests merged:

  • Added "LIST" to BIOS functions. by @skx in #74
  • Allow multiple CCPs by @skx in #77
  • Implement more syscalls by @skx in #79
  • Tty by @skx in #80
  • Allow Ctrl-C to reboot, at the CCP by @skx in #83
  • Allow SUBMIT to work by @skx in #81

Full Changelog

You can see a complete list of changes between this and the previous release here:

v0.6.0...v0.7.0

v0.6.0

16 May 02:16
@skx skx
Compare
Choose a tag to compare

This release features a temporary regression, releases for Microsoft Windows will not work. This is because of the way that I changed the console input handling - and now we cheat by invoking stty to disable echoing of characters.

That said for the Mac, Linux, and Unix users this is a significant release, as we've improved our functionality a lot - cpmulator can now run many more applications which it couldn't in the past, including:

  • Borland's Turbo Pascal.
  • Wordstar.

The CCP no longer exits when child processes attempt a warm/cold boot either, making the interactive experience much nicer.

Finally the CLI executable has received a number of new command-line flags, which you can see via cpmulator -help.

What's Changed

  • Improvements to drive-handling in FCBs by @skx in #56
  • Resolve issues with STAT.COM by @skx in #57
  • Improve logging .. by @skx in #58
  • Add an input test binary by @skx in #59
  • Updated dependencies by @skx in #61
  • Allow turbo-pascal-compiled binaries to run by @skx in #62
  • Added CLI flag to dump syscalls by @skx in #63
  • Added command-line arguments for printer/logfile-paths. by @skx in #66
  • Resolved confusion about BDOS vs BIOS by @skx in #69
  • Implement F_SIZE by @skx in #70
  • Cap the drive at P, naturally. by @skx in #71
  • Trap warm/cold-boots. by @skx in #73

Full Changelog: v0.5.0...v0.6.0

v0.5.0

28 Apr 08:11
@skx skx
Compare
Choose a tag to compare

What's Changed

  • This release is now capable of running the Microsoft BASIC interpreter.
    • Support was added in #51.
  • Our console input was unified into a new sub-package, and gained better support for polling for pending input.
  • The documentation was updated to include a complete list of all the environmental variables that may be used to influence behaviour.
  • Finally the companion repository was updated to include three BASIC interpreters

Full Changelog: v0.4.0...v0.5.0

v0.4.0

24 Apr 17:07
@skx skx
9365f43
Compare
Choose a tag to compare

What's Changed

  • Implement F_RENAME by @skx in #43
  • Allow erasing multiple files by @skx in #44
  • Improve globbing. by @skx in #46
  • Cleanup the most obvious issues in syscalls by @skx in #47
  • Allowing the Aztec C-compiler to work - SysCallWriteRand was broken by @skx in #48

Full Changelog: v0.3.0...v0.4.0

v0.3.0

22 Apr 03:32
@skx skx
Compare
Choose a tag to compare

This release overhauls our operation in two significant ways:

  • When launching the emulator with no arguments you now get the CCP (i.e. command-prompt).
    • Enter "EXIT", "HALT", or "QUIT" to exit.
  • It is now possible to map drives to sub-directories, which is useful for the CCP-mode.

Launch the emulator with the "-directories" flag, and the contents of ./A will be used as the A: drive, the directory ./B will be shown on the B: drive, etc.

v0.2.0

16 Apr 03:12
@skx skx
6f536c5
Compare
Choose a tag to compare

This release implements three additional CP/M BIOS functions

  • BDOS function 13 (DRV_ALLRESET) - Reset discs
  • BDOS function 20 (F_READ) - read next record
  • BDOS function 21 (F_WRITE) - write next record

Previously only the only file-reading function implemented was F_READRAND, which read a "random" block (i.e. not a sequential read, but a read from a given block offset)

F_READ and F_WRITE are used to sequentially read, or write, fixed records of 128 bytes to the file that was previously opened, or created. With these two functions implemented the save and restore functions of the ZORK games now work correctly.

v0.1.1

15 Apr 16:46
@skx skx
Compare
Choose a tag to compare

This is the first release of the cpmulator which is somewhat functional:

  • Text output and text input functions are implemented.
    • Punchcard functions, and printer functions, are ignored.
  • File creation, and file deletion are implemented.
  • Files can be opened, closed, and read via "RandomRead"
    • "Random Reading" means that records of 128 bytes can be read from an open file, in any order.
    • CP/M implements both "random reading" and "sequential reading". However Z-Machine games only requires the former.

This might not seem like much functionality, however it is sufficient to play the ZMachine games from Infocom. If you don't have them you can download them from the internet, for example this directory and play them:

$ cpmulator ZORK1.COM
ZORK I: The Great Underground Empire
Copyright (c) 1981, 1982, 1983 Infocom, Inc. All rights
reserved.

ZORK is a registered trademark of Infocom, Inc.
Revision 88 / Serial number 840726

West of House
You are standing in an open field west of a white house, with
a boarded front door.
There is a small mailbox here.

>open mailbox
Opening the small mailbox reveals a leaflet.

>read leaflet
(Taken)
"WELCOME TO ZORK!

ZORK is a game of adventure, danger, and low cunning. In it
you will explore some of the most amazing territory ever seen
by mortals. No computer should be without one!"