Skip to content

Commit

Permalink
Merge pull request #205 from davidgiven/refactor
Browse files Browse the repository at this point in the history
Move the output images into their own directory, as they are getting to be quite a lot of them.
  • Loading branch information
davidgiven authored Nov 17, 2024
2 parents 13c4fc9 + dcec89a commit 4608741
Show file tree
Hide file tree
Showing 4 changed files with 123 additions and 116 deletions.
66 changes: 33 additions & 33 deletions .github/workflows/ccpp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,42 +27,42 @@ jobs:
# limit-access-to-actor: true

- name: make
run: make LLVM=$HOME/llvm-mos/bin -j`nproc` +all +mametest
run: make LLVM=$HOME/llvm-mos/bin +all +mametest

- name: Upload build artifacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: ${{ github.event.repository.name }}.${{ github.sha }}
path: |
apple2e.po
apple2e_b.po
atari800.atr
atari800b.atr
atari800c.atr
atari800hd.atr
atari800xlhd.atr
bbcmicro.ssd
c64.d64
diskdefs
kim-1-iec.zip
kim-1-k1013.zip
kim-1-sdcard.zip
neo6502.zip
oric.dsk
osi400f.os8
osi400mf.os5
osi500f.os8
osi500mf.os5
osi600f.os8
osi600mf.os5
osif-b.os8
osimf-b.os5
osimf-c.os5
osimf-d.os5
osiserf.os8
pet4032.d64
pet8032.d64
pet8096.d64
snes.smc
x16.zip
images/apple2e.po
images/apple2e_b.po
images/atari800.atr
images/atari800b.atr
images/atari800c.atr
images/atari800hd.atr
images/atari800xlhd.atr
images/bbcmicro.ssd
images/c64.d64
images/diskdefs
images/kim-1-iec.zip
images/kim-1-k1013.zip
images/kim-1-sdcard.zip
images/neo6502.zip
images/oric.dsk
images/osi400f.os8
images/osi400mf.os5
images/osi500f.os8
images/osi500mf.os5
images/osi600f.os8
images/osi600mf.os5
images/osif-b.os8
images/osimf-b.os5
images/osimf-c.os5
images/osimf-d.os5
images/osiserf.os8
images/pet4032.d64
images/pet8032.d64
images/pet8096.d64
images/snes.smc
images/x16.zip
67 changes: 34 additions & 33 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,39 +44,40 @@ jobs:
token: ${{ github.token }}
tag: dev
assets: |
apple2e.po
apple2e_b.po
atari800.atr
atari800b.atr
atari800c.atr
atari800hd.atr
atari800xlhd.atr
bbcmicro.ssd
c64.d64
kim-1-iec.zip
kim-1-k1013.zip
kim-1-sdcard.zip
nano6502.img
nano6502_sysonly.img
neo6502.zip
oricatmos.dsk
osi400f.os8
osi400mf.os5
osi500f.os8
osi500mf.os5
osi600f.os8
osi600mf.os5
osif-b.os8
osimf-b.os5
osimf-c.os5
osimf-d.os5
osiserf.os8
pet4032.d64
pet8032.d64
pet8096.d64
snes.smc
vic20.d64
x16.zip
images/apple2e.po
images/apple2e_b.po
images/atari800.atr
images/atari800b.atr
images/atari800c.atr
images/atari800hd.atr
images/atari800xlhd.atr
images/bbcmicro.ssd
images/c64.d64
images/kim-1-iec.zip
images/kim-1-k1013.zip
images/kim-1-sdcard.zip
images/nano6502.img
images/nano6502_sysonly.img
images/neo6502.zip
images/oricatmos.dsk
images/osi400f.os8
images/osi400mf.os5
images/osi500f.os8
images/osi500mf.os5
images/osi600f.os8
images/osi600mf.os5
images/osiserv.os8
images/osif-b.os8
images/osimf-b.os5
images/osimf-c.os5
images/osimf-d.os5
images/osiserf.os8
images/pet4032.d64
images/pet8032.d64
images/pet8096.d64
images/snes.smc
images/vic20.d64
images/x16.zip
fail-if-no-assets: false

- name: release
Expand Down
40 changes: 23 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,19 +100,19 @@ You have two options:

To build it, you will need the [llvm-mos](https://llvm-mos.org) toolchain.
CP/M-65 support is available out of the box. Once installed, you should just be
able to run the Makefile and you'll get bootable disk images for the Commodore
64 (with 1541 drive) and BBC Micro (producing a 200kB SSSD DFS disk):
able to run the Makefile and you'll get bootable disk images for all supported
platforms in the `images` directory:

make LLVM=<your llvm-mos bin directory here>/ -j$(nproc)
make LLVM=<your llvm-mos bin directory here>/

Building CP/M-65 is a bit of a performance because it's aggregating lots of
other software, all of which need building in turn. You'll need: a C and C++
compiler, cc1541 (for creating 1541 disk images), cpmtools (for creating CP/M
disk images), libfmt (all the C++ tools use this), python3 (for the build
system), and FreePascal (because the MADS assembler is written in Pascal). Use
these Debian packages:
other software, all of which need building in turn. You'll need primarily: a C
and C++ compiler, cc1541 (for creating 1541 disk images), cpmtools (for creating
CP/M disk images), libfmt (all the C++ tools use this), python3 (for the build
system), FreePascal (because the MADS assembler is written in Pascal), 64tass
(for the Super Nintendo 65816 stuff). Use these Debian packages:

cc1541 cpmtools libfmt-dev python3 fp-compiler srecord
cc1541 cpmtools libfmt-dev fp-compiler moreutils mame srecord 64tass libreadline-dev

There are also automated tests which use `mame` to emulate a reasonable number
of the platforms, to verify that they actually work. To use this, install
Expand Down Expand Up @@ -428,11 +428,19 @@ the same time.
- All systems need at least 16kB of RAM, but detect up to 40kB with BASIC present, and 48kB if BASIC is replaced by RAM.
Some boot ROMs do not boot when BASIC is absent. For example, SYN600 relies on BASIC ROM routines to load the boot sector.
- The generated disk images can be used directly with [osiemu](https://github.com/ivop/osiemu), or converted to HFE format with its `osi2hfe` if you want to create real floppies or use it with a Gotek on real hardware.
For use with one of the two WinOSI emulators [Mark's Lab](https://osi.marks-lab.com/software/tools.html) has a tool to convert HFE images to 65D format.
- All systems boot with a plain TTY driver. If you have a 540B graphics card with the optional color option enabled, you can load a screen driver called `TTY540B` (located on drive D: on MF systems).
For the Model 630 graphics card there's `TTY630`.
On serial systems, you can load `SCRVT100` to enable the screen driver if you are connected with a VT100 terminal.
- The generated disk images can be used directly with
[osiemu](https://github.com/ivop/osiemu), or converted to HFE format with its
`osi2hfe` if you want to create real floppies or use it with a Gotek on real
hardware. For use with one of the two WinOSI emulators [Mark's
Lab](https://osi.marks-lab.com/software/tools.html) has a tool to convert HFE
images to 65D format.
- All systems boot with a plain TTY driver. If you have a 540B graphics card
with the optional color option enabled, you can load a screen driver called
`TTY540B` (located on drive D: on MF systems). For the Model 630 graphics card
there's `TTY630`. On serial systems, you can load `SCRVT100` to enable the
screen driver if you are connected with a VT100 terminal.
### Supported programs
Expand Down Expand Up @@ -557,8 +565,7 @@ Who?
You may contact me at [email protected], or visit my website at
http://www.cowlark.com. There may or may not be anything interesting there.
The CP/M-65 project was designed and written by me, David Given.
The CP/M-65 project was designed and written by me, David Given.
License
-------
Expand Down Expand Up @@ -601,4 +608,3 @@ and is available under the terms of the BSD 2-Clause License. See
`third_party/zmalloc` contains a copy of zmalloc, which is © 2024 by Ivo van
Poorten and is available under the terms of the 0BSD License. See
`third_party/zmalloc/LICENSE` for the full text.
66 changes: 33 additions & 33 deletions build.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,39 +17,39 @@
"bin/pint.com": "third_party/pascal-m+pint",
"bin/loader.com": "third_party/pascal-m+loader",
"bbcmicro.ssd": "src/arch/bbcmicro+diskimage",
"oric.dsk": "src/arch/oric+diskimage",
"apple2e.po": "src/arch/apple2e+diskimage",
"apple2e_b.po": "src/arch/apple2e+diskimage_b",
"atari800.atr": "src/arch/atari800+atari800_diskimage",
"atari800b.atr": "src/arch/atari800+atari800b_diskimage",
"atari800c.atr": "src/arch/atari800+atari800c_diskimage",
"atari800hd.atr": "src/arch/atari800+atari800hd_diskimage",
"atari800xlhd.atr": "src/arch/atari800+atari800xlhd_diskimage",
"c64.d64": "src/arch/commodore+c64_diskimage",
"neo6502.zip": "src/arch/neo6502+diskimage",
"osi400mf.os5": "src/arch/osi+osi400mf_diskimage",
"osi500mf.os5": "src/arch/osi+osi500mf_diskimage",
"osi600mf.os5": "src/arch/osi+osi600mf_diskimage",
"osimf-b.os5": "src/arch/osi+osimf-b_diskimage",
"osimf-c.os5": "src/arch/osi+osimf-c_diskimage",
"osimf-d.os5": "src/arch/osi+osimf-d_diskimage",
"osi400f.os8": "src/arch/osi+osi400f_diskimage",
"osi500f.os8": "src/arch/osi+osi500f_diskimage",
"osi600f.os8": "src/arch/osi+osi600f_diskimage",
"osif-b.os8": "src/arch/osi+osif-b_diskimage",
"osiserf.os8": "src/arch/osi+osiserf_diskimage",
"pet4032.d64": "src/arch/commodore+pet4032_diskimage",
"pet8032.d64": "src/arch/commodore+pet8032_diskimage",
"pet8096.d64": "src/arch/commodore+pet8096_diskimage",
"snes.smc": "src/arch/snes+snes_cartridge",
"vic20.d64": "src/arch/commodore+vic20_diskimage",
"x16.zip": "src/arch/x16+diskimage",
"sorbus.zip": "src/arch/sorbus+diskimage",
"nano6502.img": "src/arch/nano6502+diskimage",
"nano6502_sysonly.img": "src/arch/nano6502+sysimage",
"kim-1-k1013.zip": "src/arch/kim-1+distro-k1013",
"kim-1-sdcard.zip": "src/arch/kim-1+distro-sdcard",
"kim-1-iec.zip": "src/arch/kim-1+distro-iec",
"images/oric.dsk": "src/arch/oric+diskimage",
"images/apple2e.po": "src/arch/apple2e+diskimage",
"images/apple2e_b.po": "src/arch/apple2e+diskimage_b",
"images/atari800.atr": "src/arch/atari800+atari800_diskimage",
"images/atari800b.atr": "src/arch/atari800+atari800b_diskimage",
"images/atari800c.atr": "src/arch/atari800+atari800c_diskimage",
"images/atari800hd.atr": "src/arch/atari800+atari800hd_diskimage",
"images/atari800xlhd.atr": "src/arch/atari800+atari800xlhd_diskimage",
"images/c64.d64": "src/arch/commodore+c64_diskimage",
"images/neo6502.zip": "src/arch/neo6502+diskimage",
"images/osi400mf.os5": "src/arch/osi+osi400mf_diskimage",
"images/osi500mf.os5": "src/arch/osi+osi500mf_diskimage",
"images/osi600mf.os5": "src/arch/osi+osi600mf_diskimage",
"images/osimf-b.os5": "src/arch/osi+osimf-b_diskimage",
"images/osimf-c.os5": "src/arch/osi+osimf-c_diskimage",
"images/osimf-d.os5": "src/arch/osi+osimf-d_diskimage",
"images/osi400f.os8": "src/arch/osi+osi400f_diskimage",
"images/osi500f.os8": "src/arch/osi+osi500f_diskimage",
"images/osi600f.os8": "src/arch/osi+osi600f_diskimage",
"images/osif-b.os8": "src/arch/osi+osif-b_diskimage",
"images/osiserf.os8": "src/arch/osi+osiserf_diskimage",
"images/pet4032.d64": "src/arch/commodore+pet4032_diskimage",
"images/pet8032.d64": "src/arch/commodore+pet8032_diskimage",
"images/pet8096.d64": "src/arch/commodore+pet8096_diskimage",
"images/snes.smc": "src/arch/snes+snes_cartridge",
"images/vic20.d64": "src/arch/commodore+vic20_diskimage",
"images/x16.zip": "src/arch/x16+diskimage",
"images/sorbus.zip": "src/arch/sorbus+diskimage",
"images/nano6502.img": "src/arch/nano6502+diskimage",
"images/nano6502_sysonly.img": "src/arch/nano6502+sysimage",
"images/kim-1-k1013.zip": "src/arch/kim-1+distro-k1013",
"images/kim-1-sdcard.zip": "src/arch/kim-1+distro-sdcard",
"images/kim-1-iec.zip": "src/arch/kim-1+distro-iec",
},
deps=[
"tests"
Expand Down

0 comments on commit 4608741

Please sign in to comment.