Skip to content

Commit

Permalink
house keeping
Browse files Browse the repository at this point in the history
- improved build process for building releases on github
- added schematics on request
- also added Apple 1 "demo" for Evoke party

Signed-off-by: Sven Oliver Moll <svolli@svolli.de>
  • Loading branch information
Sven Oliver Moll committed Jul 27, 2023
1 parent 79bd06f commit 3558232
Show file tree
Hide file tree
Showing 13 changed files with 300 additions and 27 deletions.
27 changes: 8 additions & 19 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ name: CI

on: [push, pull_request]

permissions:
contents: write

jobs:
CI:
runs-on: ubuntu-latest
Expand All @@ -15,25 +18,11 @@ jobs:
- name: 'Build'
run: |
PICO_SDK_FETCH_FROM_GIT=https://github.com/raspberrypi/pico-sdk.git make
- name: 'README'
uses: actions/upload-artifact@v3
with:
name: README.TXT
path: doc/README_release.txt
retention-days: 5
PICO_SDK_FETCH_FROM_GIT=https://github.com/raspberrypi/pico-sdk.git make SorbusComputerCores.zip
- name: 'Upload MCP'
uses: actions/upload-artifact@v3
- name: 'Release SorbusComputerCores.zip'
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
name: sorbus-computer-mcp.uf2
path: build/rp2040/mcp.uf2
retention-days: 5
files: SorbusComputerCores.zip

- name: 'Upload Apple 1'
uses: actions/upload-artifact@v3
with:
name: sorbus-computer-apple1.uf2
path: build/rp2040/apple1.uf2
retention-days: 5
22 changes: 21 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,35 @@ else
$(info Using global pico sdk at: $(PICO_SDK_PATH))
endif

RELEASE_ARCHIVE := SorbusComputerCores.zip

PICO_SDK_URL ?= https://github.com/raspberrypi/pico-sdk.git

.PHONY: all clean distclean release setup-apt

all: $(PICO_SDK_PATH)/README.md
cmake -S $(CURDIR)/src -B $(CURDIR)/build
make -C $(CURDIR)/build

clean:
make -C $(CURDIR)/build clean
rm -f $(RELEASE_ARCHIVE)

distclean:
rm -rf $(RELEASE_ARCHIVE) $(CURDIR)/build

$(PICO_SDK_PATH)/README.md:
mkdir -p $(PICO_SDK_PATH)
git clone --recurse-submodules $(PICO_SDK_URL) $(PICO_SDK_PATH)

setup-apt:
sudo apt install gdb-multiarch cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib cc65 microcom
sudo apt install gdb-multiarch cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib cc65 microcom p7zip-full

$(RELEASE_ARCHIVE): all
for i in $$(ls -1 build/rp2040/*.uf2|grep -v _test.uf2$$); do cp -v $${i} sorbus-computer-$$(basename $${i});done
cp doc/README_release.txt README.txt
rm -f $@
7z a -mx=9 -bd -sdel $@ README.txt *.uf2

release: $(RELEASE_ARCHIVE)

Binary file added doc/Sorbus-65C02.pdf
Binary file not shown.
Binary file added doc/Sorbus-Chipset-PurplePico.pdf
Binary file not shown.
Binary file added doc/Sorbus-backplane.pdf
Binary file not shown.
5 changes: 4 additions & 1 deletion doc/datasheets.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,15 @@ directory that can be used to download these documents.
* [WDC W65C134SBX](http://www.westerndesigncenter.com/wdc/documentation/W65C134SXB.pdf)
* [WDC W65C265SBX](http://www.westerndesigncenter.com/wdc/documentation/W65C265SXB.pdf)

Glue Logic
----------
* [Atmel ATF22V10](http://www.atmel.com/Images/doc0735.pdf)

Firmware
--------
* [W652C265S Monitor ROM](https://www.westerndesigncenter.com/wdc/documentation/265monrom.pdf)
* [W652C134S Monitor ROM](https://www.westerndesigncenter.com/wdc/documentation/134monrom.pdf)


Host Based Hardware
-------------------
* [Raspberry Pi RP2040 MCU](https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.pdf)
Expand Down
4 changes: 4 additions & 0 deletions doc/pico-sdk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Linklist of most frequently visited Pico-SDK documentation pages
----------------------------------------------------------------

* [queue](https://www.raspberrypi.com/documentation/pico-sdk/queue_8h.html)
11 changes: 11 additions & 0 deletions src/65c02/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,14 @@ add_executable(payload_mcp
)
src2hex(payload_mcp.hex payload_mcp 0x400)

add_executable(a1hello
a1hello.s
)
target_compile_options(a1hello
PUBLIC -t none --cpu 65c02
)
target_link_options(a1hello
PUBLIC --start-addr 0x800
)
src2hex(a1hello.hex a1hello 0x800)

240 changes: 240 additions & 0 deletions src/65c02/a1hello.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,240 @@

.segment "CODE"
start:
ldy #$00
sty $00
sty $01
sty $02
sty $03
ldx #$3f
@sinloop:
clc
lda $00
adc $02
sta $02
lda $01
adc $03
sta $03

sta $07c0,y
sta $0780,x
eor #$1f
sta $0740,y
sta $0700,x

lda #$02
adc $00
sta $00
bcc :+
inc $01
:
iny
dex
bpl @sinloop

lda #<(@text-1)
sta $00
lda #>(@text-1)
sta $01
ldy #$00
@printloop:
jsr @getnext
beq @end
cmp #$01 ; rle
bne @norepeat
jsr @getnext
tax ; repeats
jsr @getnext
ora #$80
:
jsr $ffef
dex
bne :-
@norepeat:
cmp #$02
bne @noeffect
jsr @sinus
beq @printloop
@noeffect:
ora #$80
jsr $ffef
:
dex
bne :-
; routine always returns with n=0
bpl @printloop
@end:
jmp $ff00
@getnext:
inc $00
bne :+
inc $01
:
lda ($00),y
rts
@sinus:
ldy #$00
@yloop:
lda $0700,y
clc
adc #$04
tax
lda #$a0
@xloop:
jsr $ffef
dex
bne @xloop
lda #$aa
jsr $ffef
lda #$8d
jsr $ffef
iny
iny
bne @yloop
rts
@text:
.byte 1,25,13
.byte $22,"AND TECHNICALLY...",13
.byte " THIS IS A FIRST RELEASE",$22,13
.byte " -- SPOTTER OF TRSI",13
.byte 1,120,1
.byte 1,25,13
.byte 13
.byte " __________ _____ ____",13
.byte " /_ __/ __ \/ ___// _/",13
.byte " / / / /_/ /\__ \ / / ",13
.byte " / / / _, _/___/ // / ",13
.byte " /_/ /_/ \_\/____/___/ ",13
.byte 13
.byte "TRISTAR AND RED SECTOR INCORPORATED",13
.byte 1,60,1
.byte " PRESENT",13
.byte 1,60,1
.byte 13
.byte " __ __ _ __ A __ _ __ __",13
.byte " \ \/ //_\\ \_/ //_\\ \/ /",13
.byte " > </ _ \\ // _ \> < ",13
.byte " /_/\__/ \_\[_]/_/ \__/\_\",13
.byte 13
.byte " PRODUCT",13
.byte 1,60,1
.byte 13
.byte " THE SORBUS COMPUTER",13
.byte 1,60,1
.byte 13
.byte "SINCE THIS IS THE REPLICA OF AN APPLE 1",13
.byte "THERE'S NOT MUCH MORE ONE CAN DO THAN",13
.byte "TO PRINT OUT TEXT LIKE A LINEPRINTER",13
.byte 1,60,1
.byte 13
.byte "SO WELCOME TO A SYSTEM FROM 1976 THAT",13
.byte "ONLY KNOWS ONE DIRECTION:",13
.byte 1,60,1
.byte "VORWAERTS IMMER, RUECKWAERTS NIMMER!",13
.byte 13
.byte "SO THERE WILL BE ONLY THE GREETINGS.",13
.byte 13
.byte "TRSI AND XAYAX SEND GREETINGS TO:",13
.byte "- ABYSS CONNECTION",13
.byte 1,24,1
.byte "- AKRONYME ANALOGIKER",13
.byte 1,21,1
.byte "- ALPHA FLIGHT",13
.byte 1,28,1
.byte "- ATTENTION WHORE",13
.byte 1,25,1
.byte "- BAUKNECHT",13
.byte 1,31,1
.byte "- BRAIN CONTROL",13
.byte 1,27,1
.byte "- CENSOR DESIGN",13
.byte 1,27,1
.byte "- COCOON",13
.byte 1,34,1
.byte "- CREST",13
.byte 1,35,1
.byte "- DIGITAL DEMOLITION CREW",13
.byte 1,17,1
.byte "- FAIRLIGHT",13
.byte 1,31,1
.byte "- FULCRUM",13
.byte 1,33,1
.byte "- GASMAN",13
.byte 1,34,1
.byte "- GASPODE",13
.byte 1,33,1
.byte "- GENESIS*PROJECT",13
.byte 1,25,1
.byte "- GHOSTOWN",13
.byte 1,32,1
.byte "- HAUJOBB",13
.byte 1,33,1
.byte "- JAC!",13
.byte 1,36,1
.byte "- K2",13
.byte 1,38,1
.byte "- LFT",13
.byte 1,37,1
.byte "- LOONIES",13
.byte 1,33,1
.byte "- MEGA",13
.byte 1,36,1
.byte "- MEGAONE",13
.byte 1,33,1
.byte "- METALVOTZE",13
.byte 1,30,1
.byte "- NUANCE",13
.byte 1,34,1
.byte "- ONSLAUGHT",13
.byte 1,31,1
.byte "- PERFORMERS",13
.byte 1,30,1
.byte "- PLUSH",13
.byte 1,35,1
.byte "- RABENAUGE",13
.byte 1,31,1
.byte "- RETROGURU",13
.byte 1,31,1
.byte "- RGCD",13
.byte 1,36,1
.byte "- RTIFICIAL",13
.byte 1,31,1
.byte "- SCHNAPPSGIRLS",13
.byte 1,27,1
.byte "- SPECKDRUMM",13
.byte 1,30,1
.byte "- THE DREAMS",13
.byte 1,30,1
.byte "- THE SOLARIS AGENCY",13
.byte 1,22,1
.byte "- THE SOLUTION",13
.byte 1,28,1
.byte "- TITAN",13
.byte 1,35,1
.byte "- TLBR",13
.byte 1,36,1
.byte "- VANTAGE",13
.byte 1,33,1
.byte 13
.byte 1,60,1,13
.byte 13
.byte "OKAY, SO LET'S TRY AT LEAST ONE EFFECT:",13
.byte "A SCROLLING SINE",13
.byte "(NOT TO BE MISTAKEN FOR A SINE SCROLLER)",13
.byte 1,60,1
.byte 13
.byte 2
.byte " * PHEW, FINALLY DONE!",13
.byte 13
.byte "MORE ABOUT THE",13
.byte "- THE HARDWARE",13
.byte "- THE SOFTWARE",13
.byte "- AND THE ",$22,"DEMO",$22,"",13
.byte "AT:",13
.byte "--> HTTPS://XAYAX.NET/SORBUS",13
.byte "--> HTTPS://GITHUB.COM/SVOLLI/SORBUS",13
.byte 13
.byte "MUSIC BY SKYRUNNER",13
.byte "--> HTTPS://SOUNDCLOUD.COM/SKYRUNNER_BC/",13
.byte "(... NOT ON DEVICE, OBVIOUSLY ...)",13
.byte 13,0
11 changes: 7 additions & 4 deletions src/rp2040/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,16 @@ src2h(cpudetect_apple1.h cpudetect_apple1 cpudetect_0280)
src2h(cpudetect_mcp.h cpudetect_mcp cpudetect_mcp)
src2h(cpustate.h cpustate cpustate)
src2h(payload_mcp.h payload_mcp payload_mcp)
src2h(a1hello.h a1hello a1hello_0800)
src2h(cpudetect_65.h cpudetect_65 cpudetect_code)

add_executable(blink
blink.c
add_executable(blink_test
blink_test.c
)
target_link_libraries(blink
target_link_libraries(blink_test
pico_stdlib
)
setup_target(blink)
setup_target(blink_test)

add_executable(getaline_test
getaline_test.c
Expand Down Expand Up @@ -69,6 +71,7 @@ setup_target(mcp)
add_executable(apple1
krusader.h
cpudetect_apple1.h
a1hello.h
bus_rp2040_purple.c
system_apple1.c
)
Expand Down
File renamed without changes.

0 comments on commit 3558232

Please sign in to comment.