From 2cc822b44e337e04ac0834f861fa6cadc1473df4 Mon Sep 17 00:00:00 2001 From: Greg King Date: Fri, 2 Oct 2015 13:28:17 -0400 Subject: [PATCH] Fixed some mistakes (mostly in the documentation). --- asminc/pce.inc | 62 +++++++++++++++++++++---------------------- doc/index.sgml | 2 +- doc/pce.sgml | 45 ++++++++++++++++++------------- libsrc/pce/ctype.s | 2 +- libsrc/pce/ticktock.s | 2 +- 5 files changed, 60 insertions(+), 53 deletions(-) diff --git a/asminc/pce.inc b/asminc/pce.inc index d2538e8f9..d603aae08 100644 --- a/asminc/pce.inc +++ b/asminc/pce.inc @@ -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 diff --git a/doc/index.sgml b/doc/index.sgml index a7aa06037..e1ee064a8 100644 --- a/doc/index.sgml +++ b/doc/index.sgml @@ -159,7 +159,7 @@ Topics specific to the Ohio Scientific machines. - Topics specific to NEC PC-Engine (TurboGrafx) Console. + Topics specific to the NEC PC-Engine (TurboGrafx-16) Console. Topics specific to the Commodore PET machines. diff --git a/doc/pce.sgml b/doc/pce.sgml index 4eeb1c084..ee9c81a49 100644 --- a/doc/pce.sgml +++ b/doc/pce.sgml @@ -63,27 +63,37 @@ actually see when they execute the code in that cartridge. Memory layout

-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 $8000 - $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: + +The first 8K bytes is the I/O area. +The second 8K bytes is RAM, which holds + +the redirected zero-page and the redirected hardware stack page, +and 7680 bytes of general memory ($2200 - $3FFF). + +The last 8K bytes in the usual 64K-byte range is the ROM that holds the +program. + Special locations:

+ @@ -113,21 +123,22 @@ Programs containing PCE-specific code may use the Hardware access

-The following pseudo variables, declared in the - The The - The + 32K of 16-bit words of Video RAM can be accessed only through this chip. -

+ @@ -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. -

+ Mouse drivers

@@ -172,17 +183,13 @@ No serial drivers are currently available for the PCE. Limitations

- -interruptor support in crt0 (and cfg) is missing - - Disk I/O

The existing library for the PCE doesn't implement C file I/O. There are no hacks for the diff --git a/libsrc/pce/ctype.s b/libsrc/pce/ctype.s index 16528bae9..aaedeb1a9 100644 --- a/libsrc/pce/ctype.s +++ b/libsrc/pce/ctype.s @@ -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). ; diff --git a/libsrc/pce/ticktock.s b/libsrc/pce/ticktock.s index 4e4d44d9a..433e00e8d 100644 --- a/libsrc/pce/ticktock.s +++ b/libsrc/pce/ticktock.s @@ -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 -- 2.39.5