mirror of
https://github.com/aaru-dps/docs.git
synced 2025-12-16 19:24:38 +00:00
Added information about commodore formats
This commit is contained in:
107
Commodore/PCVIC.TXT
Normal file
107
Commodore/PCVIC.TXT
Normal file
@@ -0,0 +1,107 @@
|
||||
|
||||
*** PCV (PCVIC VIC-20 emulator saved-session files)
|
||||
*** Document revision: 1.1
|
||||
*** Last updated: March 11, 2004
|
||||
*** Compiler/Editor: Peter Schepers
|
||||
*** Contributors/sources: unknown
|
||||
|
||||
This is another snapshot file, generated by the PCVIC VIC-20 emulator,
|
||||
written by BW Van Schooten. This description is based on the version 1.0 of
|
||||
the PCVIC emulator.
|
||||
|
||||
Bytes: $0000-0015 - PCVIC signature string "PCVIC system snapshot", with
|
||||
a zero terminator
|
||||
0016-0017 - Version#, minor (0-99)/major (0-255).
|
||||
0018-0019 - Size of register state block (not including this size
|
||||
value)
|
||||
001A-XXXX - Register state block, contains system register values
|
||||
and memory expansion settings.
|
||||
XXXX-MMMM - Byte-run compression of VIC memory. This excludes
|
||||
the standard ROM areas $8000-8FFF and $C000-CFFF
|
||||
(END-1)-END - Two-byte checksum of the data from $0016 to the end
|
||||
of the MMMM section.
|
||||
|
||||
Here is most of the contents of the register state block:
|
||||
|
||||
Byte: $00-01 - 6502 X register in low byte, high byte set to 0
|
||||
02-03 - 6502 Y register in low byte, high byte set to 0
|
||||
04-05 - 6502 SP (stack pointer) in low byte, high byte set to 1
|
||||
06 - Unused
|
||||
07 - 6502 auxiliary flags. Bits 2-5 are bits 2-5 of the CPU
|
||||
flag register. All other bits set to 0.
|
||||
|
||||
08-09 - Scanline
|
||||
0-263 - NTSC
|
||||
0-311 - PAL
|
||||
|
||||
0A - VIA1 IFR register
|
||||
0B - VIA1 IER register
|
||||
0C - VIA2 IFR register
|
||||
0D - VIA2 IER register
|
||||
0E - VIA1 IRB port
|
||||
0F - VIA1 ORB port
|
||||
10 - VIA1 IRA port
|
||||
11 - VIA1 ORA port
|
||||
12 - VIA2 IRB port
|
||||
13 - VIA2 ORB port
|
||||
14 - VIA2 IRA port
|
||||
15 - VIA2 ORA port
|
||||
|
||||
16 - Timer Status. 1=Active, 0=Inactive
|
||||
Bit: 0 - VIA1 Timer 1
|
||||
1 - VIA1 Timer 2
|
||||
2 - VIA2 Timer 1
|
||||
3 - VIA2 Timer 2
|
||||
4-7 - Future expansion, set to 0
|
||||
17 - VIA1 Timer 2 Latch
|
||||
18 - VIA2 Timer 2 Latch
|
||||
19 - VIA1 Timer 2 Timer
|
||||
1A - VIA2 Timer 2 Timer
|
||||
|
||||
1B - NMI Flank.
|
||||
0 - NMI was low since last time NMI was sampled
|
||||
1 - NMI was high since last time NMI was sampled
|
||||
1C - Memory configuration. If bit set, area is RAM. If bit
|
||||
clear, area is either ROM or unavailable. Each bit
|
||||
represents an 8Kb block of RAM.
|
||||
Bit: 0 - $0000-1FFF*
|
||||
1 - 2000-3FFF
|
||||
2 - 4000-5FFF
|
||||
3 - 6000-7FFF
|
||||
4 - (always set to 0, ROM)
|
||||
5 - A000-BFFF
|
||||
6 - (always set to 0, ROM)
|
||||
7 - (always set to 0, ROM)
|
||||
*Note: The areas 0000-03ff and 1000-2000 are
|
||||
considered to be always occupied by RAM. For an
|
||||
unexpanded Vic, all blocks are set to 0. Setting only
|
||||
the low block (bit 0) it to 1 results in 3K RAM
|
||||
expansion.
|
||||
1D-1E - 6502 PC (program counter) register
|
||||
1F-20 - 6502 main flags
|
||||
Bit: 00 - Don't care
|
||||
01 - Don't care
|
||||
02 - Don't care
|
||||
03 - Don't care
|
||||
04 - Don't care
|
||||
05 - Don't care
|
||||
06 - Zero flag
|
||||
07 - Sign flag
|
||||
08 - Carry flag
|
||||
09 - Set to 0
|
||||
10 - Set to 0
|
||||
11 - Set to 0
|
||||
12 - Set to 0
|
||||
13 - Set to 0
|
||||
14 - Overlfow flag
|
||||
15 - Set to 0
|
||||
21 - 6502 A register
|
||||
22 - Scan count. CPU cylce count within scan line.
|
||||
0 - End of scan line
|
||||
129 (NTSC) or 131 (PAL) - Start of scan line
|
||||
23 - END of register state block.
|
||||
|
||||
The rest of the file consists of the RAM and I/O areas. These are
|
||||
byterun compressed, and require source code to decode properly, which I
|
||||
will not get into here.
|
||||
|
||||
Reference in New Issue
Block a user