SC-3000 BASIC LEVEL III-B -- COMPLETE MANUAL
SC-3000 BASIC Level III-B — part of the SE3K documentation library, also readable inside the emulator.
============================================================================ SC-3000 BASIC LEVEL III-B -- COMPLETE MANUAL ============================================================================ Cartridge : BASIC Level III-B CPU : Zilog Z80A @ 3.58 MHz ROM : 32,768 bytes ($0000-$7FFF)
GENERAL INDEX
GENERAL INDEX
----------------------------------------------------------------------------
VOL_A1_BASIC_GUIDE.txt
+-----------------------------------------------------------------------+
| VOLUME A1 -- SC-3000 BASIC Guide |
| For beginners: from power-on to graphics and sound. |
| No assembler knowledge required. |
+-----------------------------------------------------------------------+
Ch. 1 First contact
Ch. 2 Variables, types, operators
Ch. 3 Flow control
Ch. 4 Text and screen
Ch. 5 Graphics
Ch. 6 Sound
Ch. 7 Input and timer
Ch. 8 Cassette
Ch. 9 Direct hardware access
Ch. 10 Error table
VOL_A2_DEMOS.txt
+-----------------------------------------------------------------------+
| VOLUME A2 -- BASIC Demo Programs |
| Ready-to-type demo programs, grouped by category. Companion to A1. |
+-----------------------------------------------------------------------+
1. Sound & music (1.1 Ride of the Valkyries -- 4-channel sequencer)
2. Graphics (2.1 Graphics tour -- every primitive)
3. Sprites (3.1 Sprite playground -- sizes/motion/limits)
4. Input & games (4.1 Input test, 4.2 Dodger game)
5. Text & screen [.] to write
VOL_B_QUICK_REF.txt
+-----------------------------------------------------------------------+
| VOLUME B -- BASIC Quick Reference |
| Syntax in alphabetical order. Open and search. |
+-----------------------------------------------------------------------+
Commands (alphabetical)
Functions (alphabetical)
Operators and precedences
Colour table
SOUND frequency table
SC-3000 ASCII codes
VOL_C_HARDWARE.txt
+-----------------------------------------------------------------------+
| VOLUME C -- Hardware Reference |
| The three main chips and how to control them directly. |
| Prerequisite: basic knowledge of Z80 machine language. |
+-----------------------------------------------------------------------+
Ch. 1 SC-3000 architecture -- memory and I/O map
Ch. 2 VDP -- TMS9918A (video processor)
Ch. 3 PSG -- SN76489AN (sound processor)
3.1 Overview and register map
3.2 Tone channels (10-bit frequency divider)
3.3 Noise channel
3.4 Volume registers
3.5 Writing to the PSG (BASIC SOUND/BEEP)
3.6 Write protocol (latch/data byte format)
3.7 LFSR and white noise (SC-3000H specific)
3.8 Initial LFSR state
3.9 Voltage decay and envelope simulation
3.10 Sample playback technique
3.11 Credits and references (Maxim, 2003)
Ch. 4 PPI -- Intel 8255 (peripheral interface)
Ch. 5 Joystick
VOL_D_ML_INTERFACE.txt
+-----------------------------------------------------------------------+
| VOLUME D -- Machine Language Interface |
| ROM routines callable from machine code. |
| Includes ready-to-use BASIC DATA/POKE/CALL examples. |
+-----------------------------------------------------------------------+
Ch. 1 DATA/POKE/CALL convention
Ch. 2 System table ($0100)
Ch. 3 Utility routines ($1A20)
Ch. 4 Output routines ($2400)
Ch. 5 VDP/VRAM routines ($2B80)
Ch. 6 Graphics and CMT routines ($39D0)
Ch. 7 Keyboard and system routines ($4A00)
Ch. 8 Hooks and RAM vectors
Ch. 9 Program structure in memory
Ch. 10 RAM system variable map
Ch. 11 Cassette tape format (KCS encoding, block structure, parity)
VOL_E1_TABLES.txt
+-----------------------------------------------------------------------+
| VOLUME E1 -- Annotated Disassembly (Part 1: Tables) |
| All ROM dispatch tables with full body disassembly and cross-refs. |
| Each entry includes: callers list (full ROM scan), annotated Z80. |
| Reference material for reverse engineering and ML programming. |
+-----------------------------------------------------------------------+
Sec. 1 Reset and interrupt vectors
Sec. 2 System table ($0100, 26 entries)
Sec. 3 Statement token table ($17C0)
Sec. 4 Function token table ($1960)
Sec. 5 Utility table ($1A20, 33 entries)
Sec. 6 Output table ($2400, 32 entries)
Sec. 7 VDP/VRAM table ($2B80, 28 entries)
Sec. 8 Graphics/CMT table ($39D0, 23 entries)
Sec. 9 BASIC statement dispatch table ($4280, 32 entries)
Sec. 10 System/keyboard table ($4A00, 51 entries)
Sec. 11 Extended graphics table ($5A00, 35 entries)
VOL_E2_HANDLERS.txt
+-----------------------------------------------------------------------+
| VOLUME E2 -- Annotated Disassembly (Part 2: Handlers) |
| Annotated Z80 listing of all BASIC command handlers. |
| ROM version notes and unidentified symbols. |
+-----------------------------------------------------------------------+
Sec. 12 BASIC command handlers ($4280) -- annotated disassembly
Sec. 13 ROM v1.0 / v1.1 difference notes
Sec. 14 Unidentified symbols
VOL_F_TUTORIAL.txt
+-----------------------------------------------------------------------+
| VOLUME F -- Tutorial: Magical Labyrinth |
| A complete BASIC+ML game project built chapter by chapter. |
| Prerequisites: Vol. A1 ch.9, Vol. C, Vol. D. |
+-----------------------------------------------------------------------+
Ch. 0 Memory map, course index and integration guide
Ch. 1 VDP setup and first VRAM output
Ch. 2 Tape loader (BINLOADER + VRAMLOADER)
Ch. 3 Tile patterns and board rendering
Ch. 4 Joystick and input (JOY_READ + KEY_REPEAT)
Ch. 5 Board push and BFS reachability
Ch. 6 Pawn sprites and complete INSERT phase
Ch. 7 PSG sound effects (SN76489)
Ch. 8 Game logic in BASIC
Ch. 9 Complete FSM and greedy AI
Ch. 10 HUD and integrated listing
VOL_G_TAPE_MASTERING.txt
+-----------------------------------------------------------------------+
| VOLUME G -- Tape Mastering: saving graphics to cassette |
| BINSAVER/VRAMSAVER writers + 8x8 font generator + mastering program |
| that records the graphics blocks Vol. F's loaders read back. |
| Standalone tool: GRAPHICS_MASTER.txt (BASIC 10-5050) -- load alone |
| and RUN to master the tape. Also: TAPE_GRAPHICS_MODULE.txt (embedded).|
+-----------------------------------------------------------------------+
Sec. 0b Standalone graphics master Sec. 5 The font (75 glyphs)
Sec. 1 Tape block format Sec. 6 Mastering workflow
Sec. 2 ROM write routines Sec. 7 Points to confirm on emulator
Sec. 3 BINSAVER (RAM->tape)
Sec. 4 VRAMSAVER (VRAM->tape)
SUGGESTED READING ORDER
SUGGESTED READING ORDER
----------------------------------------------------------------------------
Complete beginner
Vol. A1 -> Vol. B (as a dictionary)
BASIC programmer wanting to use POKE/CALL
Vol. A1 ch. 9 -> Vol. D ch. 1 -> Vol. D ch. 3-7
Understanding the hardware
Vol. C -> Vol. D ch. 5-7 -> Vol. E1 -> Vol. E2
Reverse engineer
Vol. C -> Vol. D -> Vol. E1 -> Vol. E2
Building a complete game (hands-on project)
Vol. A1 ch. 9 -> Vol. C -> Vol. D -> Vol. F (chapter by chapter)
DOCUMENTATION STATUS
DOCUMENTATION STATUS ---------------------------------------------------------------------------- Legend: [Y] complete [~] partial [.] to write Volume A1 -- BASIC Guide [Y] all chapters complete (1-10) Volume A2 -- BASIC Demos [~] sound/music/graphics/sprites/input+games done; text to write Volume B -- Quick Reference [Y] syntax, tokens, ASCII complete Volume C -- Hardware Reference [Y] all chapters complete (1-5+3.6-3.11) Volume D -- ML Interface [Y] ML routines, DATA/POKE/CALL examples Volume E1 -- Disassembly (Tables) [Y] sections 1-11, full Z80 + callers Volume E2 -- Disassembly (Handlers) [Y] sections 12-14 complete Volume F -- Tutorial (Game) [Y] chapters 0-10 complete ============================================================================