Microtan 65 Quick Guide

From GWiki

Jump to: navigation, search

Contents

Memory Map

0000-003f  	System variables
0040-00ff 	Unused (except by BASIC)
0100-01ff 	Processor Stack
0200-03ff 	Display
0400-AFFF 	RAM
BC00-BC01 	1st AY8912 sound chip
BC02-BC03 	2nd AY8912 sound chip
BC04 	        Space Invasion sound
BFC0-BFCF 	1st 6522 VIA
BFD0-BFD3 	Serial I/O (not implemented in emulator)
BFE0-BFEF 	2nd 6522 VIA
BFF0 	        Read: Chunky graphics on
                Write: Reset keyboard interrupt flag
BFF1 	        Write: Start delayed NMI
BFF2 	        Write: Write hex. keypad column
BFF3 	        Read: Read ASCII keyboard last key/hex. keypad row
                Write: Chunky graphics off
C000-E7FF 	BASIC interpreter ROM
F000-F7FF 	XBUG ROM
F800-FFFF 	TANBUG ROM


Zero Page System Variables

0000  	        Used by breakpoints
0001 	        Last ASCII keyboard character
0002 	        Temporary character store
0003 	        Display index
0004-0006 	Fast interrupt link
0007-0009 	NMI link
000A-000B 	Cursor index
000C 	        Zero if in user program
000D 	        Nonzero if in single instruction
000E 	        Proceed counter
000F 	        Hex/ASCII keyboard
0010-0012 	Slow interrupt link
0013-0014 	Used by hexpack rountine
0015-0016 	Psudo PC
0017 	        Psudo PSW
0018 	        Psudo SP
0019 	        Psudo IX
001A 	        Psudo IY
001B 	        Psudo A
001C-001D 	Temporary store
001E-001F 	Copy store
0020-002F 	Breakpoint addresses
0030-003F 	Breakpoint code store


Text Display

The display is made up of 16 rows of 32 characters, in a contiguous block starting at address 0200. Characters are sequential, the first line beginning at address 0200, the next at 0220, and so on:

0200    0201    0202    ...    021D    021E    021F
0220    0221    0222    ...    023D    023E    023F
0240    0241    0242    ...    025D    025E    025F
                        ... 		
03A0    03A1    03A2    ...    03BD    03BE    03BF
03C0    03C1    03C2    ...    03DD    03DE    03DF
03E0    03E1    03E2    ...    03FD    03FE    03FF

A single character cell may be either an ASCII character or a "chunky graphic" character. Reading from address BFF0 causes subsequent writes to the display to appear as chunky graphics. Writing to BFF3 causes subsequent characters to appear as ASCII characters. It is not possible to determine whether a particular character is being displayed as an ASCII character or a chunky character. Chunky graphic characters comprise eight chunky pixels arranged as 2 columns of 4 rows. Setting a bit in the character turns the corresponding pixel on.

ASCII Characters

There are 128 ASCII characters available:

00-0F    Image:ASCII00-0f.gif
10-1F    Image:ASCII10-1f.gif
20-2F    Image:ASCII20-2f.gif
30-3F    Image:ASCII30-3f.gif
40-4F    Image:ASCII40-4f.gif
50-5F    Image:ASCII50-5f.gif
60-6F    Image:ASCII60-6f.gif
70-7F    Image:ASCII70-7f.gif

Characters 80-FF are repeats of characters 00-7f

Chunky Graphics

Chunky graphics characters are made of a 2x4 block. A pixel within the block is set if the corresponding bit of the character code is a "1". The pixels are arranged as follows:

0 1
2 3
4 5
6 7

00-0F    Image:chunky00-0f.gif

10-1F    Image:chunky10-1f.gif

20-2F    Image:chunky20-2f.gif

30-3F    Image:chunky30-3f.gif

40-4F    Image:chunky40-4f.gif

50-5F    Image:chunky50-5f.gif

60-6F    Image:chunky60-6f.gif

70-7F    Image:chunky70-7f.gif

80-8F    Image:chunky80-8f.gif

90-9F    Image:chunky90-9f.gif

A0-AF    Image:chunkya0-af.gif

B0-BF    Image:chunkyb0-bf.gif

C0-CF    Image:chunkyc0-cf.gif

D0-DF    Image:chunkyd0-df.gif

E0-EF    Image:chunkye0-ef.gif

F0-FF    Image:chunkyf0-ff.gif
Personal tools