Skip to content

dadecoza/atari2600-monitor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

atari2600-monitor

a Machine Language Monitor for the Atari 2600

Screenshot

This is Steve Wozniaks Woz Monitor ported to the Atari 2600. For general information and usage of Wozmon you can checkout the excelent post on SB-Projects page.

Cartridge

The cartridge makes use of the Commavid (CV) mapper.

CV Commavid
-----

This was used by Commavid.  It allowed for both ROM and RAM on the cartridge,
without using bankswitching.  There's 2K of ROM and 1K of RAM.

2K of ROM is mapped at 1800-1FFF.
1K of RAM is mapped in at 1000-17FF.

The read port is at 1000-13FF.
The write port is at 1400-17FF.

From: http://blog.kevtris.org/blogfiles/Atari%202600%20Mappers.txt

Keyboard controller layout

The atari2600-monitor makes use of a standard CX50 keyboard controller.
Keyboard Controller
The Layouts is as follows ...

Normal

1 2 3
4 5 6
7 8 9
ALT 0 CR

Alt

A B C
D E F
. : R
ALT BS CR

Key functions

  • 0123456789ABCDEF hex digits
  • . Examine memory location
  • : Store to memory Location
  • R Run from last memory location
  • ALT Switch between keyboard layouts
  • BS Backspace
  • CR Enter

Examples

Change the background colour by writing to the TIA COLUBK register ...

009:30

Keyboard controller key presses ...

0 0 9 * 8 * 3 0 #

Stella Emulator key presses ...

x x d z s z 3 x c

Print HELLO WORLD

This example make use of the monitors subroutines to print "HELLO WORLD"

      1  f015					      PROCESSOR	6502
      2  f015		       00 a5	   MsgPtr     EQU	$a5
      3  f015		       fc d6	   PrintMsg   EQU	$fcd6
      4  f015		       fd c0	   Done       EQU	$fdc0
      5  f000					      org	$F000
      6  f000		       a9 0e		      LDA	#<data
      7  f002		       85 a5		      STA	MsgPtr
      8  f004		       a9 f0		      LDA	#>data
      9  f006		       85 a6		      STA	MsgPtr+1
     10  f008		       20 d6 fc 	      JSR	PrintMsg
     11  f00b		       4c c0 fd 	      JMP	Done
     12  f00e		       04 19 16 1d*data       .byte.b	#$04, #$19, #$16, #$1d, #$1d, #$20, #$07	; \nHELLO WORLD\0
     13  f015		       28 20 23 1d*	      .byte.b	#$28, #$20, #$23, #$1d, #$15, #$00

Although we will be running the example from memory location F000 we will have to enter the program at memory location F400 the reason for this is that we are using the A10 address line as "write enable" on the SRAM IC (we do not have the luxury of a write pin on the cartridge port). After the program is typed in we will then examine memory location F000 followed by the "R" command. ...

F400
:A9
:0E
:85
:A5
:A9
:F0
:85
:A6
:20
:D6
:FC
:4C
:C0
:FD
:04
:19
:16
:1D
:1D
:20
:07
:28
:20
:23
:1D
:15
:00
F000
R

About

a Machine Code/Language Monitor for the Atari 2600

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published