8 Commits

Author SHA1 Message Date
StewBC
05f0551302 Added Apple II Notes
Added information for the Apple 2 port by Oliver Schmidt.
2020-01-19 09:04:35 -08:00
StewBC
88cbd10a0a
Merge pull request #3 from oliverschmidt/master
Ported the program to the Apple II.
2020-01-19 17:13:06 +01:00
Oliver Schmidt
a87f8ffca0 Ported the program to the Apple II.
Implementation notes:
- General display uses the Apple II hires mode accessed via custom asm functions.
- Menu display uses the 4 line bottom text option of the Apple II hires mode via cc65 CONIO functions.
- All hires access is byte aligned, therefore the horizontal resolution is 40 (bytes).
- Hires access is done via simple (binary) ROPs (raster operations) by using actual 6502 (immediate) opcodes.

The C64 and Curses implementation both make heavy use of colors while Apple II implementation mustn't depend on (but may benefit from) colors. Therefore the user-operated cursor inverts the border of the current field. It's hard to find a compromise between making the cursor visible well and showing the piece "under" the cursor well. Additionally it is desirable to show different cursor states (empty, invalid, valid). The approach chosen is to have different thicknesses of the inverted border:
- Valid: Thin
- Invalid: Medium
- Empty: Thick

When it comes to showing attackers/defenders (via the keys 'a'/'d') there's no alternative to resorting to colors:
- Attackers: Red
- Defenders: Green

So the only field display variant left is the piece selected for moving. Instead of introducing a third type of highlighting (beside border inversion and coloring) it is simply colored Magenta. The reasoning:
- On a monochrome display the user won't have much fun showing attackers/defenders anyway. And without showing those the selected piece is the only colored (aka striped) piece making it clearly visible.
- On a color display a third color (beside attackers/defenders) works just fine.

As the Apple II doesn't have cursor-up and cursor-down keys the keys 'o' and 'l' work as alternatives to the those cursor keys.
2020-01-19 14:18:58 +01:00
StewBC
b0651639d3
Merge pull request #2 from oliverschmidt/master
Allow plat_Highlight() to distinguish between moving a piece and showing attackers/defenders.
2020-01-19 04:35:34 +01:00
Oliver Schmidt
a40cccc921 Allow plat_Highlight() to distinguish between moving a piece and showing attackers/defenders.
Notes:
- The color isn't usable for this distinction as HCOLOR_ATTACK is used for both scenarios.
- This change doesn't make use of the new distinction on the C64. One option would be to use different brackets for the two scenarios.
2020-01-18 20:04:13 +01:00
StewBC
ce8bba2919
Merge pull request #1 from oliverschmidt/patch-1
Adjusted linker configuration.
2020-01-07 07:52:41 +01:00
Oliver Schmidt
35c963e9dc
Adjusted linker configuration.
Unfortunately cc65 linker configurations tend to need adjustments when upgrading to later cc65 versions. With this change the linker config works with cc65 V2.18.
2020-01-02 13:16:03 +01:00
StewBC
82c002891f cc65 Chess V1.0 Initial commit 2014-02-14 16:57:00 +01:00