Skip to content

Commit c015c16

Browse files
links and bullets
1 parent a4a0309 commit c015c16

6 files changed

Lines changed: 50 additions & 42 deletions

File tree

docs/source/hardware.rst

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,11 @@ Step 0. Read This
4141

4242
Rev. A and Rev. B circuit boards are identical except for the debug
4343
connectors under the RIA. These do nothing even when connected. They were
44-
removed so folks stop asking about them.
44+
removed so folks would stop asking about them.
4545

4646
Most VGA-to-HDMI cables can get power from the Picocomputer. Some will need
4747
external power applied. All are zero lag. All VGA video output uses only
48-
HDMI-compatible timings so these cables are an ideal solution.
48+
HDMI-compatible timings, so these cables are an ideal solution.
4949

5050
The boot message does not say COLOR anymore. Do not assume your device will
5151
behave exactly the same as an old YouTube video.
@@ -81,7 +81,7 @@ for production in multiples of five. You won't be able to order only one board.
8181

8282
There are a ton of options you can change if you like. The defaults will get
8383
you a classic green and white board with lead (Pb) HASL. Consider getting the
84-
lead-free HASL upgrade if the other four boards will be kicking around a drawer
84+
lead-free HASL upgrade if the other four boards will be kicking around in a drawer
8585
for the next 20 years.
8686

8787

@@ -106,7 +106,7 @@ Expect a short delay while they quote the bill of materials. Then pay
106106
and wait. They estimated four weeks; mine arrived in three.
107107

108108
If they have a question, make sure both you and your sales rep read the notes
109-
you sent them. If you have a question about options on their web site, ask your
109+
you sent them. If you have a question about options on their website, ask your
110110
sales rep before asking on the forums. They help people all day long with
111111
projects far more complex than this. Even if you don't understand what you are
112112
doing, they can figure it out by looking at the zip files. Really, they do this
@@ -127,7 +127,7 @@ Mouser will print the Customer# on each of the parts bags. Assign this
127127
column to the CSV reference column to get your bags labelled like "C1-C9, C11"
128128
etc. If you forget, no problem because the PCB silkscreen has location info.
129129

130-
If something is out of stock, consult the substitution notes below.
130+
If something is out of stock, consult the `Parts Substitution`_ notes below.
131131

132132

133133
Step 5. Pi Pico Firmware

docs/source/index.rst

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,28 +35,33 @@ Community
3535
Specs
3636
=====
3737

38-
- **CPU** — WDC 65C02 CPU and WDC 65C22 VIA
38+
- **Core** — WDC 65C02 CPU and WDC 65C22 VIA; variable 0.1-8.0 MHz
3939
- **RAM** — 64 KB system + 64 KB extended
40+
- **ROM** — 1 MB of onboard flash for installing and auto-booting ROMs
4041
- **Video** — VGA and HD output; 3 planes, scanline programmable
41-
- **Sound** — PSG and OPL2 FM
42+
- **Sound** — PSG (8 voices) and OPL2 FM (9 voices)
4243
- **Clock** — Real-Time Clock with DST
44+
- **TRNG** — True random number generator
4345

4446

4547
Connectivity
4648
============
4749

48-
- **USB** — keyboard, mouse, gamepads, UART serial, NFC, floppy drives, and flash drives
49-
- **Bluetooth LE** — keyboard, mouse, and gamepads
5050
- **WiFi** — NTP time sync, Hayes modem emulation for dialing into BBSs
51+
- **Bluetooth LE** — keyboard, mouse, and gamepads
52+
- **USB Host** — keyboard, mouse, gamepads, hubs, UART serial, NFC, floppy drives, and flash drives
53+
- **USB Device** — driverless CDC ACM; mirrors the VGA ANSI terminal console
5154

5255

5356
Programming
5457
===========
5558

5659
- **Protected OS** — 32-bit operating system; uses no 6502 RAM
57-
- **POSIX-compatible API** — stdio.h and unistd.h for cc65 and llvm-mos
5860
- **FAT filesystem** — read and write files on any USB flash or floppy drive
59-
- **ROM flash** — 1 MB of onboard flash for installing and auto-booting ROMs
61+
- **POSIX-compatible API** — stdio.h and unistd.h for cc65 and llvm-mos
62+
- **cc65** — `VS Code integration for cc65 <https://github.com/picocomputer/vscode-cc65>`__
63+
- **llvm-mos** — `VS Code integration for llvm-mos <https://github.com/picocomputer/vscode-llvm-mos>`__
64+
- **AI Assistance** — The latest models via VS Code extensions or GitHub Copilot
6065

6166

6267
Build It

docs/source/os.rst

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -122,15 +122,15 @@ is only updated if there is an error.
122122

123123
Some operations return strings or structures on the stack. You must pull the
124124
entire stack before the next call. However, tail call optimizations are
125-
possible. For example, you can chain ``read_xstack()`` and ``write_xstack()`` to
125+
possible. For example, you can chain `read_xstack() <READ_XSTACK_>`_ and `write_xstack() <WRITE_XSTACK_>`_ to
126126
copy a file without using any RAM or XRAM.
127127

128128
Short Stacking
129129
---------------
130130

131131
In the pursuit of saving every cycle, you can save a few on the stack
132132
push when you don't need the full range. This only applies to the first
133-
stack argument pushed. For example:
133+
stack argument pushed. For example, in `LSEEK`_:
134134

135135
.. code-block:: C
136136
@@ -168,7 +168,7 @@ the type and direction (to or from the OS) of this data. Let's look at some exam
168168
int open(const char *path, int oflag);
169169
170170
Send ``oflag`` in ``RIA_A``. ``RIA_X`` doesn't need to be set according to the
171-
docs below. Send the path on XSTACK by pushing the string starting with the last
171+
`OPEN`_ docs. Send the path on XSTACK by pushing the string starting with the last
172172
character. You may omit pushing the terminating zero, but strings are
173173
limited to a length of 255. Calling this from the C SDK will "just work"
174174
because there's an implementation that pushes the string for you.
@@ -178,7 +178,7 @@ because there's an implementation that pushes the string for you.
178178
int read_xstack(void *buf, unsigned count, int fildes)
179179
180180
Send ``count`` as a short stack and ``fildes`` in ``RIA_A``. ``RIA_X`` doesn't
181-
need to be set according to the docs below. The returned value in AX indicates how
181+
need to be set according to the `READ_XSTACK`_ docs. The returned value in AX indicates how
182182
many values must be pulled from the stack. If you call this from the C SDK
183183
then it will copy XSTACK to buf[] for you.
184184

@@ -187,7 +187,7 @@ then it will copy XSTACK to buf[] for you.
187187
int write_xstack(const void *buf, unsigned count, int fildes)
188188
189189
Send ``fildes`` in ``RIA_A``. ``RIA_X`` doesn't need to be set according to the
190-
docs below. Push the buf data to XSTACK. Do not send ``count``, the OS knows this
190+
`WRITE_XSTACK`_ docs. Push the buf data to XSTACK. Do not send ``count``, the OS knows this
191191
from its internal stack pointer. If you call this from the C SDK then it
192192
will copy count bytes of buf[] to XSTACK for you.
193193

@@ -198,7 +198,7 @@ implementation makes multiple OS calls as necessary.
198198
Bulk XRAM Operations
199199
~~~~~~~~~~~~~~~~~~~~
200200

201-
These load and save XRAM directly. You can load game assets without
201+
These load and save XRAM directly via `READ_XRAM`_ and `WRITE_XRAM`_. You can load game assets without
202202
going through 6502 RAM or capture a screenshot with ease.
203203

204204
.. code-block:: C
@@ -554,7 +554,7 @@ READ
554554
555555
556556
Read `count` bytes from a file to a buffer. This is implemented in the
557-
compiler library as a series of calls to read_xstack().
557+
compiler library as a series of calls to `READ_XSTACK`_.
558558
559559
:Op code: None
560560
:C proto: unistd.h
@@ -614,7 +614,7 @@ WRITE
614614
615615
616616
Write `count` bytes from buffer to a file. This is implemented in the
617-
compiler library as a series of calls to write_xstack().
617+
compiler library as a series of calls to `WRITE_XSTACK`_.
618618
619619
:Op code: None
620620
:C proto: unistd.h
@@ -1169,7 +1169,7 @@ get-only attribute also returns -1 with ``EINVAL``.
11691169
* - | 0x02
11701170
| ``RIA_ATTR_CODE_PAGE``
11711171
- Active OEM code page used by the filesystem, console, and default
1172-
VGA font. Reverts to the system setting when the 6502 stops. If the
1172+
:doc:`VGA <vga>` font. Reverts to the system setting when the 6502 stops. If the
11731173
requested page is unavailable, the console setting is selected;
11741174
follow a set with a get to confirm the result.
11751175
One of: 437, 720, 737, 771, 775, 850, 852, 855, 857, 860, 861, 862,

docs/source/ria.rst

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ crashed or halted 6502, you have two options:
5959
1. Using a Bluetooth or USB keyboard, press CTRL-ALT-DEL.
6060
2. Send a break to the RIA UART.
6161

62-
.. warning::
62+
.. caution::
6363

6464
Do not hook up a physical button to RESB. The RIA must remain
6565
in control of RESB. What you probably want is the reset that happens
@@ -95,31 +95,31 @@ Registers
9595
- Read bytes from the UART.
9696
* - $FFE3
9797
- VSYNC
98-
- Increments every 1/60 second when PIX VGA device 1 is
98+
- Increments every 1/60 second when :doc:`PIX VGA <vga>` device 1 is
9999
connected.
100100
* - $FFE4
101101
- RW0
102-
- Read or write the XRAM referenced by ADDR0.
102+
- Read or write the `Extended RAM (XRAM)`_ referenced by ADDR0.
103103
* - $FFE5
104104
- STEP0
105105
- Signed byte added to ADDR0 after every access to RW0.
106106
* - | $FFE6 -
107107
| $FFE7
108108
- ADDR0
109-
- Address of XRAM for RW0.
109+
- Address of `Extended RAM (XRAM)`_ for RW0.
110110
* - $FFE8
111111
- RW1
112-
- Read or write the XRAM referenced by ADDR1.
112+
- Read or write the `Extended RAM (XRAM)`_ referenced by ADDR1.
113113
* - $FFE9
114114
- STEP1
115115
- Signed byte added to ADDR1 after every access to RW1.
116116
* - | $FFEA -
117117
| $FFEB
118118
- ADDR1
119-
- Address of XRAM for RW1.
119+
- Address of `Extended RAM (XRAM)`_ for RW1.
120120
* - $FFEC
121121
- XSTACK
122-
- 512 bytes for OS call stack.
122+
- 512 bytes for `Extended Stack (XSTACK)`_.
123123
* - $FFED
124124
- ERRNO_LO
125125
- Low byte of errno. All errors fit in this byte.
@@ -128,7 +128,7 @@ Registers
128128
- Ensures errno is optionally a 16-bit int.
129129
* - $FFEF
130130
- OP
131-
- Write the OS operation id here to begin an OS call.
131+
- Write the :doc:`OS <os>` operation id here to begin an OS call.
132132
* - $FFF0
133133
- IRQ
134134
- Set bit 0 high to enable VSYNC interrupts. To clear the
@@ -222,16 +222,16 @@ and device 0 on the PIX bus.
222222
- Description
223223
* - $0:0:00
224224
- KEYBOARD
225-
- See Keyboard section
225+
- See `Keyboard`_ section
226226
* - $0:0:01
227227
- MOUSE
228-
- See Mouse section
228+
- See `Mouse`_ section
229229
* - $0:0:02
230230
- GAMEPADS
231-
- See Gamepads section
231+
- See `Gamepads`_ section
232232
* - $0:1:00
233233
- PSG
234-
- See Programmable Sound Generator section
234+
- See `Programmable Sound Generator`_ section
235235

236236

237237
Pico Information Exchange (PIX)
@@ -399,7 +399,7 @@ Square/Triangle/Cross/Circle and XY/AB layouts are "the official" layout
399399
of the RP6502. You can, of course, do your own thing and request players
400400
use a specific gamepad or include a "AB or BA" option.
401401

402-
.. attention::
402+
.. note::
403403
**The RP6502 expects modern gamepads.**
404404

405405
The RP6502 is not an emulation platform. Sega, NES, SNES, TG16, Atari,

docs/source/ria_w.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ servers when connected to WiFi. Check NTP status with the ``status`` command.
4949
- **Set Time Zone:**
5050
To use local time instead of UTC, set your time zone with ``SET TZ``.
5151
Use ``HELP SET TZ`` for guidance. Daylight saving adjustments are
52-
automatic if your locale observes them.
52+
automatic if your locale observes them. The :doc:`os` provides
53+
programmatic access to the clock and time zone.
5354

5455
Once WiFi and time zone are configured, timekeeping is automatic.
5556

docs/source/vga.rst

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@ ignore the palette. Palettes must be 16-bit aligned.
6868
} palette[2^bits_per_pixel];
6969
7070
71-
Programming the VGA device is done with PIX extended registers -
71+
Programming the VGA device is done with `PIX extended registers
72+
<ria.html#pix-extended-registers-xreg>`__ -
7273
XREGS. VGA is PIX device ID 1. Registers are 16 bit values addressed
7374
by $device:$channel:register. e.g. $1:0:0F
7475

@@ -112,11 +113,11 @@ Setting key registers may return a failure (-1) with errno EINVAL.
112113
$1:0:02-$1:0:FF cleared after programming. Each mode has a
113114
section of this document for its own registers.
114115

115-
* 0 - Console
116-
* 1 - Character
117-
* 2 - Tile
118-
* 3 - Bitmap
119-
* 4 - Sprite
116+
* 0 - `Console <#mode-0-console>`__
117+
* 1 - `Character <#mode-1-character>`__
118+
* 2 - `Tile <#mode-2-tile>`__
119+
* 3 - `Bitmap <#mode-3-bitmap>`__
120+
* 4 - `Sprite <#mode-4-sprite>`__
120121

121122

122123
Mode 0: Console
@@ -507,7 +508,8 @@ that set them.
507508

508509
* - $1:F:01
509510
- CODE_PAGE
510-
- Set code page for built-in font.
511+
- Set code page for built-in font. Matches
512+
`RIA_ATTR_CODE_PAGE <os.html#ria-attributes>`__.
511513
* - $1:F:02
512514
- UART
513515
- Set bit rate. Reserved, not implemented.
@@ -548,7 +550,7 @@ When bit 0x80 is set, the 0x70 bits indicate the command type, and the
548550
0x0F bits are a scalar for the command.
549551

550552
0x80 VSYNC - The scalar will increment and be used for the LSB of the
551-
RIA_VSYNC register.
553+
`RIA VSYNC <ria.html#registers>`__ register.
552554

553555
0x90 OP_ACK - Some XREG locations are triggers for remote calls which
554556
may fail or take time to complete. This acknowledges a successful

0 commit comments

Comments
 (0)