Difference between revisions of "SIMPLE-6802"
Jump to navigation
Jump to search
Blwikiadmin (talk | contribs) |
Blwikiadmin (talk | contribs) (→EPROM) |
||
(63 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | [[FILE:SIMPLE- | + | [[File:tindie-mediums.png|link=https://www.tindie.com/products/34962/]] |
+ | |||
+ | [[FILE:SIMPLE-6802_P1090264-720pxV.jpg]] | ||
== Features == | == Features == | ||
− | * 68B02 CPU | + | * [https://github.com/land-boards/lb-boards/blob/master/RetroCPUs/SIMPLE-6802/PARTS/MB6802_datasheet.pdf 68B02 CPU] |
** 1.8432 MHz clock | ** 1.8432 MHz clock | ||
** MC6802 is fully compatible with MC6800 but without messy two-phase clocking | ** MC6802 is fully compatible with MC6800 but without messy two-phase clocking | ||
− | * 32KB SRAM | + | * [https://github.com/land-boards/lb-boards/blob/master/RetroCPUs/SIMPLE-6802/PARTS/AS6C62256_23_March_2016_rev1_2-1288423.pdf 32KB SRAM] |
− | * 16KB EPROM/EEPROM | + | * [https://github.com/land-boards/lb-boards/blob/master/RetroCPUs/SIMPLE-6802/PARTS/SST27SF256_datasheet.pdf 16KB EPROM/EEPROM] |
** 16KB reserved | ** 16KB reserved | ||
** 8KB (28C64 parts can be used) | ** 8KB (28C64 parts can be used) | ||
− | * 68B50 Serial Port (ACIA) | + | * [https://github.com/land-boards/lb-boards/blob/master/RetroCPUs/SIMPLE-6802/PARTS/MC68B50_43633.pdf 68B50 Serial Port (ACIA)] |
** RS-232 port | ** RS-232 port | ||
** Header for FTDI | ** Header for FTDI | ||
Line 21: | Line 23: | ||
* 0x0000-0x7FFF 32KB SRAM | * 0x0000-0x7FFF 32KB SRAM | ||
− | * 0x8000-0xBFFF Serial (ACIA) | + | * 0x8000-0xBFFF Serial (68B50 ACIA) |
− | * 0xC000- | + | * 0xC000-0xFFFF 16KB EPROM |
=== Chipset === | === Chipset === | ||
Line 30: | Line 32: | ||
* [https://www.ebay.com/itm/363496217061 HM62256BLP-7 32KB SRAM] | * [https://www.ebay.com/itm/363496217061 HM62256BLP-7 32KB SRAM] | ||
* [https://www.ebay.com/itm/363908920517?var=633150790824 SST27SF256-70-3C-PGE EPROM] | * [https://www.ebay.com/itm/363908920517?var=633150790824 SST27SF256-70-3C-PGE EPROM] | ||
+ | |||
+ | == Design == | ||
+ | |||
+ | === CPU === | ||
+ | |||
+ | [[file:SIMPLE-6802_U3_CPU.PNG]] | ||
+ | |||
+ | ==== Bus Timing ==== | ||
+ | |||
+ | [[file:Timing_68B02.PNG]] | ||
+ | |||
+ | === EPROM === | ||
+ | |||
+ | * [[TL866ii Plus Programmer]] | ||
+ | |||
+ | [[file:SIMPLE-6802_U4_EPROM.PNG]] | ||
+ | |||
+ | === SRAM === | ||
+ | |||
+ | [[file:SIMPLE-6802_U2_SRAM.PNG]] | ||
+ | |||
+ | === ACIA === | ||
+ | |||
+ | [[file:SIMPLE-6802_U3_ACIA.PNG]] | ||
== Headers / Connectors == | == Headers / Connectors == | ||
Line 38: | Line 64: | ||
* DB-9 Male | * DB-9 Male | ||
+ | * Can only use RS-232 or FTDI - one at a time | ||
+ | ** Put MAX232 in a socket if you want flexibility | ||
+ | ** Remove MAX232 if you want to use FTDI | ||
* Pinout | * Pinout | ||
Line 53: | Line 82: | ||
[[FILE:SIMPLE-6802_J2_J5.PNG]] | [[FILE:SIMPLE-6802_J2_J5.PNG]] | ||
+ | |||
+ | * J2 - EPROM Pin 1 jumper | ||
+ | ** 1-2 for 28C64, 28C256 (Pull WE to VCC) | ||
+ | ** 2-3 for 27256, 27SF256, 27512 (Pull A14 to GND) | ||
+ | * J5 - EPROM Pin 27 jumper | ||
+ | ** GND (2-3) | ||
+ | |||
+ | ==== EEPROM Pin Table ==== | ||
{| class="wikitable" | {| class="wikitable" | ||
! 27512 | ! 27512 | ||
! 27256 | ! 27256 | ||
+ | ! 27SF256 | ||
+ | ! 28C256 | ||
! 27128 | ! 27128 | ||
! 2764 | ! 2764 | ||
Line 66: | Line 105: | ||
! 28C64 | ! 28C64 | ||
! 27128 | ! 27128 | ||
+ | ! 28C256 | ||
+ | ! 27SF256 | ||
! 27256 | ! 27256 | ||
! 27512 | ! 27512 | ||
Line 71: | Line 112: | ||
| A15 | | A15 | ||
| VPP | | VPP | ||
+ | | VPP | ||
+ | | A14 | ||
| VPP | | VPP | ||
| VPP | | VPP | ||
| N/C | | N/C | ||
− | | 1 | + | | 1 |
| | | | ||
| 28 | | 28 | ||
+ | | VCC | ||
+ | | VCC | ||
| VCC | | VCC | ||
| VCC | | VCC | ||
Line 83: | Line 128: | ||
| VCC | | VCC | ||
|- | |- | ||
+ | | A12 | ||
+ | | A12 | ||
| A12 | | A12 | ||
| A12 | | A12 | ||
Line 90: | Line 137: | ||
| 2 | | 2 | ||
| | | | ||
− | | 27 | + | | 27 |
| PGM | | PGM | ||
| WE* | | WE* | ||
| PGM | | PGM | ||
+ | | WE* | ||
+ | | A14 | ||
| A14 | | A14 | ||
| A14 | | A14 | ||
|- | |- | ||
+ | | A7 | ||
+ | | A7 | ||
| A7 | | A7 | ||
| A7 | | A7 | ||
Line 107: | Line 158: | ||
| A13 | | A13 | ||
| N/C | | N/C | ||
+ | | A13 | ||
+ | | A13 | ||
| A13 | | A13 | ||
| A13 | | A13 | ||
| A13 | | A13 | ||
|- | |- | ||
+ | | A6 | ||
+ | | A6 | ||
| A6 | | A6 | ||
| A6 | | A6 | ||
Line 121: | Line 176: | ||
| A8 | | A8 | ||
| A8 | | A8 | ||
− | | | + | | A8 |
+ | | A8 | ||
+ | | A8 | ||
| A8 | | A8 | ||
| A8 | | A8 | ||
|- | |- | ||
+ | | A5 | ||
+ | | A5 | ||
| A5 | | A5 | ||
| A5 | | A5 | ||
Line 135: | Line 194: | ||
| A9 | | A9 | ||
| A9 | | A9 | ||
− | | | + | | A9 |
+ | | A9 | ||
+ | | A9 | ||
| A9 | | A9 | ||
| A9 | | A9 | ||
|- | |- | ||
+ | | A4 | ||
+ | | A4 | ||
| A4 | | A4 | ||
| A4 | | A4 | ||
Line 149: | Line 212: | ||
| A11 | | A11 | ||
| A11 | | A11 | ||
− | | | + | | A11 |
+ | | A11 | ||
+ | | A11 | ||
| A11 | | A11 | ||
| A11 | | A11 | ||
|- | |- | ||
+ | | A3 | ||
+ | | A3 | ||
| A3 | | A3 | ||
| A3 | | A3 | ||
Line 163: | Line 230: | ||
| OE* | | OE* | ||
| OE* | | OE* | ||
− | | | + | | OE* |
+ | | OE* | ||
+ | | OE* | ||
| OE* | | OE* | ||
| OE* | | OE* | ||
|- | |- | ||
+ | | A2 | ||
+ | | A2 | ||
| A2 | | A2 | ||
| A2 | | A2 | ||
Line 177: | Line 248: | ||
| A10 | | A10 | ||
| A10 | | A10 | ||
− | | | + | | A10 |
+ | | A10 | ||
+ | | A10 | ||
| A10 | | A10 | ||
| A10 | | A10 | ||
|- | |- | ||
+ | | A1 | ||
+ | | A1 | ||
| A1 | | A1 | ||
| A1 | | A1 | ||
Line 191: | Line 266: | ||
| CE* | | CE* | ||
| CE* | | CE* | ||
− | | | + | | CE* |
+ | | CE* | ||
+ | | CE* | ||
| CE* | | CE* | ||
| CE* | | CE* | ||
|- | |- | ||
+ | | A0 | ||
+ | | A0 | ||
| A0 | | A0 | ||
| A0 | | A0 | ||
Line 205: | Line 284: | ||
| D7 | | D7 | ||
| D7 | | D7 | ||
− | | | + | | D7 |
+ | | D7 | ||
+ | | D7 | ||
| D7 | | D7 | ||
| D7 | | D7 | ||
|- | |- | ||
+ | | D0 | ||
+ | | D0 | ||
| D0 | | D0 | ||
| D0 | | D0 | ||
Line 219: | Line 302: | ||
| D6 | | D6 | ||
| D6 | | D6 | ||
− | | | + | | D6 |
+ | | D6 | ||
+ | | D6 | ||
| D6 | | D6 | ||
| D6 | | D6 | ||
|- | |- | ||
+ | | D1 | ||
+ | | D1 | ||
| D1 | | D1 | ||
| D1 | | D1 | ||
Line 233: | Line 320: | ||
| D5 | | D5 | ||
| D5 | | D5 | ||
− | | | + | | D5 |
+ | | D5 | ||
+ | | D5 | ||
| D5 | | D5 | ||
| D5 | | D5 | ||
|- | |- | ||
+ | | D2 | ||
+ | | D2 | ||
| D2 | | D2 | ||
| D2 | | D2 | ||
Line 247: | Line 338: | ||
| D4 | | D4 | ||
| D4 | | D4 | ||
− | | | + | | D4 |
+ | | D4 | ||
+ | | D4 | ||
| D4 | | D4 | ||
| D4 | | D4 | ||
|- | |- | ||
+ | | GND | ||
+ | | GND | ||
| GND | | GND | ||
| GND | | GND | ||
Line 261: | Line 356: | ||
| D3 | | D3 | ||
| D3 | | D3 | ||
− | | | + | | D3 |
+ | | D3 | ||
+ | | D3 | ||
| D3 | | D3 | ||
| D3 | | D3 | ||
Line 270: | Line 367: | ||
* Requires a FTDI cross-over cable | * Requires a FTDI cross-over cable | ||
+ | * Can only use RS-232 or FTDI - one at a time | ||
+ | ** Put MAX232 in a socket if you want flexibility | ||
+ | ** Remove MAX232 if you want to use FTDI | ||
+ | [[file:SIMPLE-6802_J3_FTDI.PNG]] | ||
+ | |||
+ | * Pinout | ||
# GND | # GND | ||
# RTS* (out) | # RTS* (out) | ||
Line 281: | Line 384: | ||
* 2x4 header | * 2x4 header | ||
+ | |||
+ | [[FILE:SIMPLE-6802_J4_5V-PWR.PNG]] | ||
== First Unit Checkout == | == First Unit Checkout == | ||
Line 289: | Line 394: | ||
=== Install Passives === | === Install Passives === | ||
+ | |||
+ | [[file:SIMPLE-6802_P1090258-720pxV.jpg]] | ||
=== Power === | === Power === | ||
Line 295: | Line 402: | ||
* Power card via J4 with 5V | * Power card via J4 with 5V | ||
* Check power pins on parts | * Check power pins on parts | ||
+ | |||
+ | [[FILE:SIMPLE-6802_P1090261-720PXV.JPG]] | ||
+ | |||
+ | === Reset === | ||
+ | |||
+ | * Install U7 Power Monitor | ||
+ | * Install pushbutton switch SW1 | ||
+ | * Reset button gets stretched by Power Monitor U9 | ||
+ | * Measure reset at 68B02 U5 pin 40 | ||
+ | |||
+ | === EPROM === | ||
+ | |||
+ | * SST27C256 EEPROM | ||
+ | ** 32 KB part | ||
+ | ** Using first 16KB of EEPROM | ||
+ | ** J2 EEPROM pin 1 = VPP = VCC or GND | ||
+ | *** Jumper J2:2-3 | ||
+ | ** J5 EEPROM pin 27 = A14 = GND | ||
+ | *** Jumper J5:2-3 | ||
+ | * U1 - Do not install MAX232 yet | ||
+ | ** Use FTDI connector with [[FTDI-49MM]] card | ||
+ | |||
+ | ==== EEPROM Programming ==== | ||
+ | |||
+ | * Program using [[TL866ii_Plus_Programmer|TL-866ii plus programmer]] | ||
+ | * File = [https://github.com/land-boards/lb-boards/blob/master/RetroCPUs/SIMPLE-6802/SOFTWARE/SMITHBUG_FORTH/SMITHBUG_FORTH_SIMPLE-FC.hex SMITHBUG_FORTH_SIMPLE-FC.hex] | ||
+ | * Part is 32 KB | ||
+ | * hex files is 16 KB | ||
+ | |||
+ | * Memory Buffer should look like | ||
+ | |||
+ | [[file:SIMPLE-68B02_Programmer_BufferContents.PNG]] | ||
+ | |||
+ | * Got Device ID error | ||
+ | * Turn off ID check | ||
+ | |||
+ | [[file:SIMPLE-6502_TL866Plus_Program.png]] | ||
+ | |||
+ | * Device programmed/verified | ||
+ | |||
+ | === Test FTDI Serial === | ||
+ | |||
+ | * Wiring is '''not''' 1:1 to [[FTDI-49MM]] | ||
+ | * Wire FTDI J3 to [[FTDI-49MM]] card | ||
+ | ** [[FTDI-49MM]] GND pin 1 to J3-1 RX on card | ||
+ | ** [[FTDI-49MM]] VCC pin 3 to J3-3 RX on card | ||
+ | ** [[FTDI-49MM]] TX pin 4 on to J3-5 RX on card | ||
+ | ** [[FTDI-49MM]] RX pin 5 on to J3-4 TX on card | ||
+ | ** [[FTDI-49MM]] CTS(in) pin 2 to J3-6 CTS on card | ||
+ | |||
+ | <pre> | ||
+ | >J TO ADDR D000 | ||
+ | Forth-68 | ||
+ | 1 2 + . 3 OK | ||
+ | OK | ||
+ | </pre> | ||
+ | |||
+ | === Test RS-232 Serial === | ||
+ | |||
+ | * With MAX232 | ||
+ | * Install DB-9 Male | ||
+ | * Holes don't line up well, but 4-40 screws can fit | ||
+ | * Connected to [[FTDI-49MM]] and [[DCE]] cards | ||
+ | ** [[FTDI-49MM]] and [[DCE]] cards wired together | ||
+ | ** [[DCE]] has female DB-9 | ||
+ | ** Separate power cable J2 on [[FTDI-49MM]] to J3 on card | ||
+ | |||
+ | [[FILE:FTDI_DCE_P1090192-720PXV.jpg]] | ||
+ | |||
+ | * Built | ||
+ | |||
+ | [[FILE:SIMPLE-6802_P1090264-720pxV.jpg]] | ||
+ | |||
+ | * Works | ||
== Software == | == Software == | ||
+ | |||
+ | * [http://www.retrotechnology.com/restore/smithbug.html SMITHBUG] is a debugger similar to MIKBUG | ||
+ | ** Examine/Edit memory | ||
+ | ** Disassembly code | ||
+ | ** Download S record (V2) | ||
+ | ** Run code | ||
+ | * FIG-Forth - Forth language | ||
+ | * Combined SMITHBUG and FIG-Forth build | ||
=== SmithBUG Builds for SIMPLE-MC6802 CPU Card === | === SmithBUG Builds for SIMPLE-MC6802 CPU Card === | ||
− | |||
* Pre-built software | * Pre-built software | ||
− | ** [https://github.com/land-boards/lb-boards/ | + | ** [https://github.com/land-boards/lb-boards/tree/master/RetroCPUs/SIMPLE-6802/SOFTWARE/SMITHBUG/SMITHBUG_4K SMITHBUG 4KB build] |
− | ** [https://github.com/land-boards/lb-boards/ | + | ** [https://github.com/land-boards/lb-boards/tree/master/RetroCPUs/SIMPLE-6802/SOFTWARE/SMITHBUG/SMITHBUG_8K SMITHBUG 8KB build] |
− | ** [https://github.com/land-boards/lb-boards/ | + | ** [https://github.com/land-boards/lb-boards/tree/master/RetroCPUs/SIMPLE-6802/SOFTWARE/SMITHBUG SMITHBUG 16KB build] |
==== Building Code ==== | ==== Building Code ==== | ||
Line 329: | Line 517: | ||
* Used with 27SF256 parts | * Used with 27SF256 parts | ||
− | ** 2nd half unused | + | ** 2nd half of EPROM unused |
<pre> | <pre> | ||
Line 339: | Line 527: | ||
<pre> | <pre> | ||
+ | ; V VIEW MEMORY | ||
+ | ; E CHANGE MEMORY | ||
+ | ; I FILL MEMORY | ||
; M MOVE MEMORY | ; M MOVE MEMORY | ||
− | ; | + | ; D DISASSEMBLE CODE |
; G GO TO PROGRAM | ; G GO TO PROGRAM | ||
; R PRINT | ; R PRINT | ||
− | |||
; @ ASCII CONVERSION | ; @ ASCII CONVERSION | ||
; H PRINTER ON | ; H PRINTER ON | ||
− | |||
− | |||
; J JUMP TO TARGET PROGRAM | ; J JUMP TO TARGET PROGRAM | ||
; F FIND | ; F FIND | ||
; Q HARDWARE LOCATION | ; Q HARDWARE LOCATION | ||
− | ; | + | ; T TRACE PROGRAM |
− | |||
; 1 BREAKPOINT ONE | ; 1 BREAKPOINT ONE | ||
; 2 BREAKPOINT TWO | ; 2 BREAKPOINT TWO | ||
+ | ; K CONTINUE AFTER BREAK | ||
; & S1 LOAD PROGRAM | ; & S1 LOAD PROGRAM | ||
; * HARDWARE LOCATION (TBA) | ; * HARDWARE LOCATION (TBA) | ||
Line 361: | Line 549: | ||
</pre> | </pre> | ||
− | == | + | === FIGFORTH in RAM === |
− | * | + | * [https://www.corshamtech.com/tech-tips/fig-forth-for-6800/ Corsham Tech FIG-Forth 68 page] |
+ | * [https://github.com/douggilliland/Retro-Computers/tree/master/6800/fig-FORTH/figForth_SmithBUG FIGFORTH GitHub] | ||
+ | ** Enter command to srecord loader | ||
+ | <pre> | ||
+ | & | ||
+ | </pre> | ||
+ | * Using TermTerm, File, Send File | ||
+ | * Send [https://github.com/douggilliland/Retro-Computers/blob/master/6800/fig-FORTH/figForth_SmithBUG/fig-FORTH_6800.s19 fig-FORTH_6800.s19] | ||
+ | * Type S9 to exit srecord loader | ||
+ | * Type J 1000 to jump to address 0x1000 | ||
+ | * Responds with | ||
− | + | <pre> | |
+ | Forth-68 | ||
+ | 1 1 + . 2 OK | ||
+ | </pre> | ||
− | * | + | * [https://github.com/douggilliland/Retro-Computers/tree/master/6800/fig-FORTH#readme FIG-Forth-68 Commands] |
+ | ** Type VLIST to get list og built-ins | ||
<pre> | <pre> | ||
− | + | TASK FORTH NOOP VLIST TRIAD INDEX LIST ? . D. D.R .R #S # SIGN #> <# | |
− | + | SPACES WHILE ELSE IF REPEAT AGAIN END UNTIL +LOOP LOOP DO THEN ENDIF BEGIN | |
− | + | BACK FORGET ' R/W HI LO BLOCK_READ BLOCK_WRITE ?DISC --> LOAD MESSAGE .LINE | |
+ | (LINE) BLOCK BUFFER DR1 DR0 EMPTY-BUFFERS UPDATE +BUF PREV USE DABS ABS M/MOD | ||
+ | */ */MOD MOD / /MOD * S->D COLD ABORT QUIT ( DEFINITIONS VOCABULARY IMMEDIATE | ||
+ | INTERPRET DLITERAL LITERAL [COMPILE] CREATE ID. ERROR (ABORT) -FIND NUMBER (NUMBER) | ||
+ | WORD PAD HOLD BLANKS ERASE FILL QUERY EXPECT ?STACK ." (.") -TRAILING TYPE | ||
+ | COUNT DOES> <BUILDS ;CODE (:CODE) DECIMAL HEX SMUDGE ] [ COMPILE ?LOADING ?CSP | ||
+ | ?PAIRS ?EXEC ?COMP ?ERROR !CSP PFA NFA CFA LFA LATEST TRAVERSE -DUP MAX MIN | ||
+ | SPACE ROT > < = - C, , ALLOT HERE 2+ 1+ COLUMNS HLD R# CSP FLD DPL | ||
+ | BASE STATE CURRENT CONTEXT OFFSET SCR OUT IN BLK VOC-LINK DP FENCE WARNING | ||
+ | WIDTH TIB R0 S0 +ORIGIN B/SCR B/BUF LIMIT FIRST BL 3 2 1 0 USER VARIABLE | ||
+ | CONSTANT ; : C! ! C@ @ TOGGLE +! DUP SWAP DROP OVER DMINUS MINUS D+ + | ||
+ | 0< 0= R R> >R LEAVE ;S RP! SP! SP@ XOR OR AND U/ U* CMOVE CR ?TERMINAL | ||
+ | KEY EMIT ENCLOSE (FIND) DIGIT I (DO) (+LOOP) (LOOP) 0BRANCH BRANCH EXECUTE LIT OK | ||
+ | </pre> | ||
+ | |||
+ | === SMITHBUG and FIGFORTH in ROM === | ||
+ | |||
+ | * Combines SMITHBUG and FIGFORTH in ROM | ||
+ | ** [https://github.com/land-boards/lb-boards/blob/master/RetroCPUs/SIMPLE-6802/SOFTWARE/SMITHBUG_FORTH/SMITHBUG_FORTH_SIMPLE-FC.hex Hex file] | ||
+ | * [https://github.com/land-boards/lb-boards/blob/master/RetroCPUs/SIMPLE-6802/SOFTWARE/SMITHBUG_FORTH/SMITHBUG_FORTH_SIMPLE-6802_C000.ASM Combined Source code] | ||
+ | ** SMITHBUG in ROM from 0xC000-0xCFFF | ||
+ | ** FIGFORTH in ROM from 0xD000-0xEFFF | ||
+ | ** Vectors are at top of ROM from 0xFFF8-0xFFFF | ||
+ | * Fixes in FIG-Forth to get it to run from ROM | ||
+ | ** The comments in the file indicated it could be run from ROM but the stack pointed to ORIG which is in ROM | ||
+ | ** Fixed addresses of stack and I/O pointer to get it to work from ROM | ||
+ | * [https://github.com/land-boards/lb-boards/tree/master/RetroCPUs/SIMPLE-6802/SOFTWARE/SMITHBUG_FORTH SMITHBUG and FIGFORTH in ROM GitHub] | ||
+ | * Assemble | ||
+ | <PRE> | ||
+ | A68 SMITHBUG_FORTH_SIMPLE-6802_C000.ASM -l SMITHBUG_FORTH_SIMPLE-6802_C000.LST -s SMITHBUG_FORTH_SIMPLE-6802_C000.S | ||
+ | 6800/6801 Cross-Assembler (Portable) Ver 3.5! | ||
+ | Copyright (c) 1985 William C. Colley, III | ||
+ | fixes for LCC/Windows and improvement by HRJ Aug 26 2019 | ||
+ | A68 source_file | -l list_file | | -o/-s object_file | | ||
− | </ | + | No Errors |
+ | </PRE> | ||
+ | |||
+ | * Edit out RAM at top | ||
+ | * Make hex file | ||
+ | |||
+ | <PRE> | ||
+ | srec_cat SMITHBUG_FORTH_SIMPLE-6802_C000.s -offset - -minimum-addr SMITHBUG_FORTH_SIMPLE-6802_C000.s -o SMITHBUG_FORTH_SIMPLE-FC.hex -Intel | ||
+ | srec_cat: SMITHBUG_FORTH_SIMPLE-6802_C000.s: 1: warning: no header record | ||
+ | srec_cat: SMITHBUG_FORTH_SIMPLE-6802_C000.s: 1: warning: no header record | ||
+ | </PRE> | ||
+ | |||
+ | * Boots to SMITHBUG | ||
+ | * Type J D000 to run Fig-Forth '''or''' | ||
+ | * Type 4 to run Forth | ||
+ | |||
+ | === TinyBASIC === | ||
+ | |||
+ | * [https://github.com/land-boards/lb-boards/tree/master/RetroCPUs/SIMPLE-6802/SOFTWARE/TinyBASIC TinyBASIC GitHub] | ||
+ | * [https://github.com/douggilliland/Retro-Computers/blob/master/6800/TinyBASIC/Pittman-TinyBASIC/README.mediawiki TINY BASIC User Manual] | ||
+ | ** [https://github.com/douggilliland/Retro-Computers/blob/master/6800/TinyBASIC/Pittman-TinyBASIC/TINY%20BASIC%20User%20Manual.pdf TINY BASIC User Manual PDF] | ||
+ | * Load using & | ||
+ | ** Character/line delays 1 mSec | ||
+ | * Send [https://github.com/land-boards/lb-boards/blob/master/RetroCPUs/SIMPLE-6802/SOFTWARE/TinyBASIC/TB_6800.s TB_6800.s file] | ||
+ | * Run using J 0100 | ||
+ | |||
+ | == References == | ||
− | * | + | * [https://deramp.com/swtpc.com/ Deramp's STWPC page] |
== Mechanicals == | == Mechanicals == | ||
Line 384: | Line 645: | ||
== Assembly Sheet == | == Assembly Sheet == | ||
− | [[SIMPLE-6802 Rev 1 Assembly Sheet]] | + | === Rev 1 === |
+ | |||
+ | * [[SIMPLE-6802 Rev 1 Assembly Sheet]] | ||
+ | * [http://land-boards.com/SIMPLE-6802/SIMPLE-6802_Rev1_ibom.html SIMPLE-6802 Rev 1 Interactive BOM] |
Latest revision as of 18:51, 28 August 2024
Contents
Features
- 68B02 CPU
- 1.8432 MHz clock
- MC6802 is fully compatible with MC6800 but without messy two-phase clocking
- 32KB SRAM
- 16KB EPROM/EEPROM
- 16KB reserved
- 8KB (28C64 parts can be used)
- 68B50 Serial Port (ACIA)
- RS-232 port
- Header for FTDI
- 115,200 baud
- Reset switch with optional Power Supervisor
- 95x95mm card
- (4) 6-32 mounting holes
Memory Map
- 0x0000-0x7FFF 32KB SRAM
- 0x8000-0xBFFF Serial (68B50 ACIA)
- 0xC000-0xFFFF 16KB EPROM
Chipset
Design
CPU
Bus Timing
EPROM
SRAM
ACIA
Headers / Connectors
J1 - RS-232 Serial
- DB-9 Male
- Can only use RS-232 or FTDI - one at a time
- Put MAX232 in a socket if you want flexibility
- Remove MAX232 if you want to use FTDI
- Pinout
- N/C
- Receive
- Transmit
- Loop to pin 6
- GND
- Loop to pin 4
- RTS
- N/C
- N/C
J2 / J5 - EPROM/EEPROM Select Jumpers
- J2 - EPROM Pin 1 jumper
- 1-2 for 28C64, 28C256 (Pull WE to VCC)
- 2-3 for 27256, 27SF256, 27512 (Pull A14 to GND)
- J5 - EPROM Pin 27 jumper
- GND (2-3)
EEPROM Pin Table
27512 | 27256 | 27SF256 | 28C256 | 27128 | 2764 | 28C64 | PIN | PIN | 2764 | 28C64 | 27128 | 28C256 | 27SF256 | 27256 | 27512 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
A15 | VPP | VPP | A14 | VPP | VPP | N/C | 1 | 28 | VCC | VCC | VCC | VCC | VCC | VCC | VCC | |
A12 | A12 | A12 | A12 | A12 | A12 | A12 | 2 | 27 | PGM | WE* | PGM | WE* | A14 | A14 | A14 | |
A7 | A7 | A7 | A7 | A7 | A7 | A7 | 3 | 26 | A13 | N/C | A13 | A13 | A13 | A13 | A13 | |
A6 | A6 | A6 | A6 | A6 | A6 | A6 | 4 | 25 | A8 | A8 | A8 | A8 | A8 | A8 | A8 | |
A5 | A5 | A5 | A5 | A5 | A5 | A5 | 5 | 24 | A9 | A9 | A9 | A9 | A9 | A9 | A9 | |
A4 | A4 | A4 | A4 | A4 | A4 | A4 | 6 | 23 | A11 | A11 | A11 | A11 | A11 | A11 | A11 | |
A3 | A3 | A3 | A3 | A3 | A3 | A3 | 7 | 22 | OE* | OE* | OE* | OE* | OE* | OE* | OE* | |
A2 | A2 | A2 | A2 | A2 | A2 | A2 | 8 | 21 | A10 | A10 | A10 | A10 | A10 | A10 | A10 | |
A1 | A1 | A1 | A1 | A1 | A1 | A1 | 9 | 20 | CE* | CE* | CE* | CE* | CE* | CE* | CE* | |
A0 | A0 | A0 | A0 | A0 | A0 | A0 | 10 | 19 | D7 | D7 | D7 | D7 | D7 | D7 | D7 | |
D0 | D0 | D0 | D0 | D0 | D0 | D0 | 11 | 18 | D6 | D6 | D6 | D6 | D6 | D6 | D6 | |
D1 | D1 | D1 | D1 | D1 | D1 | D1 | 12 | 17 | D5 | D5 | D5 | D5 | D5 | D5 | D5 | |
D2 | D2 | D2 | D2 | D2 | D2 | D2 | 13 | 16 | D4 | D4 | D4 | D4 | D4 | D4 | D4 | |
GND | GND | GND | GND | GND | GND | GND | 14 | 15 | D3 | D3 | D3 | D3 | D3 | D3 | D3 |
J3 - FTDI / TTL Serial
- Requires a FTDI cross-over cable
- Can only use RS-232 or FTDI - one at a time
- Put MAX232 in a socket if you want flexibility
- Remove MAX232 if you want to use FTDI
- Pinout
- GND
- RTS* (out)
- +5V
- Receive (in)
- Transmit (out)
- N/C
J4 - 5V Power
- 2x4 header
First Unit Checkout
Install Sockets
- Machined pin sockets
Install Passives
Power
- Install 2x4 at J4
- Power card via J4 with 5V
- Check power pins on parts
Reset
- Install U7 Power Monitor
- Install pushbutton switch SW1
- Reset button gets stretched by Power Monitor U9
- Measure reset at 68B02 U5 pin 40
EPROM
- SST27C256 EEPROM
- 32 KB part
- Using first 16KB of EEPROM
- J2 EEPROM pin 1 = VPP = VCC or GND
- Jumper J2:2-3
- J5 EEPROM pin 27 = A14 = GND
- Jumper J5:2-3
- U1 - Do not install MAX232 yet
- Use FTDI connector with FTDI-49MM card
EEPROM Programming
- Program using TL-866ii plus programmer
- File = SMITHBUG_FORTH_SIMPLE-FC.hex
- Part is 32 KB
- hex files is 16 KB
- Memory Buffer should look like
- Got Device ID error
- Turn off ID check
- Device programmed/verified
Test FTDI Serial
>J TO ADDR D000 Forth-68 1 2 + . 3 OK OK
Test RS-232 Serial
- With MAX232
- Install DB-9 Male
- Holes don't line up well, but 4-40 screws can fit
- Connected to FTDI-49MM and DCE cards
- Built
- Works
Software
- SMITHBUG is a debugger similar to MIKBUG
- Examine/Edit memory
- Disassembly code
- Download S record (V2)
- Run code
- FIG-Forth - Forth language
- Combined SMITHBUG and FIG-Forth build
SmithBUG Builds for SIMPLE-MC6802 CPU Card
- Pre-built software
Building Code
- Uses a68 assembler
- Command line makes S-Record output
- Use srec_cat to shift from EPROM absolute addresses to 0x0000 as HEX file
4KB Build
A68 SMITHBUG_SIMPLE-6802_F000.ASM -l SMITHBUG_SIMPLE-6802_F000.LST -s SMITHBUG_SIMPLE-6802_F000.S srec_cat SMITHBUG_SIMPLE-6802_F000.s -offset - -minimum-addr SMITHBUG_SIMPLE-6802_F000.s -o smithbug_F000.hex -Intel
8KB Build
A68 SMITHBUG_SIMPLE-6802_E000.ASM -l SMITHBUG_SIMPLE-6802_E000.LST -s SMITHBUG_SIMPLE-6802_E000.S srec_cat SMITHBUG_SIMPLE-6802_E000.s -offset - -minimum-addr SMITHBUG_SIMPLE-6802_E000.s -o smithbug_E000.hex -Intel
16KB Build
- Used with 27SF256 parts
- 2nd half of EPROM unused
A68 SMITHBUG_SIMPLE-6802_C000.ASM -l SMITHBUG_SIMPLE-6802_C000.LST -s SMITHBUG_SIMPLE-6802_C000.S srec_cat SMITHBUG_SIMPLE-6802_C000.s -offset - -minimum-addr SMITHBUG_SIMPLE-6802_C000.s -o smithbug_C000.hex -Intel
SmithBUG Commands
; V VIEW MEMORY ; E CHANGE MEMORY ; I FILL MEMORY ; M MOVE MEMORY ; D DISASSEMBLE CODE ; G GO TO PROGRAM ; R PRINT ; @ ASCII CONVERSION ; H PRINTER ON ; J JUMP TO TARGET PROGRAM ; F FIND ; Q HARDWARE LOCATION ; T TRACE PROGRAM ; 1 BREAKPOINT ONE ; 2 BREAKPOINT TWO ; K CONTINUE AFTER BREAK ; & S1 LOAD PROGRAM ; * HARDWARE LOCATION (TBA) ; O ECHO ON ; N ECHO OFF
FIGFORTH in RAM
- Corsham Tech FIG-Forth 68 page
- FIGFORTH GitHub
- Enter command to srecord loader
&
- Using TermTerm, File, Send File
- Send fig-FORTH_6800.s19
- Type S9 to exit srecord loader
- Type J 1000 to jump to address 0x1000
- Responds with
Forth-68 1 1 + . 2 OK
- FIG-Forth-68 Commands
- Type VLIST to get list og built-ins
TASK FORTH NOOP VLIST TRIAD INDEX LIST ? . D. D.R .R #S # SIGN #> <# SPACES WHILE ELSE IF REPEAT AGAIN END UNTIL +LOOP LOOP DO THEN ENDIF BEGIN BACK FORGET ' R/W HI LO BLOCK_READ BLOCK_WRITE ?DISC --> LOAD MESSAGE .LINE (LINE) BLOCK BUFFER DR1 DR0 EMPTY-BUFFERS UPDATE +BUF PREV USE DABS ABS M/MOD */ */MOD MOD / /MOD * S->D COLD ABORT QUIT ( DEFINITIONS VOCABULARY IMMEDIATE INTERPRET DLITERAL LITERAL [COMPILE] CREATE ID. ERROR (ABORT) -FIND NUMBER (NUMBER) WORD PAD HOLD BLANKS ERASE FILL QUERY EXPECT ?STACK ." (.") -TRAILING TYPE COUNT DOES> <BUILDS ;CODE (:CODE) DECIMAL HEX SMUDGE ] [ COMPILE ?LOADING ?CSP ?PAIRS ?EXEC ?COMP ?ERROR !CSP PFA NFA CFA LFA LATEST TRAVERSE -DUP MAX MIN SPACE ROT > < = - C, , ALLOT HERE 2+ 1+ COLUMNS HLD R# CSP FLD DPL BASE STATE CURRENT CONTEXT OFFSET SCR OUT IN BLK VOC-LINK DP FENCE WARNING WIDTH TIB R0 S0 +ORIGIN B/SCR B/BUF LIMIT FIRST BL 3 2 1 0 USER VARIABLE CONSTANT ; : C! ! C@ @ TOGGLE +! DUP SWAP DROP OVER DMINUS MINUS D+ + 0< 0= R R> >R LEAVE ;S RP! SP! SP@ XOR OR AND U/ U* CMOVE CR ?TERMINAL KEY EMIT ENCLOSE (FIND) DIGIT I (DO) (+LOOP) (LOOP) 0BRANCH BRANCH EXECUTE LIT OK
SMITHBUG and FIGFORTH in ROM
- Combines SMITHBUG and FIGFORTH in ROM
- Combined Source code
- SMITHBUG in ROM from 0xC000-0xCFFF
- FIGFORTH in ROM from 0xD000-0xEFFF
- Vectors are at top of ROM from 0xFFF8-0xFFFF
- Fixes in FIG-Forth to get it to run from ROM
- The comments in the file indicated it could be run from ROM but the stack pointed to ORIG which is in ROM
- Fixed addresses of stack and I/O pointer to get it to work from ROM
- SMITHBUG and FIGFORTH in ROM GitHub
- Assemble
A68 SMITHBUG_FORTH_SIMPLE-6802_C000.ASM -l SMITHBUG_FORTH_SIMPLE-6802_C000.LST -s SMITHBUG_FORTH_SIMPLE-6802_C000.S 6800/6801 Cross-Assembler (Portable) Ver 3.5! Copyright (c) 1985 William C. Colley, III fixes for LCC/Windows and improvement by HRJ Aug 26 2019 A68 source_file | -l list_file | | -o/-s object_file | No Errors
- Edit out RAM at top
- Make hex file
srec_cat SMITHBUG_FORTH_SIMPLE-6802_C000.s -offset - -minimum-addr SMITHBUG_FORTH_SIMPLE-6802_C000.s -o SMITHBUG_FORTH_SIMPLE-FC.hex -Intel srec_cat: SMITHBUG_FORTH_SIMPLE-6802_C000.s: 1: warning: no header record srec_cat: SMITHBUG_FORTH_SIMPLE-6802_C000.s: 1: warning: no header record
- Boots to SMITHBUG
- Type J D000 to run Fig-Forth or
- Type 4 to run Forth
TinyBASIC
- TinyBASIC GitHub
- TINY BASIC User Manual
- Load using &
- Character/line delays 1 mSec
- Send TB_6800.s file
- Run using J 0100