Re: VIC-registers
Date: 1998-02-27 21:16:56

Hallo allemaal,

Marko wrote:
> The answer is that most crunchers move the crunched data to top of ....
> ... And to my knowledge, GEOS does use this area as well.

You really know how to spoil someones fun :-)

> The $d700-$d7ff area is quite safe, it's free on the C128 as well.

What about the SID in C64 ????? I have to disagree in this matter.

Steve wrote:
> 'nothing'. :)  (I'm pretty sure nothing happens; I can check tonight).

Glad to hear but the above confirmed my bad feelings in this matter.

> What, there are females on this list??!  

I really don't know but would like to know pure out of curiousity. Anyway my wife is 
interested in what I do as well and she is definitly female. OK, if you mention the word 
'processor' she thinks you mean that kitchen machine to prepare food. But there are more 
people on this list with wifes and girlfriends who may read this mail as well and 
hopefully have good ideas as well.

Anyway this means there are only two solutions left. The first one is to use dipswitches 
so you can use your own HW with as much as cartridges as possible. But this means that 
you cannot use it with cartidges like FC3 who uses both IO-lines without any further 
decoding. (I bet the FC3 is invented by a cheap Dutchman) The second solution is to 
de-mirror the VIC and/or SID and use the free space for your own purposes. You only have 
to de-solder the 74LS139 and replace it with a flatcable that leads to the board in the 
exp.slot where the rest of the electronics is. I did it once, works fine. Two disadvan- 
tages: 1) cannot be done by everyone 2) cannot be done with C64s with the small mother- 
boards and the big custom chip.

Hallo Andrew,

No response, so the cartridge is yours. Please send me your address.

I'm expanding my disassembler from 6502 to 65C02 (done) and 65816. But I have some 
questions about the 65816:

The D-register is used as an extra offset for a direct addressing mode:
assume D = $1000
        LDA $1234  results in  LDA $2234  in reality
        LDA ($80),Y  results in  LDA ($1080),Y  in reality
        LDA ($80,X)  results in  LDA ($1080,X)  in reality

Assume D = 0
       Y = 0
       DB = $89
       $80 = $12
       $81 = $34
       $82 = $56
        LDA ($80),Y  results in  LDA $893412 
        LDA [$80],Y  results in  LDA $563412    
If I correctly understand the manual, the Programbank (PB) can be compared with CS in 
Intels 80x86 and the Databank (DB) with DS. Correct?

Questions regarding an assembler:

LDX loads a value in register X. In the Native mode the Index Select Bit determines of X 
(or Y) is 8 or 16 bits wide. The Memory Status Bit does the same for A (I think). How 
does an assembler know what to do? Telling it (all the time) to use 1 or two bytes in 
some way ????

Questions regarding an disassembler:

How does the disassembler know if A/X/Y is 8/16 bit????

Does anybody have sources PLUS the binaries for me to test my assembler in the future 
(only 65C02 and 65816 of course)? Until know I tested the assembler by generating 
sourcefiles with my disassembler using the kernels of the C64 and 1541 and comparing the 
result of the assembler with the original binary. But I don't have any sources for the 
other processors and my disassembler doesn't support the 65C02 yet.

Maybe one other question I asked has not reached you: I haven't implemented macro's due 
to the fact I don't have any need for them (I'm sorry but examples you gave me didn't 
convince me) but partly due to the fact I haven't found a simple way to implement them. 
The problem I have is storing them so the assembler can easily find them when needed. A 
way to do it is to store each of them as files and read them when needed. Storing them in 
memory could cause problems. An idea is welcome.

I also invented something for my assembler: comment that is outputted to screen when the 
file is assembled. You can use it during conditioned assembling. In this way you can see 
immediatly if your assembler is assembling the right parts without digging through the 

.CO This line can only be seen in a MSDOS enviroment
        LDA #$12
.CO This line can only be seen in a UNIX enviroment
        LDA #$34

Groetjes, Ruud

Archive generated by hypermail 2.1.1.