mirror of
https://github.com/tjboldt/Apple2-IO-RPi.git
synced 2024-11-28 11:51:00 +00:00
Merge branch 'fullbyte' of https://github.com/tjboldt/Apple2-IO-RPi into fullbyte
This commit is contained in:
commit
278425d8d3
@ -1,4 +1,4 @@
|
||||
ca65 V2.19 - Git 59c58acb
|
||||
ca65 V2.19 - Git 59c58ac
|
||||
Main file : Driver.asm
|
||||
Current file: Driver.asm
|
||||
|
||||
|
@ -14,6 +14,8 @@ WriteProtect = $2B
|
||||
SlotDrive = $50
|
||||
InputByte = $c08e
|
||||
OutputByte = $c08d
|
||||
InputFlags = $c08b
|
||||
OutputFlags = $c087
|
||||
ReadBlockCommand = $01
|
||||
WriteBlockCommand = $02
|
||||
GetTimeCommand = $03
|
||||
@ -143,57 +145,39 @@ write256:
|
||||
|
||||
SendByte:
|
||||
pha
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
jsr SendNibble
|
||||
pla
|
||||
jsr SendNibble
|
||||
rts
|
||||
|
||||
SendNibble:
|
||||
and #$0F
|
||||
ora #$70 ;Write bit low
|
||||
pha
|
||||
waitWrite:
|
||||
lda InputByte,x
|
||||
asl ;Second highest bit goes low when ready
|
||||
bmi waitWrite
|
||||
lda InputFlags,x
|
||||
rol
|
||||
rol
|
||||
bcs waitWrite
|
||||
pla
|
||||
sta OutputByte,x
|
||||
lda #$0e ; set bit 0 low to indicate write started
|
||||
sta OutputFlags,x
|
||||
finishWrite:
|
||||
lda InputByte,x
|
||||
asl
|
||||
bpl finishWrite
|
||||
lda #$FF
|
||||
sta OutputByte,x
|
||||
lda InputFlags,x
|
||||
rol
|
||||
rol
|
||||
bcc finishWrite
|
||||
lda #$0f
|
||||
sta OutputFlags,x
|
||||
rts
|
||||
|
||||
GetByte:
|
||||
jsr GetNibble
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
sta NibbleStorage
|
||||
jsr GetNibble
|
||||
and #$0f
|
||||
ora NibbleStorage
|
||||
rts
|
||||
|
||||
GetNibble:
|
||||
lda #$b0 ;set read flag low
|
||||
sta OutputByte,x
|
||||
lda #$0d ;set read flag low
|
||||
sta OutputFlags,x
|
||||
waitRead:
|
||||
lda InputByte,x
|
||||
bmi waitRead
|
||||
ora #$f0 ;set all flags high
|
||||
sta OutputByte,x
|
||||
lda InputFlags,x
|
||||
rol
|
||||
bcs waitRead
|
||||
lda InputByte
|
||||
pha
|
||||
lda #$0f ;set all flags high
|
||||
sta OutputFlags,x
|
||||
finishRead:
|
||||
lda InputByte,x
|
||||
bpl finishRead
|
||||
lda InputFlags,x
|
||||
rol
|
||||
bcc finishRead
|
||||
pla
|
||||
end:
|
||||
rts
|
||||
|
Binary file not shown.
BIN
Apple2/Firmware_27256_EPROM.bin
Normal file
BIN
Apple2/Firmware_27256_EPROM.bin
Normal file
Binary file not shown.
@ -10,3 +10,9 @@ ca65 Firmware.asm -D STARTSLOT=\$c500 -o Slot5.o --listing Firmware5.lst
|
||||
ca65 Firmware.asm -D STARTSLOT=\$c600 -o Slot6.o --listing Firmware6.lst
|
||||
ca65 Firmware.asm -D STARTSLOT=\$c700 -o Slot7.o --listing Firmware7.lst
|
||||
ld65 Slot0.o Slot1.o Slot2.o Slot3.o Slot4.o Slot5.o Slot6.o Slot7.o -o Firmware.bin -t none
|
||||
cat \
|
||||
Firmware.bin Firmware.bin Firmware.bin Firmware.bin \
|
||||
Firmware.bin Firmware.bin Firmware.bin Firmware.bin \
|
||||
Firmware.bin Firmware.bin Firmware.bin Firmware.bin \
|
||||
Firmware.bin Firmware.bin Firmware.bin Firmware.bin \
|
||||
> Firmware_27256_EPROM.bin
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 790 KiB After Width: | Height: | Size: 3.3 MiB |
22
README.md
22
README.md
@ -7,17 +7,21 @@ Apple II expansion card using a Raspberry Pi for I/O
|
||||
The purpose of this project is to provide I/O for an Apple II series 8 bit computer via a Raspberry Pi Zero W which is powered by the Apple II expansion bus. Initially this is storage via virtual ProDOS compatible drive. Next might be adding virtual serial card support over wifi. Future enhancements could use the RPi for more complex processing as per request from the Apple II. For example, the Apple II could request a web page or application and the RPi could calculate this in Apple II hi-res graphics mode and send the image data back to the II for display purposes.
|
||||
|
||||
## Project Status
|
||||
This is an early stage project. Currently one board has been assembled and tested. It is now possible for the Apple II to boot from and write to a virutal hard drive image stored on the RPi in any slot. The code has no error handling or tests yet and is incomplete.
|
||||
This is an early stage project. Currently three prototype revisions been assembled and tested. It is now possible for the Apple II to boot from and write to a virutal hard drive image stored on the RPi in any slot and execute simple commands on the RPi via an Apple II application. The code has no error handling or tests yet and is incomplete.
|
||||
|
||||
## Roadmap
|
||||
1. DONE - Build initial prototype that reads/writes virtual hard drive
|
||||
2. DONE - Create firmware to make the card a bootable device
|
||||
3. DONE - Fix board with updated second prototype PCB
|
||||
4. WORKING - Add ProDOS clock driver (real driver later, for now just directly sets values)
|
||||
5. WORKING - Add RPi terminal access (does not keep context between commands yet)
|
||||
6. Add web service call support
|
||||
7. Proxy VNC connection, rendering as Apple II compatible graphics
|
||||
8. Create new schematic/PCB with faster data transfer
|
||||
4. DONE - Add ProDOS clock support
|
||||
5. WORKING - Add simple RPi command execution (does not keep context between commands yet)
|
||||
6. DONE - Create new schematic/PCB with faster data transfer
|
||||
7. Add proper ProDOS clock driver (currently just directly sets values on block reads)
|
||||
8. Add directory context to RPi command execution
|
||||
9. Add full terminal emulation
|
||||
10. Add support for direct file read/write without drive image
|
||||
11. Add web service call support
|
||||
12. Proxy VNC connection, rendering as Apple II compatible graphics
|
||||
|
||||
## Setup
|
||||
1. Have PCBs made from the gerber and drill files in the Hardware folder
|
||||
@ -29,12 +33,12 @@ This is an early stage project. Currently one board has been assembled and teste
|
||||
7. Put microSD card in the RPi
|
||||
8. Install the expansion card into the Apple II
|
||||
9. Power on the Apple II
|
||||
10. Install Go on the RPi over ssh
|
||||
10. Install Git and Go on the RPi over ssh
|
||||
11. go build Driver.go
|
||||
12. Copy a ProDOS hard drive image onto the RPi
|
||||
13. ./Driver HARDDRIVE.hdv
|
||||
14. Setup the Driver as a service or to autostart via cronjob
|
||||
|
||||
## Similar Project
|
||||
If you're looking for complete hardware design or prefer having Apple II peripherals control a control a Raspberry Pi rather than simply using the Raspberry Pi to provide storage and network access to the Apple II, have a look at David Schmenk's excellent [Apple2Pi](https://github.com/dschmenk/apple2pi) project.
|
||||
|
||||
If you prefer having Apple II peripherals control a Raspberry Pi rather than simply using the Raspberry Pi to provide storage, network access and processing to the Apple II, have a look at David Schmenk's excellent [Apple2Pi](https://github.com/dschmenk/apple2pi) project.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user