mirror of
https://github.com/nobuh/napple1.git
synced 2024-12-27 00:29:16 +00:00
133 lines
3.7 KiB
Plaintext
133 lines
3.7 KiB
Plaintext
napple1 is an Apple 1 emulator using ncurses, ported from the SDL version
|
|
Pom1 emulafor. If you have some questions, please report it as an issue.
|
|
|
|
How to install on Ubuntu (ex. Ubuntu 22.04)
|
|
===========================================
|
|
1. sudo apt install make gcc libncurses-dev
|
|
|
|
2. git clone https://github.com/nobuh/napple1.git
|
|
|
|
3. Build
|
|
cd napple1/src
|
|
make
|
|
cd ..
|
|
4. Run
|
|
./napple1
|
|
|
|
ROM Directory
|
|
======================
|
|
napple1 contain basic.rom and monitor.rom files on
|
|
the ./rom directory. However, If you want to put
|
|
basic.rom and monitor.rom on another directory.
|
|
Please use ROMDIR environmental variable.
|
|
|
|
For example, if you want to put basic.rom and monitor.rom
|
|
on current directory, the command is:
|
|
|
|
ROMDIR=. ./napple1
|
|
|
|
Default value of the ROMDIR is ./rom
|
|
You can use an absolute path for the ROM Directory.
|
|
|
|
ROMDIR=/home/username/my_rom_files ./napple1
|
|
|
|
How to uninstall
|
|
================
|
|
cd napple1/src
|
|
make clean
|
|
|
|
How to use programs on napple1
|
|
==============================
|
|
|
|
- Key map
|
|
|
|
In normal terminals, if you press 'D' key, it will be echoed as 'd' on screen.
|
|
And press 'Shift + D' prints 'D' on screen. Shift key works to flip caps.
|
|
|
|
However, napple1, if you press 'D' key, it will be echoed 'D'. All letters
|
|
you can type is upper case only. Because original apple1 has a limit to do so.
|
|
And shift key works like a control key in napple1.
|
|
|
|
- Cold start Apple 1 Basic
|
|
|
|
type E000R<enter>
|
|
|
|
- Warm start Apple 1 Basic
|
|
|
|
type E2B3R<enter>
|
|
|
|
- Emulator commands
|
|
|
|
Command Key Description
|
|
--------------------------------------------------------------------
|
|
Basic load Shidt + B Load rom/basic.rom to ram
|
|
Dump core Shift + D Dump memory to core/_file name_
|
|
Load core Shift + L Load memory from core/_file name_
|
|
Reset Shift + R Reset the emulator
|
|
Hard reset Shidt + H Reset & Clear memory
|
|
Quit Shidt + Q Quit the emulator
|
|
Mode Shift + M Mode change 8KB & 32KB ram mode
|
|
|
|
- Load / Save programs
|
|
|
|
To load or save program, please load or dump entire 64kb memory.
|
|
|
|
- napple1 memory map in memory.c
|
|
|
|
/*
|
|
* Memory maap of napple1
|
|
*
|
|
* Apple I 8K mode & napple1 64K mode, common usage
|
|
* -----------------------------------------------------------------------
|
|
* $0000 Ststem & User Space
|
|
* $0200 - $027F Input Buffer used by monitor
|
|
* $0FFF
|
|
* -----------------------------------------------------------------------
|
|
* $D010 KBD Keyboard input register. b7 is always 1 by hardware.
|
|
* Read KBD will automatcically clear KBDCR's b7.
|
|
* $D011 KBDCR When key is pressed, b7 is set by hardware.
|
|
* $D012 DSP Bit b6..b0 is output character for the terminal.
|
|
* Writing to DSP will set b7 by hardware.
|
|
* The termianl clear b7 after the character is accepted.
|
|
* $D013 DSPCR Unused.
|
|
* -----------------------------------------------------------------------
|
|
* $E000 Apple I Integer BASIC
|
|
* $E2B3 Re-entry address
|
|
* $EFFF
|
|
* -----------------------------------------------------------------------
|
|
* $FF00 Monitor
|
|
* $FFEF Echo
|
|
* $FFFF
|
|
* -----------------------------------------------------------------------
|
|
*/
|
|
/* Apple I 8K mode memory map
|
|
* ---------------------------------
|
|
* Start Type
|
|
* addr
|
|
* ---------------------------------
|
|
* $0000 4KB RAM
|
|
* $1000 unused
|
|
* $D010 Display and Keyboard I/O
|
|
* $D014 unused
|
|
* $E000 4KB RAM
|
|
* $F000 unused
|
|
* $FF00 256B ROM^ (Woz Monitor)
|
|
* ---------------------------------
|
|
* ^ ROM can be written by Load core
|
|
*/
|
|
/* napple I 32K mode memory map
|
|
* ---------------------------------
|
|
* Start Type
|
|
* addr
|
|
* ---------------------------------
|
|
* $0000 32K RAM
|
|
* $8000 unused
|
|
* $D010 Display and Keyboard I/O
|
|
* $D014 unused
|
|
* $E000 8K ROM^
|
|
* ---------------------------------
|
|
* ^ ROM can be written by Load core
|
|
*/
|
|
|
|
|