Jump to content

fenrock

Members
  • Content Count

    176
  • Joined

  • Last visited

Community Reputation

118 Excellent

1 Follower

About fenrock

  • Rank
    Chopper Commander

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. The PDF is so good. Especially the coffee stains on page 71! Awesome stuff.
  2. Thanks src/main/fragment/mos6502-undoc/vbuxx=vbum1_minus_vbuc1.asm: lax {m1} axs #{c1} src/main/fragment/mos6502-undoc/vbuxx=vbum1_plus_vbuc1.asm lax {m1} axs #-[{c1}] I can't comment on Sally differences, I'm a mere novice here!
  3. You're actually correct, I wrote it down on my list, then not in the table. I've edit my original post. Thanks for checking!
  4. Just picked up this thread about the Illegal opcodes being used in kickc generated code, I commented over there why it's happening. The opcode generated should be $cb, which according to the Polish page for sally should work fine as "SBX #n". So it's odd the code is crashing. However, for other codes I've just looked at all the kickc instructions marked as illegal but usable in the MOS6502X CPU. The following are the only ones it uses that the Sally page above says are Unstable (work as described only on 6502C processors from some manufacturers) are: KickC sally opcode comments ----------------------------------------- xaa #n ane #n 0x8b no fragments in kickc use this instruction ahx (z),y sha (z),y 0x93 no fragments in kickc use this instruction tas M,y shs q,y 0x9b no fragments in kickc use this instruction ahx M,y sha q,y 0x9f no fragments in kickc use this instruction lax #n anx #n 0xab 2 fragments use this instruction las M,y las q,y 0xbb no fragments in kickc use this instruction It doesn't explain why you're getting errors running AXS, but does highlight some potential issues with other instructions. For AXS there are 14 fragments that use that instruction in KickC. @JesperGravgaard this might be one for the backlog to mark the atari 6502C instructions differently to the MOS6502X ones? EDIT: Hadn't realised the conversation was about 65C02, not 6502C.
  5. The default target file for atarixl is defined as: { "description": "Atari XL/XE executable XEX file with a single segment.", "cpu": "MOS6502X", "link": "atarixl.ld", "start_address": "0x2000", "zp_reserve": [ "0x00..0x7f" ], "encoding": "atascii", "extension": "xex", "emulator": "atari800 -xl", "defines": { "__ATARIXL__": 1 } } That 6502 CPU definitions in kickc are: /** Vanilla MOS 6502 CPU - no illegal opcodes, allows self-modifying code. */ MOS6502("mos6502", CPU_6502NoIllegals.name, Cpu6502Official.INSTANCE, Arrays.asList(Feature.MOS6502_COMMON, Feature.MOS6502_SELFMOD)), /** MOS 6502 CPU - allows illegal instructions, allows self-modifying code. */ MOS6502X("mos6502x", CPU_6502WithIllegals.name, Cpu6502Illegal.INSTANCE, Arrays.asList(Feature.MOS6502_COMMON, Feature.MOS6502_UNODC, Feature.MOS6502_SELFMOD)), And the Cpu6502Illegal.INSTANCE defines axs addOpcode(0xcb, "axs", CpuAddressingMode.IMM, 2.0, "Xcnz"); as an available opcode. I haven't come across any scenarios myself where that is being used, maybe more by luck than anything.
  6. I use this site to help, it exports values (in many formats) and validates the list for you: https://bocianu.gitlab.io/fidl/ Here's an image for what I think you want: You can adjust blank lines at the bottom/top as required. Export of "BASIC" format is: 10000 DATA 70,70,70,48,40,9c,08,08,08,08 10010 DATA 08,08,08,08,08,08,08,08,08,08 10020 DATA 08,08,08,08,08,70,07,07,07,41 10030 DATA 20,9c
  7. Only instructions use memory, not equates
  8. Nice!! I was tempted to do the same for the entire advent, but the puzzles get extremely hard, and I need my testing framework, and some solutions require very large numbers (last year's day 12 part 2 solution was "303070460651184", so would need 40 bit integers at least. Also we have a work leader board. There's 27 of us, and I'm currently 2nd, and want to get solutions fast I'm that competitive sadly. My code is at https://github.com/markjfisher/advent-of-code/tree/master/advents/src/main/kotlin/net/fish/y2020 if you fancy getting tempted by Kotlin over Java
  9. @Dmitry you're welcome. keep questions coming if you have any. I'm currently working my way through translating a fairly chunky cc65 project into kickc. Oh and doing the AOC challenge now it's December
  10. If you need an equivalent for UK, I can help, but don't know how many you have to send here.
  11. The up/down arrows mean "The score indicates big number is better if the arrow points up", and opposite for down. They are not relative to the MP versions of the tests, just an indicator if a big number is a good thing, or a bad thing. As @zbyti previously said, wherever the word "frames" is in the name, the test runs for a fixed number of frames, so you want a higher score (e.g. GTIA flames does 250 frames and we count how many times the screen is fully re-rendered in that time, so higher is better). For names without "frames" in it, it's a test that just runs until it completes, e.g. doing an MD5 calculation 5 times on a 512 byte array. You want to go faster, so score (which is effectively the number of frames to complete it) should be lower.
  12. A couple of one liners for any unix variant. On Windows, I always install Cygwin to get these functions. I've never been able to get on with powershell. With "tr": tr '\233' '\n' < ~/Downloads/PRNTSC1.SRC Equivalent in sed (the king of all line editors) sed 's#\x9b#\n#g' < ~/Downloads/PRNTSC1.SRC
  13. http://forum.6502.org/viewtopic.php?p=62141&sid=23dba856425b702dba7e4b4be77fa141#p62141 This mentions it being the "Batari Basic rand16" function.
  14. A useful resource to see what modes are available is http://www.6502.org/tutorials/6502opcodes.html#JSR From the link above, you can see JSR only has Absolute addressing, but JMP has Indirect too.
×
×
  • Create New...