Difference between revisions of "Dragon 32/64"

From SizeCoding
Jump to: navigation, search
(Sync with frame)
Line 41: Line 41:
  
 
==== Sync with frame  ====
 
==== Sync with frame  ====
 +
Syncing with VSYNC can be done in a few ways, the most common being:
 
<syntaxhighlight lang="6502">
 
<syntaxhighlight lang="6502">
-
+
vskip
 +
    lda $ff03  ;polling vsync
 +
    bpl vskip
 +
    lda $ff02  ;acknowledge vsync
 +
    ;rest of your code...
 +
</syntaxhighlight>
 +
 
 +
However if you really want to save the bytes, it can be done with just one instruction. However it will not only wait for VSYNC but also other system interrupts that may be going on, so don't expect 100% reliability.
 +
<syntaxhighlight lang="6502">
 +
    sync
 +
    ;rest of your code...
 
</syntaxhighlight>
 
</syntaxhighlight>
  

Revision as of 07:30, 13 April 2024

Dragon32 / Dragon64

The Dragon 32 and Dragon 64 are home computers that were built in the 1980s. The Dragons are very similar to the TRS-80 Color Computer, and were produced for the European market by Dragon Data, Ltd., initially in Swansea, Wales before moving to Port Talbot, Wales (until 1984) and by Eurohard S.A. in Casar de Cáceres, Spain (from 1984 to 1987), and for the US market by Tano Corporation of New Orleans, Louisiana. The model numbers reflect the primary difference between the two machines, which have 32 and 64 kilobytes of RAM, respectively.

Setting up

To set up your , first get the following tools:

Memory map

$0000-03ff	System variables
$0400-05ff	Default Text screen
$0600-1dff	Available graphics pages w/o DOS
$0600-0bff	DOS - workspace area see also $00ea-$00f6
$0600-0dff	CoCo DOS workspace area (no more info)
$0c00-23ff	DOS - Available graphics pages
$8000-bfff	BASIC ROM in 32K mode
$8000-9fff	CoCo - Extended Color BASIC ROM
$a000-bfff	CoCo - Color BASIC ROM
$bff0-bfff	These addresses mapped from ROM to $fff0-$ffff by the SAM
$c000-dfff	DOS - Dos ROM
$c000-feff	DOS - Cumana DOS ROM only
$c000-feff	Available address range to cartridge expansion port 32K mode
$c000-feff	D64 - 64K mode - copy of BASIC ROM 2 exists in RAM here
$ff00-ff48	PIA / D64 / DOS Control and Data registers
$ffc0-ffdf	SAM (Synchronous Address Multiplexer) register bits - use
		  even address to clear, odd address to set
$ffec-ffef	PC-Dragon - Used by Paul Burgin's emulator to provide enhanced
		  services
$fff0-ffff	6809 interrupt vectors mapped from $bff0-$bfff by SAM

Check out http://dragon32.info/info/memmap.html for a complete memory map

Video display

The Dragon 32 / Dragon 64 have the following native video modes:

  • Standard text modes
  • Bitmap modes

Sync with frame

Syncing with VSYNC can be done in a few ways, the most common being:

vskip
    lda $ff03   ;polling vsync
    bpl vskip
    lda $ff02   ;acknowledge vsync
    ;rest of your code...

However if you really want to save the bytes, it can be done with just one instruction. However it will not only wait for VSYNC but also other system interrupts that may be going on, so don't expect 100% reliability.

    sync
    ;rest of your code...

Plot in Bitmap modes

Here is a routine that will allow you to plot a single point in bitmap mode.

To be added

Text mode

To be added

To be added

Sound

To be added soon.

Make some noise

To be added soon.

Additional Resources