Old BBS Messages
Old BBS messages can be fun and interesting, so here are some I've come across.
Job Postings
Seeking Awesome Programmer
Catapult Entertainment, Inc. is looking for a top-notch, real-time,
low-level programmer to join a world-class software team creating the first
real-time nationwide video game network. Seeking a motivated,
self-directed, product-focused, can-do programmer experienced in C and
assembly level coding. Experience with communications and modem
programming desired but not required. Openings for consultants and
full-time employees.
Catapult Entertainment is an equal-opportunity employer.
Contact:
Stacey Chaney
e-mail: sta...@catapent.com
voice: 408-366-1735 x223
fax: 408-366-1729
Catapult Entertainment
20823 Stevens Creek Blvd. Suite 300
Cupertino, CA 95104
Seeking Awesome Programmer - Source
Super Famicom Development Group
FAQ (famidev.txt)
SFDG FAQ - Super Famicom Development Group Frequently Asked Questions
~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
By Carl Mueller: carl@busop.cit.wayne.edu.
Modified by Charles Doty: cdoty@host.yab.com on May. 23,1996.
-----------------------------------------------------------------------------
Q. What exactly is the Super Famicom?
A. The Super Famicom is the Japanese version of the American SNES
(Super Nintendo Entertainment System). As far as hardware goes,
they are generally the same and play the same games (SF games can
be played on the SNES and vice versa). The Super Famicom however
has a different appearance than the SNES, but other than cosmetic
differences, they are virtually the same system.
-----------------------------------------------------------------------------
Q. What exactly do people use to develope games on the SNES?
A. _Professional_ developers, to my knowledge, use a PC and a special
65816 assembler called SNASM which assembles and allows debugging of
65816 code, also included is a device which (I believe) plugs into
the SNES and you download code from your PC to the SNES through a
SCSI interface. This developers kit is available through Nintendo,
but to my knowledge is *extremely* expensive (say around $5000), and
Nintendo won't sell it to you unless you belong to a gaming company.
-----------------------------------------------------------------------------
Q. What about the demos I've seen floating about, how were those made?
A. There are also console "backup" devices like the Super Magicom (SNES/
Super Famicom backup), Super MagicDrive (Sega Genesis backup), and
MultiGame Hunter (Genesis and SNES backup) to name a few. People
download their own code to these devices using 65816 cross assemblers
(apparently availabe to most major platforms), and the SNES runs it.
You have to have a pretty good knowledge of the SNES hardware, and of
course be an expert 65816 assembler.
-----------------------------------------------------------------------------
Q. Where can I get some files which explain the technicial details of
the SNES, like memory locations and such?
A. An limited FTP site is available. ftp teeri.oulu.fi.
Development files should be located in \pub\console\nintendo.
A Console programming WWW page is available at
http://www.yab.com~/cdoty/console.html.
Also, you should be able to find utilities such as assemblers and
disassemblers.
-----------------------------------------------------------------------------
Q. What the heck is an 65816 ?
A. It's a microprocessor made by Western Design which is a basically a
souped up 16-bit version of the 6502 (used in older computers like the
Commodore 64, etc) and is currently (and probably for enternity) only
used in the Apple IIgs system, and of course the SNES/Super Famicom
systems. It has 16-bit internal registers and an 8-bit bus.
-----------------------------------------------------------------------------
Q. How do I start working for Nintendo, then ?
A. Probably the best way to land a job programming for the SNES would be
to prove yourself an 65816 expert, and send them a demo of a game
written perferably on a DIFFERENT platform (say like the Apple IIgs
might be a good computer to show a demo on), Nintendo may not like the
fact that you've been coding on their system without any licenses.
Or, you can try to get a job at a company that produces SNES games
by showing them your game, and getting them to LEGALLY license it.
----------------------------------------------------------------------------
Q. Where do I get a copy of this "Developers Manual" everyone seems to
be talking about?
A. You don't. Nintendo distributes their developers manual only to
licensed game programmers and is apparently very strict about it
being copied or information being let out from it. Plus, if you
paid $5,000 for a developers kit, would you be so quick to send
out copies of the manual?
Well, that's it so far. I may not be the best person to write this FAQ,
but so far I'm the only one who has been willing to do it. If you wish
to make modifications, let me know. Your free to make additions/modifcations
to this document. Just send the revised document to my mail box and I will
replace this one.
SNES Math (snesmath.txt)
From: vic@physci.psu.edu (Vic Ricker)
To: "Super Famicom Development Group" <famidev@busop.cit.wayne.edu>
Subject: Re: Multiplying/Dividing?
Date: Sun, 26 Dec 93 16:29:09 EST
Take a look at this:
Address: $4202/$4203
Name: WRMPYA/WRMPYB
Description: Multiplier and multiplicand
D7 D6 D5 D4 D3 D2 D1 D0
| MULTIPLICAND-A | $4202
|_______________________________________|
D7 D6 D5 D4 D3 D2 D1 D0
| MULTIPLIER-B | $4203
|_______________________________________|
These registers perform absolute multiplication by multiplying
multiplicand A by multiplier B and return product C which can be read
from $4216/$4217 RDMPY.
Set register A, then B. After the B register is set, it will take 8
machine cycles for the multiplication to be completed.
* The A register will not be destroyed by the multiplication process.
^^^ does not refer to the accumulator. it means the multiplicand
Also, there is 8/16 multiply that shares the mode 7 matrix registers:
set 16 bit multiplier to $211b and 8 bit multiplicand to $211c the 24
bit product will be placed in $2134-$2136.
The shift-add routine is a great way to multiply. I'm suprised that
so many so-called assembly programmers don't know how to do it.
Regardless of how fast it is, the hardware stuff blows it away.
There is also a hardware divide:
$4204/4205 is the 16 bit dividend, $4206 is the 8bit divisor, the
quotient will be put in $4214, and the remainder in $4216/4217.
ANy questions, lemme know.
From: D Burton Technician <D.Burton@teesside.ac.uk>
To: "Super Famicom Development Group" <famidev@busop.cit.wayne.edu>
Subject: Re: sound
Date: Fri, 17 Dec 93 09:37:41 GMT
> Any info on the structure & size of the header block?
>
the header is as follows :-
dw length_of_block,transfer_address
db start_of_data
.....
db end_of_data
this is repeated for however many blocks u wanna load into the spc(often just
one big block)
then the final header reads:-
dw $0000,program_execution_address
the zero length field tells it to get ready to run the module..
> So the data is broken up into 9 byte blocks then. How is this 1 byte range
> related to the data that follows? Is it a multiplier or, exponent or
> value from a table? The 4 bit data an 'error' relative to the range?
> Any other info on the samples?
>
the first byte contains :-
bit 0 - last block of sample
bit 1 - loop block flag
bit 2,3 - the filter number used
bit 4-7 - the range value (only 0-12 used)..
the big question is how is the data compressed - the manual diagram simply
shows the 4 bit data being shifted right by the range number of places, and
then talks of the number being in the range -7 to +8.. I have been simply
dividing the 16 bit numbers down and rounding up where necessary and this
gives a quite accurate conversion, the problem I seem to be having is
generating the range values from the 16 values I have..
> I checked out hbt-fasm, which someone described as bad. Does bad refer to
> its interface or the fact that it doesn't disassemble things correctly?
> I do not have access to the spc-700 instruction set, or an amiga on a
> regular basis and will build an opcode matrix from it and convert it to
> the pc (providied that it disassembles correctly). Does it?.
>
I have not had much to do with hbt-fasm so dont really know what is wrong
with it, my own SPC dissassembler has no real super duper i/face, but
it does what I wanted it to.
From: lca@gnu.ai.mit.edu (.oO| Spaceman Spiff |Oo.)
To: "Super Famicom Development Group" <famidev@busop.cit.wayne.edu>
Subject: Re: Samples on de SNEZ
Date: Tue, 11 Jan 94 14:34:35 EST
>
>
> A while back someone mentioned that the SPC700 chip was the same sound chip
> as in the <****> computer (forget which one), and that they had made a
> really simple disassembler for it. If someone could point me towards any
> docs (books) on the spc700, or possibly if it isn't too much trouble, the
> intruction set of the spc700 I would appreciate it.... I'm not looking for
> "programming the spc700 on the snes" Maybe just a <****> book with a chapter
> on programming sound using the spc700.... I realize that no one person out
> there knows how to do the music, sample formats, etc, but I think if we had
> a spc700 disassembler that a couple of us so inclined could start to work
> on the whole sound driver problem....
>
> thanks in advance....
>
> -jeremy
>
>
Welp music doesn't seem to be too bad. There is a really good musik ripper
on rhe Amiga that rips music out of SMC or BIN formats. I forgett the name,
since I don't have an Amiga :( .. oh well .. anyhoo here is some sample
source for playing a .SPC on the spc700 in the snez .. it's pretty
choppy but it's what I use.
REP #$30 ; X,Y FIXED -> 16 BIT MODE
SEP #$20 ; ACCUMULATOR -> 8 BIT MODE
LDA #$00
JSL $1C8000
LDA #$01
JSL $1C8000
LDA #$17
LDY #$0001
JSL $1C8000
LDA #$13
LDY #$003F
JSL $1C8000
LDY #$0004 ;<- Here Change your favourite TECHNO MuZaK
JSL $1C8000
...
...
...
;<- Here Your Source!
...
...
...
ORG $1C8000
MUSIC .BIN C:\SNEZ\DEMUZAK.SPC
-=-=-=-=-=-=-=-=-=-=-=
or you could do it this way
-=-=-=-=-=-=-=-=-=-=-=
PHB
REP #$30 ;A,X,Y 16 BIT
JSL $1F8000
PLB
PHB
REP #$30 ;A,X,Y 16 BIT
LDA #$01 ;<- CHANGE MUSIC
JSL $1F8004
LDA #$C0
JSL $1F8008
PLB
CLC
JSL $1F8014 ;STOP MUSIC
ORG $1B8000
.BIN C:\SNEZ\DEMUZIK.SPC
-=-=-=-=-=-=-=-=
Anhyhoo .. that's the same shit but a little clearer. Now the only propblem
with all this is you can't use your own musak .. 'cuz I don't know anyonwe
who knows the format or even if a composer exists. But, my original
post refered to samples and sound effects. 'cuz I don't knowe ANYONE
wjho knows who those work 100% .. oh well .. ttyl
-=SPiFF=-
DMA (dma.txt)
From: LAY@uk.tele.nokia.fi
To: "Super Famicom Development Group" <famidev@busop.cit.wayne.edu>
Subject: RE: Assorted questions...
>> 2) I asked a question before about HDMA, and I got replies saying that
>> it has something to do with the horizontal interrupt or horizontal
>> blank time (I forget which). Later on I saw people talking about
>> HDMA "channels". Could someone please tell me what the "channels"
>> are used for, or are they another name for a register or a memory
>> storage location?
It's probably best to start by explaning "normal" DMA. The SNES
supports 8 DMA channels which allow data to be copied to VRAM
extremely quickly, bypassing the 65c816 processor. Each channel
consists of the following registers.
Byte $43?0 DMA channel ? control register
Byte $43?1 DMA channel ? destination
Word $43?2 DMA channel ? source address offset
Byte $43?4 DMA channel ? source address bank
Word $43?5 DMA channel ? transfer bytes
where ? is 0..7
A value of $01 written to the DMA channel control register at
$43?0 indicates that we're using "normal" DMA. The graphics
register destination is formed by using $21 as the high byte
of the address and using the byte specified at $43?1 as the
low byte. Hence you can DMA to any of the graphics registers
between $2100..$21FF.
There is also a DMA control register.
Byte $420B DMA control register
Here bit 0 enables channel 0, bit 1 enables channel 1 etc...
For example, suppose I wanted to copy a 32 x 32 character
screen map (ie. $800 bytes) from location $18000 in ROM into
location $0000 of VRAM. I could do this using DMA channel 0
with the following code (A is 8-bits, X & Y are 16-bits).
ldx.w #$0000 ; set VRAM pointer to $0000
stx $2116
lda #$01 ; control value for "normal" DMA
sta $4300
lda #$18 ; dma to $2118
sta $4301
ldx.w #$8000 ; source offset
stx $4302
lda #$01 ; source bank
sta $4304
ldx.w #$0800 ; number of bytes
stx $4305
lda #$01 ; enable DMA channel 0
sta $420B
And that's all there is to it. After completion of the last
instruction "sta $420B" the $800 bytes at $18000 will have
been copied into VRAM at location $0000.
HDMA allows you to use any combination of these DMA channels
to modify graphics registers just before the start of every
horizontal scan line.
To use HDMA you have to write a value of $00 or $02 to the
DMA channel control register at $43?0 to indicate "horizontal"
DMA. Writing $00 indicates a byte is to be DMA'd each scan
line, writing $02 indicates a word. The DMA channel destination
at $43?1 works just as before with "normal" DMA. The source
address offset and bank registers at $43?2 & $43?4 will point
to a HDMA table. The transfer bytes register at $43?5 is not
used.
The format of the HDMA table depends on the value you have
written to the DMA channel control register. If you have
written $00 then a byte will be written to the selected
graphics register each scan line. The table should have the
following format.
hdma_table
Byte n ; number of bytes that follow (7-bit value 0..127)
Byte value_1, value_2, value_3 ... value_n
Byte n ; number of bytes that follow (7-bit value 0..127)
Byte value_1, value_2, value_3 ... value_n
.
etc
.
Byte 0 ; ends list
The table is made up of a number of entries. The first byte
in each entry is a count on the number of bytes that follow.
The table is terminated by a 0 entry.
If you have written $02 to the DMA channel control register
then a word will be written to the selected graphics register
each scan line. The table should have the following format.
hdma_table
Byte n ; # times to repeat next word (7-bit value 0..127)
Word value
Byte n ; # times to repeat next word (7-bit value 0..127)
Word value
.
etc
.
Byte 0 ; ends list
The table is made up of a number of entries. The first byte of
each entry indicates the number of times the following word is
to be repeated. The table is terminated by a 0 entry.
The only other thing you'll need to know is that there is a
HDMA control register.
Byte $420C HDMA control register
This is the same format as the DMA control register at $420B,
ie. bit 0 enables HDMA channel 0, bit 1 enables channel 1 etc...
For example, suppose halfway down the screen I want to scroll
graphics plane 0 left by 128 pixels.
lda #$02 ; word format HDMA (count, word)
sta $4300
lda #$0D ; plane 0 x-scroll at $210D
sta $4301
ldx.w #hdma_table&$FFFF ; hdma table offset
stx $4302
lda #hdma_table/$10000 ; hdma table bank
sta $4304
lda #$01 ; enable HDMA channel 0
sta $420c
.
.
.
hdma_table
dc.b 112 ; for first 112 scan lines
dc.w 0 ; set plane 0 x-scroll to 0
dc.b 1 ; on next scan line
dc.w 128 ; set plane 0 x-scroll to 128
dc.b 0
You can use HDMA channels in combination, ie. you could use HDMA
channel 0 to select a colour register and HDMA channel 1 to write
the RGB data for that colour register.
I don't have access to any of the official Nintendo documentation
so I may not have entirely understood everything about HDMA but
this is a much as I've been able to work out. Maybe there are other
(H)DMA modes too?
I'll should have put a simple HDMA demo with source code on the
busop.cit.wayne.edu ftp site (in pub/famidev/incoming/hdmademo.zip).
Hope that helps.
Paul.
fastrom.txt
From: LAY@uk.tele.nokia.fi
To: "Super Famicom Development Group" <FAMIDEV@BUSOP.CIT.WAYNE.EDU>
Subject: The need for speed revisited...
Date: Wed, 16 Feb 1994 11:00:49 GMT
I unsubscribed from this mailing list after my suggestion that
maybe the processor would run faster when executing from RAM
brought responses such as "if you want something to run that
fast you should use a PC" which quickly turned into a whole
barrage of "my Amiga is faster than your PC" mails. Just the
sort of comments I was hoping to get from this mailing
list... )-: However I'm changing jobs and I don't know whether
I'll have internet access at my new job, so I'd better make
the most of it...
So, for anyone like myself who wants to get the most out
of their SNES I thought I'd let you know that I've managed to
run the program in FASTROM which has resulted in a 33% speed
improvement - the 65816 runs at 3.58Mhz rather than 2.68Mhz.
This is possible because the ROMs have a faster access time
- hence the reason I thought it may be possible with RAM which
typically has faster access times than ROM.
So how's it done?
The SNES lets you access ROM through bank $00 onwards and bank
$80 onwards such that locations $008000 and $808000, $008001 and
$808001, $008002 and $808002 etc... all access the same locations.
When accessing bank $00 onwards the 65816 runs at 2.68Mhz. However,
when accessing bank $80 onwards the 65816 can run at 2.68Mhz or
3.58Mhz depending on how you set bit 0 of $420D.
So all you have to do is assemble your program so that it
starts at $808000, make sure you set the programming and
data banks to $80 (K and D) and set bit 0 of $420D. You'll
also need to mask off the bank part of the run/reset vector
and vertical blank interrupt locations.
Paul.
PS. I also see that the source code for an early version of my
GIF2SNES program has made it onto the ftp site by a somewhat
indirect route (UK->NZ->AUS->USA). If someone wanted
this source code let me know and I'll post the latest fully
optimising version.
Sprite RAM Information (ram.txt)
From: vic@physci.psu.edu (Vic Ricker)
To: "Super Famicom Development Group" <famidev@busop.cit.wayne.edu>
Subject: Re: some programming questions
Date: Tue, 9 Nov 93 20:20:35 EST
>Hi Folks.
>I need help with a few SNES programming questions...
>(1) Can anyone tell me how to make noises come out of my SNES?
Insert your favorite cart, power up the TV, switch the snes power to
ON.. :-)
>(3) Is the sprite position table held in RAM or VRAM? And how
> do the 5 address bits in $2101 relate to this location?
The sprite images are stored in VRAM. The palettes for the sprites
are stored in CGRAM. The coordinates and char attributes are stored
in OAM.
The format of each OBJ is:
OBJ H position: 8 bits
OBJ V position: 8 bits
V flip: 1 bit
H flip: 1 bit
OBJ priority: 2 bits
color palette: 3 bits
character name: 9 bits
there are 128 of these in sequence making 512 bytes then 32 bytes
follow in the format:
size: 1 bit
x msb: 1 bit
there are 128 of these (one for every OBJ) making 32 more bytes.
$2101 is OBJSEL
it chooses the size of sprites to use and also sets the address of the
images in VRAM. the top 3 bits chose the size:
000 means 8x8 and 16x16 sprites
001 8x8 and 32x32
010 8x8 and 64x64
011 16x16 and 32x32
100 16x16 and 64x64
101 32x32 and 64x64
the other bits are the address in vram of the sprite images.
$2102-$2103 is OAMADDL/H
the lower 9 bits are the address for accessing the OAM. (like $2116
for VRAM)
the high bit (15) enables priority rotation (causes OBJ's to change
priority as to keep them from disappearing totally when time out and range
over occur.)
$2104 is OAMDATA
it is the write register for the OAM. (like $2118-$2119 for VRAM)
$2138 is *OAMDATA
it is the read register for the OAM.
Hope this gives you enough to play with. Most is from memory, I hope
its all correct. :-)
Lemme know if you have questions.
Famicon CPU G65SC802 / G65SC816 Instructionset
********************************************************
* *
* Famicon CPU G65SC802 / G65SC816 Instructionset *
* *
* Compiled by Carnivore/BeerMacht on 23-Aug-92 *
* using BeerMon V0.43 *
* *
* FreeWare! *
* *
********************************************************
>_00060000 e2 30 sep #$30 a,x,y:8bit ;â0
>_00060002 69 12 adc #$12 ;i.
>_00060004 65 12 adc $12 ;e.
>_00060006 75 12 adc $12,x ;u.
>_00060008 72 12 adc ($12) ;r.
>_0006000a 61 12 adc ($12,x) ;a.
>_0006000c 71 12 adc ($12),y ;q.
>_0006000e 67 12 adc [$12] ;g.
>_00060010 77 12 adc [$12],y ;w.
>_00060012 6d 34 12 adc $1234 ;m4.
>_00060015 7d 34 12 adc $1234,x ;}4.
>_00060018 79 34 12 adc $1234,y ;y4.
>_0006001b 6f 56 34 12 adc $123456 ;oV4.
>_0006001f 7f 56 34 12 adc $123456,x ;V4.
>_00060023 63 12 adc $12,s ;c.
>_00060025 73 12 adc ($12,s),y ;s.
>_00060027 29 12 and #$12 ;).
>_00060029 25 12 and $12 ;%.
>_0006002b 35 12 and $12,x ;5.
>_0006002d 32 12 and ($12) ;2.
>_0006002f 21 12 and ($12,x) ;!.
>_00060031 31 12 and ($12),y ;1.
>_00060033 27 12 and [$12] ;'.
>_00060035 37 12 and [$12],y ;7.
>_00060037 2d 34 12 and $1234 ;-4.
>_0006003a 3d 34 12 and $1234,x ;=4.
>_0006003d 39 34 12 and $1234,y ;94.
>_00060040 2f 56 34 12 and $123456 ;/V4.
>_00060044 3f 56 34 12 and $123456,x ;?V4.
>_00060048 23 12 and $12,s ;#.
>_0006004a 33 12 and ($12,s),y ;3.
>_0006004c 0a asl a ;.
>_0006004d 06 12 asl $12 ;..
>_0006004f 16 12 asl $12,x ;..
>_00060051 0e 34 12 asl $1234 ;.4.
>_00060054 1e 34 12 asl $1234,x ;.4.
>_00060057 89 12 bit #$12 ;..
>_00060059 24 12 bit $12 ;$.
>_0006005b 34 12 bit $12,x ;4.
>_0006005d 2c 34 12 bit $1234 ;,4.
>_00060060 3c 34 12 bit $1234,x ;<4.
>_00060063 c9 12 cmp #$12 ;É.
>_00060065 c5 12 cmp $12 ;Å.
>_00060067 d5 12 cmp $12,x ;Õ.
>_00060069 d2 12 cmp ($12) ;Ō.
>_0006006b c1 12 cmp ($12,x) ;Á.
>_0006006d d1 12 cmp ($12),y ;Ņ.
>_0006006f c7 12 cmp [$12] ;Į.
>_00060071 d7 12 cmp [$12],y ;Ũ.
>_00060073 cd 34 12 cmp $1234 ;Í4.
>_00060076 dd 34 12 cmp $1234,x ;Ý4.
>_00060079 d9 34 12 cmp $1234,y ;Ų4.
>_0006007c cf 56 34 12 cmp $123456 ;ÏV4.
>_00060080 df 56 34 12 cmp $123456,x ;ßV4.
>_00060084 c3 12 cmp $12,s ;Ã.
>_00060086 d3 12 cmp ($12,s),y ;Ó.
>_00060088 e0 12 cpx #$12 ;ā.
>_0006008a e4 12 cpx $12 ;ä.
>_0006008c ec 34 12 cpx $1234 ;ė4.
>_0006008f c0 12 cpy #$12 ;Ā.
>_00060091 c4 12 cpy $12 ;Ä.
>_00060093 cc 34 12 cpy $1234 ;Ė4.
>_00060096 3a dec a ;:
>_00060097 c6 12 dec $12 ;Æ.
>_00060099 d6 12 dec $12,x ;Ö.
>_0006009b ce 34 12 dec $1234 ;Î4.
>_0006009e de 34 12 dec $1234,x ;Þ4.
>_000600a1 49 12 eor #$12 ;I.
>_000600a3 45 12 eor $12 ;E.
>_000600a5 55 12 eor $12,x ;U.
>_000600a7 52 12 eor ($12) ;R.
>_000600a9 41 12 eor ($12,x) ;A.
>_000600ab 51 12 eor ($12),y ;Q.
>_000600ad 47 12 eor [$12] ;G.
>_000600af 57 12 eor [$12],y ;W.
>_000600b1 4d 34 12 eor $1234 ;M4.
>_000600b4 5d 34 12 eor $1234,x ;]4.
>_000600b7 59 34 12 eor $1234,y ;Y4.
>_000600ba 4f 56 34 12 eor $123456 ;OV4.
>_000600be 5f 56 34 12 eor $123456,x ;_V4.
>_000600c2 43 12 eor $12,s ;C.
>_000600c4 53 12 eor ($12,s),y ;S.
>_000600c6 1a inc a ;.
>_000600c7 e6 12 inc $12 ;æ.
>_000600c9 f6 12 inc $12,x ;ö.
>_000600cb ee 34 12 inc $1234 ;î4.
>_000600ce fe 34 12 inc $1234,x ;þ4.
>_000600d1 a9 12 lda #$12 ;Đ.
>_000600d3 a5 12 lda $12 ;Ĩ.
>_000600d5 b5 12 lda $12,x ;ĩ.
>_000600d7 b2 12 lda ($12) ;ē.
>_000600d9 a1 12 lda ($12,x) ;Ą.
>_000600db b1 12 lda ($12),y ;ą.
>_000600dd a7 12 lda [$12] ;§.
>_000600df b7 12 lda [$12],y ;·.
>_000600e1 ad 34 12 lda $1234 ;4.
>_000600e4 bd 34 12 lda $1234,x ;―4.
>_000600e7 b9 34 12 lda $1234,y ;đ4.
>_000600ea af 56 34 12 lda $123456 ;ŊV4.
>_000600ee bf 56 34 12 lda $123456,x ;ŋV4.
>_000600f2 a3 12 lda $12,s ;Ģ.
>_000600f4 b3 12 lda ($12,s),y ;ģ.
>_000600f6 a2 12 ldx #$12 ;Ē.
>_000600f8 a6 12 ldx $12 ;Ķ.
>_000600fa b6 12 ldx $12,y ;ķ.
>_000600fc ae 34 12 ldx $1234 ;Ū4.
>_000600ff be 34 12 ldx $1234,y ;ū4.
>_00060102 a0 12 ldy #$12 ; .
>_00060104 a4 12 ldy $12 ;Ī.
>_00060106 b4 12 ldy $12,x ;ī.
>_00060108 ac 34 12 ldy $1234 ;Ž4.
>_0006010b bc 34 12 ldy $1234,x ;ž4.
>_0006010e 46 12 lsr $12 ;F.
>_00060110 56 12 lsr $12,x ;V.
>_00060112 4e 34 12 lsr $1234 ;N4.
>_00060115 5e 34 12 lsr $1234,x ;^4.
>_00060118 09 12 ora #$12 ;..
>_0006011a 05 12 ora $12 ;..
>_0006011c 15 12 ora $12,x ;..
>_0006011e 12 12 ora ($12) ;..
>_00060120 01 12 ora ($12,x) ;..
>_00060122 11 12 ora ($12),y ;..
>_00060124 07 12 ora [$12] ;..
>_00060126 17 12 ora [$12],y ;..
>_00060128 0d 34 12 ora $1234 ;.4.
>_0006012b 1d 34 12 ora $1234,x ;.4.
>_0006012e 19 34 12 ora $1234,y ;.4.
>_00060131 0f 56 34 12 ora $123456 ;.V4.
>_00060135 1f 56 34 12 ora $123456,x ;.V4.
>_00060139 03 12 ora $12,s ;..
>_0006013b 13 12 ora ($12,s),y ;..
>_0006013d 2a rol a ;*
>_0006013e 26 12 rol $12 ;&.
>_00060140 36 12 rol $12,x ;6.
>_00060142 2e 34 12 rol $1234 ;.4.
>_00060145 3e 34 12 rol $1234,x ;>4.
>_00060148 6a ror a ;j
>_00060149 66 12 ror $12 ;f.
>_0006014b 76 12 ror $12,x ;v.
>_0006014d 6e 34 12 ror $1234 ;n4.
>_00060150 7e 34 12 ror $1234,x ;~4.
>_00060153 e9 12 sbc #$12 ;é.
>_00060155 e5 12 sbc $12 ;å.
>_00060157 f5 12 sbc $12,x ;õ.
>_00060159 f2 12 sbc ($12) ;ō.
>_0006015b e1 12 sbc ($12,x) ;á.
>_0006015d f1 12 sbc ($12),y ;ņ.
>_0006015f e7 12 sbc [$12] ;į.
>_00060161 f7 12 sbc [$12],y ;ũ.
>_00060163 ed 34 12 sbc $1234 ;4.
>_00060166 fd 34 12 sbc $1234,x ;ý4.
>_00060169 f9 34 12 sbc $1234,y ;ų4.
>_0006016c ef 56 34 12 sbc $123456 ;ïV4.
>_00060170 ff 56 34 12 sbc $123456,x ;ĸV4.
>_00060174 e3 12 sbc $12,s ;ã.
>_00060176 f3 12 sbc ($12,s),y ;ó.
>_00060178 85 12 sta $12 ;..
>_0006017a 95 12 sta $12,x ;..
>_0006017c 92 12 sta ($12) ;..
>_0006017e 81 12 sta ($12,x) ;..
>_00060180 91 12 sta ($12),y ;..
>_00060182 87 12 sta [$12] ;..
>_00060184 97 12 sta [$12],y ;..
>_00060186 8d 34 12 sta $1234 ;.4.
>_00060189 9d 34 12 sta $1234,x ;.4.
>_0006018c 99 34 12 sta $1234,y ;.4.
>_0006018f 8f 56 34 12 sta $123456 ;.V4.
>_00060193 9f 56 34 12 sta $123456,x ;.V4.
>_00060197 83 12 sta $12,s ;..
>_00060199 93 12 sta ($12,s),y ;..
>_0006019b 86 12 stx $12 ;..
>_0006019d 96 12 stx $12,y ;..
>_0006019f 8e 34 12 stx $1234 ;.4.
>_000601a2 84 12 sty $12 ;..
>_000601a4 94 12 sty $12,x ;..
>_000601a6 8c 34 12 sty $1234 ;.4.
>_000601a9 64 12 stz $12 ;d.
>_000601ab 74 12 stz $12,x ;t.
>_000601ad 9c 34 12 stz $1234 ;.4.
>_000601b0 9e 34 12 stz $1234,x ;.4.
>_000601b3 14 12 trb $12 ;..
>_000601b5 1c 34 12 trb $1234 ;.4.
>_000601b8 04 12 tsb $12 ;..
>_000601ba 0c 34 12 tsb $1234 ;.4.
>_000601bd c2 30 rep #$30 a,x,y:16bit ;Â0
>_000601bf 69 34 12 adc #$1234 ;i4.
>_000601c2 29 34 12 and #$1234 ;)4.
>_000601c5 89 34 12 bit #$1234 ;.4.
>_000601c8 c9 34 12 cmp #$1234 ;É4.
>_000601cb e0 34 12 cpx #$1234 ;ā4.
>_000601ce c0 34 12 cpy #$1234 ;Ā4.
>_000601d1 49 34 12 eor #$1234 ;I4.
>_000601d4 a9 34 12 lda #$1234 ;Đ4.
>_000601d7 a2 34 12 ldx #$1234 ;Ē4.
>_000601da a0 34 12 ldy #$1234 ; 4.
>_000601dd 09 34 12 ora #$1234 ;.4.
>_000601e0 e9 34 12 sbc #$1234 ;é4.
>_000601e3 e2 30 sep #$30 a,x,y:8bit ;â0
>_000601e5 90 fe bcc $601e5 ;.þ
>_000601e7 b0 fc bcs $601e5 ;°ü
>_000601e9 f0 fa beq $601e5 ;ðú
>_000601eb 30 f8 bmi $601e5 ;0ø
>_000601ed d0 f6 bne $601e5 ;Ðö
>_000601ef 10 f4 bpl $601e5 ;.ô
>_000601f1 80 f2 bra $601e5 ;.ō
>_000601f3 50 f0 bvc $601e5 ;Pð
>_000601f5 70 ee bvs $601e5 ;pî
>_000601f7 18 clc ;.
>_000601f8 d8 cld ;Ø
>_000601f9 58 cli ;X
>_000601fa b8 clv ;ļ
>_000601fb ca dex ;Ę
>_000601fc 88 dey ;.
>_000601fd e8 inx ;č
>_000601fe c8 iny ;Č
>_000601ff ea nop ;ę
>_00060200 f4 34 12 pea $1234 ;ô4.
>_00060203 d4 12 pei ($12) ;Ô.
>_00060205 62 fd ff per $60205 ;býĸ
>_00060208 48 pha ;H
>_00060209 8b phb ;.
>_0006020a 0b phd ;.
>_0006020b 4b phk ;K
>_0006020c 08 php ;.
>_0006020d da phx ;Ú
>_0006020e 5a phy ;Z
>_0006020f 68 pla ;h
>_00060210 ab plb ;Ŧ
>_00060211 2b pld ;+
>_00060212 28 plp ;(
>_00060213 fa plx ;ú
>_00060214 7a ply ;z
>_00060215 38 sec ;8
>_00060216 f8 sed ;ø
>_00060217 78 sei ;x
>_00060218 aa tax ;Š
>_00060219 a8 tay ;Ļ
>_0006021a 5b tcd ;[
>_0006021b 7b tdc ;{
>_0006021c 3b tsc ;;
>_0006021d ba tsx ;š
>_0006021e 8a txa ;.
>_0006021f 9a txs ;.
>_00060220 9b txy ;.
>_00060221 98 tya ;.
>_00060222 fb xce ;û
>_00060223 00 12 brk #$12 ;..
>_00060225 82 fd ff brl $60225 ;.ýĸ
>_00060228 02 12 cop #$12 ;..
>_0006022a dc 34 12 jml ($1234) ;Ü4.
>_0006022d 4c 34 12 jmp $1234 ;L4.
>_00060230 6c 34 12 jmp ($1234) ;l4.
>_00060233 7c 34 12 jmp ($1234,x) ;|4.
>_00060236 5c 56 34 12 jmp $123456 ;\V4.
>_0006023a 22 56 34 12 jsl $123456 ;"V4.
>_0006023e 20 34 12 jsr $1234 ; 4.
>_00060241 fc 34 12 jsr ($1234,x) ;ü4.
>_00060244 54 34 12 mvn $1234 ;T4.
>_00060247 44 34 12 mvp $1234 ;D4.
>_0006024a c2 30 rep #$30 a,x,y:16bit ;Â0
>_0006024c 40 rti ;@
>_0006024d 6b rtl ;k
>_0006024e 60 rts ;`
>_0006024f e2 30 sep #$30 a,x,y:8bit ;â0
>_00060251 db stp ;Û
>_00060252 cb wai ;Ë
>_00060253 eb xba ;ë
- EOT -
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++