1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-08 15:29:37 +00:00

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

View File

@ -159,7 +159,7 @@
Topics specific to the Ohio Scientific machines. Topics specific to the Ohio Scientific machines.
<tag><htmlurl url="pce.html" name="pce.html"></tag> <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> <tag><htmlurl url="pet.html" name="pet.html"></tag>
Topics specific to the Commodore PET machines. 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> <sect>Memory layout<p>
cc65-generated programs with the default setup run with the I/O area and a cc65-generated programs with the default setup run with the memory map that was
CHR bank enabled, which gives a usable memory range of &dollar;8000 - &dollar;FFF3. used by many PC-Engine games:
All boot ROM entry points may be called directly without additional code. <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: Special locations:
<descrip> <descrip>
<tag/Text screen and Font/ <tag/Text screen and Font/
The text screen is located at VRAM &dollar;0000; The text screen is located at Video RAM (VRAM) address &dollar;0000;
the Font is located at VRAM &dollar;2000. the Font is located at VRAM address &dollar;2000.
<tag/Stack/ <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/ <tag/Data and BSS/
The Data (initialized variables) and BSS (uninitialized variables) sections are The Data (initialized variables) and BSS (uninitialized variables) sections are
placed one after the other into system RAM at &dollar;2200. placed one after the other into system RAM at &dollar;2200.
<tag/Heap/ <tag/Heap/
The C heap is located after the end of the BSS section; and, grows towards the C The C heap is located after the end of the BSS section;
runtime stack. and, extends up to the C run-time stack.
<tag/Code/ <tag/Code/
In an 8K ROM cartridge, code and read-only data are located between 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 In a 32K cartridge, code and read-only data are located between &dollar;8000
and &dollar;FFF5. 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> <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. allow access to hardware that is located in the address space.
<descrip> <descrip>
<tag><tt/PSG/</tag> <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> <tag><tt/VCE/</tag>
The <tt/VCE/ defines allow access to the VCE chip (Video Color Encoder). The <tt/VCE/ defines allow access to the VCE chip (Video Color Encoder).
<tag><tt/VDC/</tag> <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. Note that the Japanese 6-button pad currently is not supported.
</descrip><p> </descrip>
<sect1>Mouse drivers<p> <sect1>Mouse drivers<p>
@ -172,17 +183,13 @@ No serial drivers are currently available for the PCE.
<sect>Limitations<p> <sect>Limitations<p>
<itemize>
<item>interruptor support in crt0 (and cfg) is missing
</itemize>
<sect1>Disk I/O<p> <sect1>Disk I/O<p>
The existing library for the PCE doesn't implement C file 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. 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): following functions (and a few others):
<itemize> <itemize>

View File

@ -14,7 +14,7 @@
; of functions. Doing it by a table means some overhead in space, but it ; of functions. Doing it by a table means some overhead in space, but it
; has major advantages: ; 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 ; could even define macros for the isxxx functions (this is usually
; done on other platforms). ; done on other platforms).
; ;

View File

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