Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Apple2 plus #177

Draft
wants to merge 49 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 36 commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
0f4f1ef
added switch for 40/80 columns for Apple ][
andreasbaumann Feb 13, 2024
5586f59
added a preliminary screen driver for Apple ][
andreasbaumann Feb 13, 2024
5bd3280
Merge branch 'master' into apple2_plus
andreasbaumann Feb 18, 2024
70a00c2
moved Apple ][ screen driver to external SCRNDRV.COM, using a common …
andreasbaumann Feb 19, 2024
23b10ce
combined a tty/screen driver into scrndrv, works, but has some copy p…
andreasbaumann Feb 20, 2024
0eec4ae
ported a tetris in C to test the screen driver (has issues with scree…
andreasbaumann Feb 22, 2024
d2ef79c
screen_getchar is handling timeouts now, also added a (most likely wr…
andreasbaumann Feb 29, 2024
76f7e87
Merge branch 'master' into apple2_plus
andreasbaumann Mar 4, 2024
3f9dc4f
Merge branch 'master' into apple2_plus
andreasbaumann Mar 4, 2024
afbc6b9
removed local srand/rand from tetris.c, llvm-mos has a RNG now
andreasbaumann Mar 10, 2024
1e328e0
replaced echo with printf in zip.py, zipnote complained about 'Invali…
andreasbaumann Mar 11, 2024
0e18138
Merge branch 'master' into apple2_plus
andreasbaumann Mar 15, 2024
21c6cc6
Merge branch 'master' into apple2_plus
andreasbaumann Mar 28, 2024
f3c7f90
Merge branch 'master' into apple2_plus
andreasbaumann Mar 29, 2024
30a62ff
added warning message if active disk is missing
andreasbaumann Mar 29, 2024
a49e123
added CCP_MONITOR for optional monitor in CCP (hits 2K boundary if en…
andreasbaumann Mar 29, 2024
c40b79c
split apple disks in two
andreasbaumann Mar 29, 2024
1ae504c
Merge branch 'master' into apple2_plus
andreasbaumann Apr 1, 2024
d956c02
merged with master
andreasbaumann Sep 17, 2024
a6c1fce
Merge branch 'master' into apple2_plus
andreasbaumann Nov 22, 2024
4c268b9
removed local small CCP hack
andreasbaumann Nov 23, 2024
9586121
apple2e: merged 40-column mode from split driver version back into ma…
andreasbaumann Nov 23, 2024
2cc6d6d
apple2e: removed duplicate scrntest entry, exists in apps already for…
andreasbaumann Nov 23, 2024
62f43e8
added apple2e_b.po to release github workflow
andreasbaumann Nov 23, 2024
b54178f
ignoring images/* instead of individual image files in root dir
andreasbaumann Nov 23, 2024
0e21dde
apple2e: removed loadable scrndrv.S (is now fixed)
andreasbaumann Nov 23, 2024
def54d7
apple2e: removed common.S
andreasbaumann Nov 23, 2024
dd365be
apple2a: handling 40-column in screen_cleartoeol
andreasbaumann Nov 24, 2024
5b73e3c
moved tetris from apps to third_party
andreasbaumann Nov 24, 2024
fa68c6a
tetris: removed unixtocpm import
andreasbaumann Nov 25, 2024
bbd1c56
tetris: added upstream info
andreasbaumann Nov 25, 2024
893d235
apple2e: fixed inverse mode on 40-columns (was flashing)
andreasbaumann Nov 25, 2024
3fec73b
scrntest: set initial state of screen_cursor visibility to on
andreasbaumann Nov 30, 2024
412502e
apple2e: implemented screen_showcursor
andreasbaumann Nov 30, 2024
3e45209
tetris: sorted out flickering and some portability issues
andreasbaumann Nov 30, 2024
463a7ee
scrntest: added "B" command to toggle blocking and non-blocking scree…
andreasbaumann Dec 1, 2024
9f142e8
tetris: played with some timeouts for screen_getchar and ACCEL
andreasbaumann Dec 1, 2024
6609bca
scrntest: some testing of getchar timeouts
andreasbaumann Dec 1, 2024
7460f0d
apple2e: implemented some timeout handling screen_getchar (untuned)
andreasbaumann Dec 1, 2024
db211e8
added a second tetris (because we need more tetris)
andreasbaumann Dec 14, 2024
9878aef
tetris2: code cleanup and fixed some portability issues
andreasbaumann Dec 14, 2024
92e38ba
tetris: adapted some timers
andreasbaumann Dec 14, 2024
5c0a6e6
apple2e: added a third floppy dedicated to pascal, made every floppy …
andreasbaumann Dec 15, 2024
34517f2
tetris2: fixed several bugs
andreasbaumann Dec 29, 2024
19109a2
Merge branch 'master' into apple2_plus
andreasbaumann Jan 4, 2025
3f16ab7
tetris2: added pause mode, fixed line elimination, showing next char,…
andreasbaumann Jan 5, 2025
6adbf10
tetris2: using inverse mode for pieces, use also screen cursor keys
andreasbaumann Jan 5, 2025
34f9a6b
Merge branch 'master' into apple2_plus
andreasbaumann Jan 14, 2025
b74c63c
Merge branch 'master' into apple2_plus
andreasbaumann Jan 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ jobs:
name: Development build ${{ env.RELEASE_DATE }}
files: |
cpm65/images/apple2e.po
cpm65/images/apple2e_b.po
cpm65/images/atari800.atr
cpm65/images/atari800b.atr
cpm65/images/atari800c.atr
Expand Down
27 changes: 1 addition & 26 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,31 +1,6 @@
*~
.*.swp
.obj
apple2e.po
apple2e_b.po
atari800.atr
atari800b.atr
atari800c.atr
atari800d.atr
atari800hd.atr
atari800xlhd.atr
bbcmicro.ssd
bin
c64.d64
pet.d64
vic20.d64
pet4032.d64
pet8032.d64
pet8096.d64
x16.zip
oric.dsk
kim-1-iec.zip
kim-1-k1013.zip
kim-1-sdcard.zip
images/*
__pycache__
neo6502.zip
sorbus.zip
nano6502.img
nano6502_sysonly.img
*.os5
*.os8
81 changes: 79 additions & 2 deletions apps/scrntest.asm
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,11 @@
.zp style, 1
.zp ptr1, 2
.zp ptr2, 2
.zp kbd_blocking, 1
.zp spinner_pos, 1
.label string_init
.label string_a
.label chars_spinner
.label BIOS
.label SCREEN
.label update_cursor
Expand Down Expand Up @@ -54,9 +57,15 @@

lda #1
sta cur_vis
ldy #SCREEN_SHOWCURSOR
jsr SCREEN

lda #0
sta style
sta spinner_pos

lda #1
sta kbd_blocking

help:
\ Clear screen and print help
Expand Down Expand Up @@ -92,11 +101,59 @@ mainloop:
sta cur_x
stx cur_y

timeout:
\ Show spinnig bar to test non-blocking keyboard read
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo "spinnig"

lda #39
ldx #0
ldy #SCREEN_SETCURSOR
jsr SCREEN
ldy spinner_pos
iny
tya
cmp #4
.zif eq
ldy #0
.zendif
sty spinner_pos
ldx kbd_blocking
.zif ne
lda #'*'
.zendif
ldx kbd_blocking
.zif eq
lda chars_spinner, y
.zendif
ldy #SCREEN_PUTCHAR
jsr SCREEN

lda #39
ldx #1
ldy #SCREEN_SETCURSOR
jsr SCREEN
lda #32
ldy #SCREEN_PUTCHAR
jsr SCREEN

lda cur_x
ldx cur_y
ldy #SCREEN_SETCURSOR
jsr SCREEN

\ Get and parse command
lda #10
ldx #00

ldy kbd_blocking
.zif ne
lda #0xff
ldx #0x7f
.zendif
ldy kbd_blocking
.zif eq
lda #0x10
ldx #0x0
.zendif
ldy #SCREEN_GETCHAR
jsr SCREEN
bcs timeout \ make sure we don't have consecutive key presses because of short timeouts

\ Convert to uppercase
cmp #0x61
Expand Down Expand Up @@ -248,6 +305,21 @@ case_done:
jsr SCREEN
jmp mainloop
.zendif

\ Toggle keyboard read mode
cmp #'B'
.zif eq
lda kbd_blocking
.zif eq
lda #1
sta kbd_blocking
jmp mainloop
.zendif
lda #0
sta kbd_blocking
jmp mainloop

.zendif

\ Clear screen and print help
cmp #'H'
Expand Down Expand Up @@ -398,6 +470,7 @@ string_init:
.byte "J - Scroll down\r\n"
.byte "L - Clear to End of Line\r\n"
.byte "I - Toggle style\r\n"
.byte "B - Toggle blocking/non-blocking read\r\n"
.byte "H - Clear screen and print this help\r\n"
.byte "Q - Quit\r\n"
.byte 0
Expand All @@ -406,3 +479,7 @@ string_a:
.byte "String"
.byte 0

chars_spinner:
.byte "-\\|/"
.byte 0

1 change: 1 addition & 0 deletions config.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
"0:life.com": "apps+life",
"0:qe.com": "apps+qe",
"0:scrntest.com": "apps+scrntest",
"0:tetris.com": "third_party/tetris",
"0:vt52drv.com": "apps+vt52drv",
"0:vt52test.com": "apps+vt52test",
"0:kbdtest.com": "apps+kbdtest",
Expand Down
9 changes: 9 additions & 0 deletions lib/screen.S
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,15 @@ zproc screen_clear_to_eol, .text.screen_clear_to_eol
jmp _call_screen
zendproc

zproc screen_getchar, .text.screen_getchar
ldy #SCREEN_GETCHAR
jsr _call_screen
zif_cs
lda #0 ; is this a good way to report the timeout?
zendif
rts
zendproc

zproc screen_waitchar, .text.screen_waitchar
zrepeat
lda #0xff
Expand Down
Loading
Loading