Fixed some mistakes (mostly in the documentation).

This commit is contained in:
Greg King 2015-10-02 13:28:17 -04:00 committed by Oliver Schmidt
parent b5d939c858
commit 2cc822b44e
5 changed files with 60 additions and 53 deletions

View File

@ -1,15 +1,15 @@
;
; PCE definitions. By Groepaz/Hitmem.
; PCE definitions. By Groepaz/Hitmen.
;
; FIXME: screen dimensions my change according to selected video mode
; FIXME: Screen dimensions can change according to the selected video mode.
screenrows = (224/8)
charsperline = 61
CH_HLINE = 1
CH_VLINE = 2
; HuC6270 - Video Display Controller (VDC)
; HuC6270 -- Video Display Controller (VDC)
VDC_MAWR = 0 ; Memory Address Write Register
VDC_MARR = 1 ; Memory Address Read Register
@ -24,8 +24,8 @@ VDC_BYR = 8 ; Background Y-Scroll Register
VDC_MWR = 9 ; Memory-access Width Register
VDC_HSR = 10 ; Horizontal Sync Register
VDC_HDR = 11 ; Horizontal Display Register
VDC_VPR = 12 ; Vertical synchronous register
VDC_VDW = 13 ; Vertical display register
VDC_VSR = 12 ; Vertical sync Register
VDC_VDR = 13 ; Vertical Display register
VDC_VCR = 14 ; Vertical display END position register
VDC_DCR = 15 ; (DMA) Control Register
VDC_SOUR = 16 ; (DMA) Source Register
@ -42,49 +42,49 @@ VDC_CTRL := $0200
VDC_DATA_LO := $0202
VDC_DATA_HI := $0203
; HuC6260 - Video Color Encoder (vce)
; HuC6260 -- Video Color Encoder (VCE)
; The DAC has a palette of 512 colours.
; The bitmap of the palette data is this: 0000000gggrrrbbb.
; You can read and write the DAC registers.
VCE = $0400 ; base
VCE := $0400 ; base
VCE_CTRL = $0400 ; write $00 to reset
VCE_ADDR_LO = $0402 ; LSB of byte offset into palette
VCE_ADDR_HI = $0403 ; MSB of byte offset into palette
VCE_DATA_LO = $0404 ; LSB of 16-bit palette data
VCE_DATA_HI = $0405 ; MSB of 16-bit palette data
VCE_CTRL := $0400 ; write $00 to reset
VCE_ADDR_LO := $0402 ; LSB of byte offset into palette
VCE_ADDR_HI := $0403 ; MSB of byte offset into palette
VCE_DATA_LO := $0404 ; LSB of 16-bit palette data
VCE_DATA_HI := $0405 ; MSB of 16-bit palette data
; Programmable Sound Generator (PSG)
PSG = $0800 ; base
PSG := $0800 ; base
PSG_CHAN_SELECT = $0800
PSG_GLOBAL_PAN = $0801
PSG_FREQ_LO = $0802
PSG_FREQ_HI = $0803
PSG_CHAN_CTRL = $0804
PSG_CHAN_PAN = $0805
PSG_CHAN_DATA = $0806
PSG_NOISE = $0807
PSG_LFO_FREQ = $0808
PSG_LFO_CTRL = $0809
PSG_CHAN_SELECT := $0800
PSG_GLOBAL_PAN := $0801
PSG_FREQ_LO := $0802
PSG_FREQ_HI := $0803
PSG_CHAN_CTRL := $0804
PSG_CHAN_PAN := $0805
PSG_CHAN_DATA := $0806
PSG_NOISE := $0807
PSG_LFO_FREQ := $0808
PSG_LFO_CTRL := $0809
; Timer
TIMER = $0C00 ; base
TIMER := $0C00 ; base
TIMER_COUNT = $0C00
TIMER_CTRL = $0C01
TIMER_COUNT := $0C00
TIMER_CTRL := $0C01
JOY_CTRL = $1000
JOY_CTRL := $1000
IRQ_MASK = $1402
IRQ_STATUS = $1403
IRQ_MASK := $1402
IRQ_STATUS := $1403
CDR_MEM_DISABLE = $1803
CDR_MEM_ENABLE = $1807
CDR_MEM_DISABLE := $1803
CDR_MEM_ENABLE := $1807
; Write VDC register
.macro VREG arg1,arg2

View File

@ -159,7 +159,7 @@
Topics specific to the Ohio Scientific machines.
<tag><htmlurl url="pce.html" name="pce.html"></tag>
Topics specific to NEC PC-Engine (TurboGrafx) Console.
Topics specific to the NEC PC-Engine (TurboGrafx-16) Console.
<tag><htmlurl url="pet.html" name="pet.html"></tag>
Topics specific to the Commodore PET machines.

View File

@ -63,27 +63,37 @@ actually see when they execute the code in that cartridge.
<sect>Memory layout<p>
cc65-generated programs with the default setup run with the I/O area and a
CHR bank enabled, which gives a usable memory range of &dollar;8000 - &dollar;FFF3.
All boot ROM entry points may be called directly without additional code.
cc65-generated programs with the default setup run with the memory map that was
used by many PC-Engine games:
<itemize>
<item>The first 8K bytes is the I/O area.
<item>The second 8K bytes is RAM, which holds
<itemize>
<item>the redirected zero-page and the redirected hardware stack page,
<item>and 7680 bytes of general memory (&dollar;2200 - &dollar;3FFF).
</itemize>
<item>The last 8K bytes in the usual 64K-byte range is the ROM that holds the
program.
</itemize>
Special locations:
<descrip>
<tag/Text screen and Font/
The text screen is located at VRAM &dollar;0000;
the Font is located at VRAM &dollar;2000.
The text screen is located at Video RAM (VRAM) address &dollar;0000;
the Font is located at VRAM address &dollar;2000.
<tag/Stack/
The C runtime stack is located in system RAM at &dollar;3FFF; and, grows downwards.
The C run-time stack is located in system RAM at &dollar;3FFF;
and, grows downwards.
<tag/Data and BSS/
The Data (initialized variables) and BSS (uninitialized variables) sections are
placed one after the other into system RAM at &dollar;2200.
<tag/Heap/
The C heap is located after the end of the BSS section; and, grows towards the C
runtime stack.
The C heap is located after the end of the BSS section;
and, extends up to the C run-time stack.
<tag/Code/
In an 8K ROM cartridge, code and read-only data are located between
@ -94,7 +104,7 @@ Special locations:
In a 32K cartridge, code and read-only data are located between &dollar;8000
and &dollar;FFF5.
</descrip><p>
</descrip>
@ -113,21 +123,22 @@ Programs containing PCE-specific code may use the <tt/pce.h/ header file.
<sect1>Hardware access<p>
The following pseudo variables, declared in the <tt/pce.inc/ include file, do
The following constants, defined in the <tt/pce.inc/ include file, do
allow access to hardware that is located in the address space.
<descrip>
<tag><tt/PSG/</tag>
The <tt/PSG/ defines allow access to the PSG chip (Programmable Sound Generator).
The <tt/PSG/ defines allow access to the PSG (Programmable Sound Generator).
<tag><tt/VCE/</tag>
The <tt/VCE/ defines allow access to the VCE chip (Video Color Encoder).
<tag><tt/VDC/</tag>
The <tt/VDC/ defines allow access to the VDC chip (Video Display Controller).
The <tt/VDC/ defines allow access to the VDC chip (Video Display Controller).<newline>
32K of 16-bit words of Video RAM can be accessed only through this chip.
</descrip><p>
</descrip>
@ -156,7 +167,7 @@ No extended memory drivers are currently available for the PCE.
Note that the Japanese 6-button pad currently is not supported.
</descrip><p>
</descrip>
<sect1>Mouse drivers<p>
@ -172,17 +183,13 @@ No serial drivers are currently available for the PCE.
<sect>Limitations<p>
<itemize>
<item>interruptor support in crt0 (and cfg) is missing
</itemize>
<sect1>Disk I/O<p>
The existing library for the PCE doesn't implement C file
I/O. There are no hacks for the <tt/read()/ and <tt/write()/ routines.
To be more concrete, this limitation means that you cannot use any of the
To be more concrete, that limitation means that you cannot use any of the
following functions (and a few others):
<itemize>

View File

@ -14,7 +14,7 @@
; of functions. Doing it by a table means some overhead in space, but it
; has major advantages:
;
; * It is fast. If it were'nt for the slow parameter passing of cc65, one
; * It is fast. If it weren't for the slow parameter passing of cc65, one
; could even define macros for the isxxx functions (this is usually
; done on other platforms).
;

View File

@ -4,7 +4,7 @@
.include "extzp.inc"
ticktock:
bbr5 vdc_flags,@s1 ; not vertical-blank interrupt
bbr5 vdc_flags,@s1 ; skip if not vertical-blank interrupt
; Increment the system tick counter.
inc tickcount