Megalextoria
Retro computing and gaming, sci-fi books, tv and movies and other geeky stuff.

Home » Digital Archaeology » Computer Arcana » Apple » Apple II » 6502bench SourceGen disassembler updated
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Re: 6502bench SourceGen disassembler updated [message #388096 is a reply to message #387885] Fri, 25 October 2019 21:32 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: fadden

6502bench SourceGen v1.4-alpha1 is now available. Changes:

- Added a message list to point out subtle problems, like bad formatting or references to nonexistent symbols.
- Added an instruction chart. The window displays a summary of all 256 instructions for the selected CPU (6502, 65C02, or 65816).
- Tweaked some stuff in the UI.
- Updated the tutorial with a section on inline data formatting, and a section on extension scripts.

Source code and pre-built Windows binaries are available from https://github.com/fadden/6502bench/releases
Re: 6502bench SourceGen disassembler updated [message #388097 is a reply to message #387885] Fri, 25 October 2019 21:38 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: fadden

I have updated the projects at https://bigflake.com/disasm/ to use the features available in SourceGen v1.4, and added a new project.

Bob Bishop's Micro-Painter fascinated me because of two features. First, it had a flood fill that actually looked like a flood. Second, it had a "zoom" mode that used the lo-res screen to let you edit the hi-res screen.

If you haven't seen the program in action before, I captured a brief video here: https://www.youtube.com/watch?v=ylpZI_E1T88

I always wondered how it worked. Now I know. :-)

https://bigflake.com/disasm/a2-micropainter/
Re: 6502bench SourceGen disassembler updated [message #388100 is a reply to message #385700] Sat, 26 October 2019 00:54 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: Frank M.

I've been playing around with Apple-1 stuff and came up with a symbol list for the machine, if you're interested in adding it to SourceGen.

f


Apple-1 Symbol List.sym65

*Apple-1 symbol list for SourceGen
*2019 Frank Milliron


*System Symbols

XAML @ $24 ;Last "opened" location Low
XAMH @ $25 ;Last "opened" location High
STL @ $26 ;Store address Low
STH @ $27 ;Store address High
L @ $28 ;Hex value parsing Low
H @ $29 ;Hex value parsing High
YSAV @ $2A ;Used to see if hex value is given
MODE @ $2B ;$00=XAM, $7F=STOR, $AE=BLOCK XAM

IN @ $0200,$027F ;Input buffer

USER4 @ $0280,0FFF ;User RAM (4k system)
USER8 @ $0280,1FFF ;User RAM (8k system)

KBD @ $D010 ;PIA.A keyboard input
KBDCR @ $D011 ;PIA.A keyboard control register
DSP @ $D012 ;PIA.B display output register
DSPCR @ $D013 ;PIA.B display control register



*WOZACI (Woz's Apple Cassette Interface) Symbols

HEX1L @ $24 ;End address of dump block
HEX1H @ $25
HEX2L @ $26 ;Begin address of dump block
HEX2H @ $27
SAVEINDEX @ $28 ;Save index in input buffer
LASTSTATE @ $29 ;Last input state

FLIP @ $C000 ;Output flip-flop
TAPEIN @ $C081 ;Tape input

WOZACI @ $C100 ;Apple Cassette Interface Entry
NEXTCHAR @ $C10C
KBDWAIT @ $C10D
NEXTCMD @ $C125 ;Start parsing first or a new tape command
NEXTCHR @ $C12F
DIG @ $C153
HEXSHIFT @ $C159
GOESC @ $C163 ;Return to monitor (ESCAPE), prints \ first
SEP @ $C166 ;Separating period found. Copy HEX1 to HEX2
WRITE @ $C170 ;Write a block of memory to tape
WRNEXT @ $C175
WBITLOOP @ $C17C
RESTIDX @ $C189
READ @ $C18D ;Read from tape
NOTSTART @ $C198
RDBYTE @ $C1A4
RDBIT @ $C1A6
FULLCYCLE @ $C1BC
CMPLEVEL @ $C1BF
WHEADER @ $C1CC ;Write header to tape
HCOUNT @ $C1CE
WRITEBIT @ $C1DB ;Write a full bit cycle
WDELAY @ $C1E0
WDELAY0 @ $C1E7
WRITE1 @ $C1EA
INCADDR @ $C1F1 ;Increment current address and compare with last
NOCARRY @ $C1FF ;RTS



*Apple-1 Cassette BASIC

BASIC @ $E000 ;Cold start location
WARMSTART @ $E2B3 ;Warm start location



*Apple-1 ROM

RESET @ $FF00 ;ROM cold start location
NOTCR @ $FF0F
ESCAPE @ $FF1A ;Escape back to monitor
GETLINE @ $FF1F
BACKSPACE @ $FF26
NEXTCHAR @ $FF29
SETSTOR @ $FF40
SETMODE @ $FF41
BLSKIP @ $FF43
NEXTITEM @ $FF44
NEXTHEX @ $FF5F ;trying to parse a new hex value
DIG @ $FF6E
HEXSHIFT @ $FF74
NOTHEX @ $FF7F
TONEXTITEM @ $FF91
RUN @ $FF94 ;RUN user's program from last opened location
NOTSTOR @ $FF97 ;We're not in Store mode
SETADR @ $FF9B
NXTPRNT @ $FFA4 ;Print address and data from this address
PRDATA @ $FFBA
XAMNEXT @ $FFC4
MOD8CHK @ $FFD6
PRBYTE @ $FFDC ;Subroutine to print a byte in A in hex form (destructive)
PRHEX @ $FFE5 ;Subroutine to print a hexadecimal digit
ECHO @ $FFEF ;Subroutine to print a character to the terminal
NMI_VEC @ $FFFA ;NMI vector ($0F00)
RESET_VEC @ $FFFC ;RESET vector ($FF00)
IRQ_VEC @ $FFFE ;IRQ vector ($0000)
Re: 6502bench SourceGen disassembler updated [message #388101 is a reply to message #385700] Sat, 26 October 2019 00:57 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: Frank M.

I also have a much-expanded symbol list for the Apple /// that's in a semi-not finished state currently.
f
Re: 6502bench SourceGen disassembler updated [message #388110 is a reply to message #388100] Sat, 26 October 2019 11:43 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: fadden

On Friday, October 25, 2019 at 9:54:33 PM UTC-7, Frank M. wrote:
> I've been playing around with Apple-1 stuff and came up with a symbol list for the machine, if you're interested in adding it to SourceGen.

Nice! I've added a .sym65 for it and updated the system definition list:

https://github.com/fadden/6502bench/commit/6344ea59bb1429230 521b0056071b76177ec1d70

Please give it a once-over. You can apparently leave comments directly on that change list by clicking on lines, though you might need to be signed in to do so.

I made a couple of changes:

> IN @ $0200,$027F ;Input buffer

Multi-byte items are "<address> <length>" rather than "<start>,<end>", so this became "$0200 128".

> USER4 @ $0280,0FFF ;User RAM (4k system)
> USER8 @ $0280,1FFF ;User RAM (8k system)

These would cause any memory reference outside the bounds of the program being disassembled to appear as "USER4 + <offset>", rather than just "$0F12" or whatever. That seemed undesirable, so I changed it to:

USER = $0280

So there's a constant for the start but it doesn't replace all unknown addresses.

> XAML @ $24 ;Last "opened" location Low
...
> HEX1L @ $24 ;End address of dump block

FYI: if you have multiple symbols for the same address in the same platform symbol file, the "lookup by address" function will resolve it alphabetically. So "LDA $24" will be auto-formatted as "LDA HEX1L" because it's lexically before "XAML". (You can of course set the LDA operand to the symbol of your choice, but that's a manual step.)

> I also have a much-expanded symbol list for the Apple /// that's in a semi-not finished state currently.

Another machine about which I know nearly nothing. :-) Anything that helps the Apple ///-ers would be welcome.
Re: 6502bench SourceGen disassembler updated [message #388117 is a reply to message #388110] Sat, 26 October 2019 15:01 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: Frank M.

On Saturday, October 26, 2019 at 8:43:29 AM UTC-7, fadden wrote:
> On Friday, October 25, 2019 at 9:54:33 PM UTC-7, Frank M. wrote:
>> I've been playing around with Apple-1 stuff and came up with a symbol list for the machine, if you're interested in adding it to SourceGen.
>
> Nice! I've added a .sym65 for it and updated the system definition list:
>
> https://github.com/fadden/6502bench/commit/6344ea59bb1429230 521b0056071b76177ec1d70
>
> Please give it a once-over. You can apparently leave comments directly on that change list by clicking on lines, though you might need to be signed in to do so.
>
> I made a couple of changes:
>
>> IN @ $0200,$027F ;Input buffer
>
> Multi-byte items are "<address> <length>" rather than "<start>,<end>", so this became "$0200 128".
>
>> USER4 @ $0280,0FFF ;User RAM (4k system)
>> USER8 @ $0280,1FFF ;User RAM (8k system)
>
> These would cause any memory reference outside the bounds of the program being disassembled to appear as "USER4 + <offset>", rather than just "$0F12" or whatever. That seemed undesirable, so I changed it to:
>
> USER = $0280
>
> So there's a constant for the start but it doesn't replace all unknown addresses.
>
>> XAML @ $24 ;Last "opened" location Low
> ...
>> HEX1L @ $24 ;End address of dump block
>
> FYI: if you have multiple symbols for the same address in the same platform symbol file, the "lookup by address" function will resolve it alphabetically. So "LDA $24" will be auto-formatted as "LDA HEX1L" because it's lexically before "XAML". (You can of course set the LDA operand to the symbol of your choice, but that's a manual step.)
>
>> I also have a much-expanded symbol list for the Apple /// that's in a semi-not finished state currently.
>
> Another machine about which I know nearly nothing. :-) Anything that helps the Apple ///-ers would be welcome.


I made up the labels USER4/8 anyway. :)


Yes, the Apple /// is a bit under-documented. I've been using MAME memory dumps and SourceGen to look at various programs and found a lot of references to things not in the available memory maps.


The Apple-1 is pretty well documented. Though it's such a limited machine there's not a lot to get. Side note, the only emulator which seems to work properly for this machine is OpenEmulator. For Apple /// it's MAME.

http://openemulator.github.io/


f
Re: 6502bench SourceGen disassembler updated [message #388148 is a reply to message #388097] Mon, 28 October 2019 17:55 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: fadden

I've long wondered what sort of algorithm DDDeluxe 5.0 applied when packing disk images. There were a number of competing programs in the pre-ShrinkIt days. ISTR DDDeluxe working better than most.

I started disassembling it, but kept finding lots of weird self-modifying code. Not the usual sorts of "set up the pointer I'm about to use a lot", but rather "let's copy this 3-byte JMP instruction on top of other code".

I wasn't sure why it was doing those things, until I found this:

..str ‘This message is for you, the asshole who tryto disassemble my ’
+ ‘program D.D.DeLUXE V5.0:I know why you do this: You don't hav’
+ ‘e enoughimagination to program your own packing algorithmand p’
+ ‘rogram.Because you are not enough intelligent, you preferto co’
+ ‘py what I did... That's the true!Don't forget this program is’
+ ‘ a SHAREWARE and it isa copyrighted product by LOGIX INNOVATIO’
+ ‘NS 1989.You can be pursuit for $10000 if you copy anypart of t’
+ ‘his program without the autorization ofLOGIX INNOVATIONS. Fuc’
+ ‘k you, NO-BRAND !’
Re: 6502bench SourceGen disassembler updated [message #388149 is a reply to message #388148] Mon, 28 October 2019 19:14 Go to previous messageGo to next message
Hugh Hood is currently offline  Hugh Hood
Messages: 678
Registered: November 2012
Karma: 0
Senior Member
in article d9d34128-0bbb-49f0-a7b1-47e1dfaf7f75@googlegroups.com, fadden at
thefadden@gmail.com wrote on 10/28/19 4:55 PM:
>
> I wasn't sure why it was doing those things, until I found this:
>
> .str ŒThis message is for you,
>

Andy,

That's hilarious!

Thanks for putting a big grin on my face today.




Hugh Hood
Re: 6502bench SourceGen disassembler updated [message #388156 is a reply to message #388148] Tue, 29 October 2019 01:14 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: fadden

I was disassembling an old game and thinking, "meh". The Budge 3D stuff had some nifty bits, but this other one just sort of sprawled in not very inspiring ways.

So I took a break and disassembled the $C600 Disk ][ firmware.

Genius.

https://bigflake.com/disasm/a2-boot/
Re: 6502bench SourceGen disassembler updated [message #388159 is a reply to message #388156] Tue, 29 October 2019 04:37 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: James Davis

On Monday, October 28, 2019 at 10:14:16 PM UTC-7, fadden wrote:
> I was disassembling an old game and thinking, "meh". The Budge 3D stuff had some nifty bits, but this other one just sort of sprawled in not very inspiring ways.
>
> So I took a break and disassembled the $C600 Disk ][ firmware.
>
> Genius.
>
> https://bigflake.com/disasm/a2-boot/

Downloaded the following:

Apple II 5.25 Disk Boot Disassembly
Applesoft Disassembly
Autostart ROM Disassembly

What is the assembler (style) you are using for the disassembly listings?
Could you add listings in the Merlin 32 format? It is closer to EDASM, which Apple II had, back in the day.
Re: 6502bench SourceGen disassembler updated [message #388161 is a reply to message #388148] Tue, 29 October 2019 05:44 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: Anthony Adverse

On Tuesday, October 29, 2019 at 8:55:39 AM UTC+11, fadden wrote:
> I've long wondered what sort of algorithm DDDeluxe 5.0 applied when packing disk images. There were a number of competing programs in the pre-ShrinkIt days. ISTR DDDeluxe working better than most.
>
> I started disassembling it, but kept finding lots of weird self-modifying code. Not the usual sorts of "set up the pointer I'm about to use a lot", but rather "let's copy this 3-byte JMP instruction on top of other code".
>
> I wasn't sure why it was doing those things, until I found this:
>
> .str ‘This message is for you, the asshole who tryto disassemble my ’
> + ‘program D.D.DeLUXE V5.0:I know why you do this: You don't hav’
> + ‘e enoughimagination to program your own packing algorithmand p’
> + ‘rogram.Because you are not enough intelligent, you preferto co’
> + ‘py what I did... That's the true!Don't forget this program is’
> + ‘ a SHAREWARE and it isa copyrighted product by LOGIX INNOVATIO’
> + ‘NS 1989.You can be pursuit for $10000 if you copy anypart of t’
> + ‘his program without the autorization ofLOGIX INNOVATIONS. Fuc’
> + ‘k you, NO-BRAND !’

I thought there was some level of consensus that DDD used huffman encoding?
Re: 6502bench SourceGen disassembler updated [message #388165 is a reply to message #388159] Tue, 29 October 2019 11:21 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: fadden

On Tuesday, October 29, 2019 at 1:37:56 AM UTC-7, James Davis wrote:
> Downloaded the following:
>
> Apple II 5.25 Disk Boot Disassembly
> Applesoft Disassembly
> Autostart ROM Disassembly
>
> What is the assembler (style) you are using for the disassembly listings?
> Could you add listings in the Merlin 32 format? It is closer to EDASM, which Apple II had, back in the day.

For the HTML output, I'm using Merlin-style string delimiters (but with curly quotes), default pseudo-ops, letter case, and expression style, and column widths tweaked slightly for each project (e.g. 12-8-16-100).

Of course, once you have the SourceGen project and the binary (both of which are included in the download ZIPs), you can generate HTML listings or fully working assembly code in whatever format you like. You can File > Assemble, select Merlin 32, and generate a working .S file. (If you have Merlin 32 installed, it'll even run the assembler for you just to prove that the output is correct.)

SourceGen doesn't yet support "retro" assemblers directly because that imposes additional constraints, like maximum file size limits, and it's harder to regression-test because you have to bounce everything through an emulator. Merlin 32 is close enough to the original that you probably wouldn't have to fix the syntax.
Re: 6502bench SourceGen disassembler updated [message #388166 is a reply to message #388161] Tue, 29 October 2019 11:33 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: fadden

On Tuesday, October 29, 2019 at 2:44:25 AM UTC-7, Anthony Adverse wrote:
> I thought there was some level of consensus that DDD used huffman encoding?

The original DDD did. Somebody did a disassembly back in the day, and I used that to add support to CiderPress ( https://github.com/fadden/ciderpress/blob/master/diskimg/DDD .cpp). It's essentially RLE + static Huffman. The 20 most-frequently-appearing symbols get output as prefix codes, the rest are output as 9-bit values.

I expect DDDeluxe is also Huffman based, since pretty much everything was until LZWhatever took over. But the devil is in the details, and the details are in the disassembly.

So I can (1) fight my way through code that doesn't want to be understood, (2) reverse-engineer the format by stuffing data in and seeing what comes out, or (3) decide nobody cares about the format and leave it rotting in the dustbin of history.

Currently going with #3.
Re: 6502bench SourceGen disassembler updated [message #388178 is a reply to message #388165] Tue, 29 October 2019 22:48 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: James Davis

On Tuesday, October 29, 2019 at 8:21:27 AM UTC-7, fadden wrote:
> On Tuesday, October 29, 2019 at 1:37:56 AM UTC-7, James Davis wrote:
>> Downloaded the following:
>>
>> Apple II 5.25 Disk Boot Disassembly
>> Applesoft Disassembly
>> Autostart ROM Disassembly
>>
>> What is the assembler (style) you are using for the disassembly listings?
>> Could you add listings in the Merlin 32 format? It is closer to EDASM, which Apple II had, back in the day.
>
> For the HTML output, I'm using Merlin-style string delimiters (but with curly quotes), default pseudo-ops, letter case, and expression style, and column widths tweaked slightly for each project (e.g. 12-8-16-100).
>
> Of course, once you have the SourceGen project and the binary (both of which are included in the download ZIPs), you can generate HTML listings or fully working assembly code in whatever format you like. You can File > Assemble, select Merlin 32, and generate a working .S file. (If you have Merlin 32 installed, it'll even run the assembler for you just to prove that the output is correct.)
>
> SourceGen doesn't yet support "retro" assemblers directly because that imposes additional constraints, like maximum file size limits, and it's harder to regression-test because you have to bounce everything through an emulator. Merlin 32 is close enough to the original that you probably wouldn't have to fix the syntax.

Sorry Andy, I figured it out before I read this.

Load the dis65 and Export using my 6502bench SourGen setup.

You are so quick with your disassemblies that rather than use 6502bench SourGen myself, I'll just hire you to do the jobs I want done. I'll send you the info if and when.
Re: 6502bench SourceGen disassembler updated [message #388180 is a reply to message #388178] Wed, 30 October 2019 00:39 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: fadden

On Tuesday, October 29, 2019 at 7:48:24 PM UTC-7, James Davis wrote:
> You are so quick with your disassemblies that rather than use 6502bench SourGen myself, I'll just hire you to do the jobs I want done. I'll send you the info if and when.

My hourly rate: ONE MILLLLLION DOLLARS
Re: 6502bench SourceGen disassembler updated [message #388181 is a reply to message #388166] Wed, 30 October 2019 00:54 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: fadden

WAIT just a second...

The listing of the original (non-autostart) monitor ROM, as found in the Apple II Reference Manual, says:

fca8: 38 WAIT sec
fca9: 48 WAIT2 pha
fcaa: e9 01 WAIT3 sbc #$01 ;1.0204 usec
fcac: d0 fc bne WAIT3 ;(13+2712*A+512*A*A)
fcae: 68 pla
fcaf: e9 01 sbc #$01
fcb1: d0 f6 bne WAIT2
fcb3: 60 rts

So there are two comments, and both seem completely wrong.

If we consult Apple II Monitors Peeled page 85, it says the formula is:

2.5A**2 + 13.5A + 13 machine cycles of 1.023 microseconds

However, my understanding is that the 6502 is running at 1.023MHz, so each cycle actually takes 0.9775 usec. Am I missing something, or did they get the math wrong?

The old monitor ROM listing in the Apple II Reference Manual had a lot more comments than the autostart version, so I transcribed it in SourceGen:
https://bigflake.com/disasm/a2-f8rom/OrigF8ROM.html
Re: 6502bench SourceGen disassembler updated [message #388182 is a reply to message #388181] Wed, 30 October 2019 13:17 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: awanderin

fadden <thefadden@gmail.com> writes:

> WAIT just a second...
>
> The listing of the original (non-autostart) monitor ROM, as found in the Apple II Reference Manual, says:
>
> fca8: 38 WAIT sec
> fca9: 48 WAIT2 pha
> fcaa: e9 01 WAIT3 sbc #$01 ;1.0204 usec
> fcac: d0 fc bne WAIT3 ;(13+2712*A+512*A*A)
> fcae: 68 pla
> fcaf: e9 01 sbc #$01
> fcb1: d0 f6 bne WAIT2
> fcb3: 60 rts
>
> So there are two comments, and both seem completely wrong.
>
> If we consult Apple II Monitors Peeled page 85, it says the formula is:
>
> 2.5A**2 + 13.5A + 13 machine cycles of 1.023 microseconds
>
> However, my understanding is that the 6502 is running at 1.023MHz, so each cycle actually takes 0.9775 usec. Am I missing something, or did they get the math wrong?
>
> The old monitor ROM listing in the Apple II Reference Manual had a lot more comments than the autostart version, so I transcribed it in SourceGen:
> https://bigflake.com/disasm/a2-f8rom/OrigF8ROM.html

The CPU has 64 clock periods of 14 * (1 / 14.318181 MHz) or 0.978µs and
one stretched period of 16 * (1 / 14.318181 MHz) or 1.117µs, which gives
an average clock period of 0.980µs. That works out to an average clock
speed of 1.0205 MHz.

I think the cycle count formula is 5 * a * a + 11 * a + 13, and that
includes the JSR/RTS.

--
Jerry awanderin at gmail dot com
Re: 6502bench SourceGen disassembler updated [message #388189 is a reply to message #388096] Wed, 30 October 2019 19:41 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: fadden

6502bench SourceGen v1.4 is now available. Key changes since v1.3:

- External address symbols, defined in symbol files and the project, have been enhanced:
- Symbols have widths, so you can declare pointers and buffers.
- Symbols may be unidirectional (read or write), for memory-mapped I/O.
- Symbols may be mirrored to multiple addresses (e.g. Atari 2600).
- Added .junk/.align directives.
- Added a message list that appears when problems are found.
- Added a CPU instruction reference chart.
- Added an option to treat BRK as two bytes.
- Extension script formatting capabilities have been expanded.
- Various UI improvements (e.g. "dark mode" for main listing, "find previous", slightly cleaner Info panel).

The project web site is https://6502bench.com/. Source code and pre-built Windows binaries are available from https://github.com/fadden/6502bench/releases
Re: 6502bench SourceGen disassembler updated [message #388190 is a reply to message #388182] Wed, 30 October 2019 19:45 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: fadden

On Wednesday, October 30, 2019 at 10:17:23 AM UTC-7, awanderin wrote:
>> fcaa: e9 01 WAIT3 sbc #$01 ;1.0204 usec
[...]
>> If we consult Apple II Monitors Peeled page 85, it says the formula is:
>>
>> 2.5A**2 + 13.5A + 13 machine cycles of 1.023 microseconds

> The CPU has 64 clock periods of 14 * (1 / 14.318181 MHz) or 0.978µs and
> one stretched period of 16 * (1 / 14.318181 MHz) or 1.117µs, which gives
> an average clock period of 0.980µs. That works out to an average clock
> speed of 1.0205 MHz.

Ah, that explains the number in the comment. Doesn't explain why apparently nobody at Apple understood the relationship between MHz and microseconds. :-)
Re: 6502bench SourceGen disassembler updated [message #388192 is a reply to message #388190] Thu, 31 October 2019 03:24 Go to previous messageGo to next message
Michael J. Mahon is currently offline  Michael J. Mahon
Messages: 1767
Registered: October 2012
Karma: 0
Senior Member
fadden <thefadden@gmail.com> wrote:
> On Wednesday, October 30, 2019 at 10:17:23 AM UTC-7, awanderin wrote:
>>> fcaa: e9 01 WAIT3 sbc #$01 ;1.0204 usec
> [...]
>>> If we consult Apple II Monitors Peeled page 85, it says the formula is:
>>>
>>> 2.5A**2 + 13.5A + 13 machine cycles of 1.023 microseconds
>
>> The CPU has 64 clock periods of 14 * (1 / 14.318181 MHz) or 0.978µs and
>> one stretched period of 16 * (1 / 14.318181 MHz) or 1.117µs, which gives
>> an average clock period of 0.980µs. That works out to an average clock
>> speed of 1.0205 MHz.
>
> Ah, that explains the number in the comment. Doesn't explain why
> apparently nobody at Apple understood the relationship between MHz and microseconds. :-)
>

That comment has always annoyed me, too. I’ve seen the error quoted
numerous times. It must have mystified or misled countless people.

It’s an example of why design reviews should include comments. ;-)

--
-michael - NadaNet 3.1 and AppleCrate II: http://michaeljmahon.com
How long will I WAIT? [message #388195 is a reply to message #388182] Thu, 31 October 2019 12:07 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: fadden

On Wednesday, October 30, 2019 at 10:17:23 AM UTC-7, awanderin wrote:
> fadden <thefadden@gmail.com> writes:
>> If we consult Apple II Monitors Peeled page 85, it says the formula is:
>>
>> 2.5A**2 + 13.5A + 13 machine cycles of 1.023 microseconds

> The CPU has 64 clock periods of 14 * (1 / 14.318181 MHz) or 0.978µs and
> one stretched period of 16 * (1 / 14.318181 MHz) or 1.117µs, which gives
> an average clock period of 0.980µs. That works out to an average clock
> speed of 1.0205 MHz.
>
> I think the cycle count formula is 5 * a * a + 11 * a + 13, and that
> includes the JSR/RTS.

The code is:

fca8: 38 WAIT sec ;2
fca9: 48 WAIT2 pha ;3
fcaa: e9 01 WAIT3 sbc #$01 ;2
fcac: d0 fc bne WAIT3 ;2+
fcae: 68 pla ;4
fcaf: e9 01 sbc #$01 ;2
fcb1: d0 f6 bne WAIT2 ;2+
fcb3: 60 rts ;6

The inner loop is 5 cycles, except the last iteration which is 4. It doesn't execute A^2 times though, because A decrements each time. If initially A=4, it executes 4+3+2+1 times. So it's A*(A+1)/2 * 5 cycles.

The outer loop executes A times, and takes 12 cycles. We can compensate for counting 1 too many cycles on the last iteration of the inner loop (branch-not-taken takes one fewer) by subtracting one here. So that's A*11.

Outside of that, we have 8 cycles of non-loop stuff (SEC/RTS). Again, we're over-counting the last outer loop by 1 cycle, so we call it 7. If we want to add the JSR that called here that's another 6 cycles, but I prefer to put that in the caller's account instead.

So it's A*(A+1)/2 * 5 + A*11 + 7

Applying algebra:
(A*A/2 + A/2) * 5 + A*11 + 7
A*A*5/2 + A*5/2 + A*11 + 7
A*A*2.5 + A*13.5 + 7

Throw in the 6-cycle JSR and you get the formula from Apple II Monitors Peeled. So the cycle-count part of their formula is correct.

What's Where in the Apple gives the same formula (and also multiplies by "1..02 microseconds").

Somewhere along the way I picked up "(26 + 27*Acc + 5*(Acc*Acc))/2 cycles", which is mathematically equivalent. I like it a bit better because multiplying cycles by .5 just feels weird.
Re: 6502bench SourceGen disassembler updated [message #388856 is a reply to message #388189] Tue, 19 November 2019 17:22 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: fadden

6502bench SourceGen v1.5.0-dev1 is now available. Key changes:

- Added non-unique local labels.
- Added label annotations.
- Added "go to last change" (moves selection to last edit).

Label annotations let you tack a '?' onto the end of a symbol. So if you're disassembling some code and see something that looks like it might hold high scores, but you're not sure, you can now give it the label "high_score?" instead of something like "high_score_maybe". The '?' is omitted when generating sources.

Non-unique local labels let you define labels with a scope that resets whenever a global variable is encountered. All supported cross-assemblers (64tass, ACME, cc65, Merlin 32) have something like this. For example:

first ldx #$05
:loop dex
bne :loop

second ldy #$03
:loop dey
bne :loop

Because SourceGen is a disassembler and always knows which label goes with which address, you can write things that would gag an assembler:

:loop ldx #$05
:loop dex
bne :loop
dey
bne :loop
beq :done
global nop
:done lda #$01

Labels will be adjusted as needed to generate code that assembles. In this case, the inner loop would become ":loop1", and ":done" would be promoted to a global label.

Newly-created labels now default to global. (They were previously "unique locals", meaning the code generator would try to make them be local, but insisted that they have a unique name.)


The project web site is https://6502bench.com/. Source code and pre-built Windows binaries are available from https://github.com/fadden/6502bench/releases
Re: 6502bench SourceGen disassembler updated [message #389171 is a reply to message #388856] Sat, 07 December 2019 16:22 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: fadden

6502bench SourceGen v1.5.0-dev2 is now available. Key changes:

- Added visualization generator interface to extension scripts.
- Added scripts for:
- Apple II bitmaps, full-screen images, and bitmapped fonts
- Atari 2600 sprites and playfields
- C64 sprites

Visualization generators take a bunch of parameters (file offset, width, height, etc) and generate graphical data. Thumbnail images are displayed in the code list. This makes it easier to figure out what a blob of data contains.

It looks like this: https://faddensoft.com/sgsample/vis.html

The peculiarities of the font embedded in the Budge 3D module (which is loaded on text page 1) become apparent once you have the whole thing laid out. The damage caused by the screen holes is visible in the glyphs in the rightmost column, and you can see that undamaged copies are repeated in the first 7 control characters.

The project web site is https://6502bench.com/. Source code and pre-built Windows binaries are available from https://github.com/fadden/6502bench/releases
Re: 6502bench SourceGen disassembler updated [message #389424 is a reply to message #389171] Thu, 26 December 2019 14:32 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: fadden

6502bench SourceGen v1.5.0-dev3 is now available. Key changes:

- Added animated visualizations.
- Added GIF generation to HTML exporter.
- Updated "set address" to work on a range of lines.
- Added options to "bulk" formatting.

Animated visualizations are constructed from other visualizations. For example, if you create a visualization for each frame of an animated figure running, you can create a list of the frames and play it. (This required changing the way visualizations are stored in the project file, so any created with the -dev2 release will disappear when the project is opened with -dev3.)

The HTML exporter outputs original-size GIF images. These are scaled up by the web browser. (Firefox doesn't seem to support nearest-neighbor scaling, so they may look a little fuzzy.) Animated visualizations are output as animated GIFs.

The "set address" feature lets you create an "ORG" directive that changes the address for the rest of the file. Sometimes you want to change the addresses for a range, e.g. code or data that gets relocated. If you select a range, "set address" will set the initial address as before, but will also create a second ORG directive at the bottom of the range that restores the address to the original file-load value.

The data operand editor's "bulk data" feature allows you to specify a maximum number of bytes per line. This is handy for data like bitmaps where you want one source line per row. You can also configure whether bulk data appears as a Merlin/ACME dense hex string, or a 64tass/cc65 series of comma-separated values. (The second item only affects the in-app display and HTML export; no effect on assembly source generation.)

I also added F6 as a shortcut to open the Project Symbols tab inside the Project Properties editor. And if you hover over the "recent project" buttons on the initial screen, the full project path appears in a tooltip.


The project web site is https://6502bench.com/. Source code and pre-built Windows binaries are available from https://github.com/fadden/6502bench/releases
Re: 6502bench SourceGen disassembler updated [message #389483 is a reply to message #389424] Mon, 27 January 2020 17:05 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: fadden

6502bench SourceGen v1.5 is now available. Key changes since v1.4:

- NOTE: extension script interfaces have changed. Pre-v1.5 plugins will not work with this release.
- Added visualization generation interface for converting embedded data to images.
- Added extension scripts for C64 sprites, Atari 2600 graphics, and Apple II hi-res bitmaps, fonts, and shape tables.
- Added animated bitmap visualizations.
- Added GIF and animated GIF generation to HTML exporter.
- Added non-unique local labels (e.g. "@loop").
- Added uncertainty annotations to label (e.g. "score?").
- Added ability to set addresses on file chunks, making it easier to relocate sections of code.
- Added more options for "bulk" data formatting.
- Added file slicing and concatenation tools.
- Added "go to last change" feature.
- Updated project file formatting to make it more diff-friendly.

The project web site is https://6502bench.com/. Source code and pre-built Windows binaries are available from https://github.com/fadden/6502bench/releases
Re: 6502bench SourceGen disassembler updated [message #389484 is a reply to message #389483] Mon, 27 January 2020 17:08 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: fadden

The various commented disassemblies that were hosted at bigflake.com/disasm can now be found on https://6502disassembly.com/. As part of exercising SourceGen v1.5 I added a few more:

(1) Space Eggs, by Nasir Gebelli. A colorful shoot-em-up that effectively demonstrates the usefulness of visualizers. I made a short video: https://youtu.be/lSvEr5nCHbY

(2) Caverns of Freitag, by David Shapiro. An excellent example of mixing Applesoft with assembly language. I used a custom visualizer to format the maze map. Adding visualizers for the tile set elements revealed graphics for monsters that didn't make it into the game.

(3) Starship Commander, by Gilman Louie. The game is almost entirely Applesoft, so doesn't have a whole lot for SourceGen to do. I disassembled the BASIC portions a few years back, and figured I'd share, so I took the HRCG apart and converted the fonts.

(4) Adventure, for the Atari 2600, by Warren Robinett. This is a "port" of a disassembly floating around the Internet, mostly to confirm that address mirroring and 2600 graphics work.

FWIW, SourceGen v1.5 has what I consider to be the full basic feature set for a disassembler. It still needs some features and has some rough edges, but it flows pretty well now.
Re: 6502bench SourceGen disassembler updated [message #389817 is a reply to message #389484] Sat, 08 February 2020 18:05 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: fadden

I was feeling nostalgic this afternoon.

https://6502disassembly.com/a2-applevision/

Today I learned that AppleVision randomizes the dance moves if you let it repeat.
Re: 6502bench SourceGen disassembler updated [message #389818 is a reply to message #389817] Sat, 08 February 2020 20:20 Go to previous messageGo to next message
Hugh Hood is currently offline  Hugh Hood
Messages: 678
Registered: November 2012
Karma: 0
Senior Member
You did all that in an afternoon?

You're good.



On 2/8/2020 5:05 PM, fadden wrote:
> I was feeling nostalgic this afternoon.
>
> https://6502disassembly.com/a2-applevision/
>
> Today I learned that AppleVision randomizes the dance moves if you let it repeat.
>
Re: 6502bench SourceGen disassembler updated [message #389821 is a reply to message #389818] Sun, 09 February 2020 00:55 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: fadden

On Saturday, February 8, 2020 at 5:20:58 PM UTC-8, Hugh Hood wrote:
> You did all that in an afternoon?

Somewhere in my many boxes of my Apple II stuff is my original disassembly of SSI's RDOS. Printed out on tractor feed paper, colored with highlighter pens, scribbles all over. Took ages.

A few years back I tried digging into the Budge 3D stuff and parts of a game by generating a disassembly with CiderPress and digging through it in a text editor. That works okay for figuring out generally where things are, but unless you're doing search & replace on functions and variables things don't fall into place as easily.

For AppleVision I extracted files and generated BASIC listings with CiderPress, then dug through the binary with SourceGen using the CALL addresses as entry points. I had most of it done in about two hours. (Note to self: don't start digging into something right before lunch.) Spent another hour or so polishing it up, writing the descriptive HTML page, generating a screen shot, etc.

The code is pretty straightforward, but this would've taken a lot longer without the tools.

Of course, if you consider how much time I've spent on CiderPress and SourceGen, I'm probably not coming out ahead...
Re: 6502bench SourceGen disassembler updated [message #389843 is a reply to message #389483] Mon, 17 February 2020 10:52 Go to previous messageGo to next message
Michael AppleWin Debu is currently offline  Michael AppleWin Debu
Messages: 1262
Registered: March 2013
Karma: 0
Senior Member
On Monday, January 27, 2020 at 2:05:26 PM UTC-8, fadden wrote:
> 6502bench SourceGen v1.5 is now available. Key changes since v1.4:

Hey Andy

I've been meaning to reply for a while -- thanks for this disassembler! I'm starting to use this more and more for a few back-logged projects and SourceGen is quickly becoming one of my favorite tools to use! It doesn't suck out-of-the-box so I give it a "One-thumbs-up!" :-)

I noticed there are a few minor rough spots that prevents it from getting my full Two-thumbs-up though:

* The learning curve is a little stepper then I would have liked. I believe it just needs a "Quick Start" section / guide that covers a detailed step-by-step game disassembly showing code + font + sprites. I see there are a few tutorials, and while they do provide some step-by-step instructions,
a) the step-by-step instructions aren't labeled as such, and
b) don't include step-by-instructions **with** pictures showing where to click and what the UI should look like.

* HGR Visualizer really needs NTSC support with 12-bit graphics. :-) Another drop-down would be good. Looks like RenderBitmap() should be extended with a few more ColorMode enums. SetHiResPalette() probably needs to be extended to support 4-phase colors.

* I noticed that DHGR is missing. Any plans to add support for this?

* The help table-of-content headers doesn't mention keywords such as:
* HGR
* Font
* Ripping, or
* Sprite
* Game

This makes it much harder to start as it isn't intuitive that they would be under "Visualizations"

I would be more then happy to make SourceGen more user friendly and provide feature requests for the above. Should I submit PRs (Pull Requests) on GitHub?

Thanks again for a neat utility!

Michael
Re: 6502bench SourceGen disassembler updated [message #389852 is a reply to message #389843] Mon, 17 February 2020 18:38 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: fadden

On Monday, February 17, 2020 at 7:52:09 AM UTC-8, Michael 'AppleWin Debugger Dev' wrote:
> * The learning curve is a little stepper then I would have liked. I believe it just needs a "Quick Start" section / guide that covers a detailed step-by-step game disassembly showing code + font + sprites. I see there are a few tutorials, and while they do provide some step-by-step instructions,
> a) the step-by-step instructions aren't labeled as such, and
> b) don't include step-by-instructions **with** pictures showing where to click and what the UI should look like.

I agree. The current documentation is really a reference manual. During the last chunk of development I realized that it needed a separate "getting started" sort of section, but didn't get around to writing one.

Do people still read? Maybe a tutorial video instead? The original pre-1.0 demo is more or less the first tutorial (https://youtu.be/dalISyBPQq8), although things have changed quite a bit since Sep 2018. I tried doing a longer video showing the disassembly process, but after 20 minutes I determined that I was extremely dull and gave up. (https://youtu.be/WZvrMOzyHhs)

> * HGR Visualizer really needs NTSC support with 12-bit graphics. :-) Another drop-down would be good. Looks like RenderBitmap() should be extended with a few more ColorMode enums. SetHiResPalette() probably needs to be extended to support 4-phase colors.
>
> * I noticed that DHGR is missing. Any plans to add support for this?

I thought about getting fancier with the converter, but at the end of the day SourceGen is a disassembler, not a graphics converter. The primary goal is to let the user see what the graphics are, not generate camera-ready copy, so I don't do half-pixel shifts or odd color fringes for hi-res data. (Most people will only see the output as a 64x64-ish GIF embedded in an HTML listing anyway.) I figured anybody who wanted something beyond basic would roll their own.

Bear in mind that nothing specific to the Apple II is compiled into SourceGen; everything is loaded at run time. So if you want to do fancy visualizers you can tweak the code without needing any development tools. (It does make life a *lot* easier if you do everything in Visual Studio though... syntax checking et.al.) It also means that you can substitute visualizers globally (by updating your RuntimeData copy) or per-project. I created a couple of visualizers specifically for Caverns of Freitag data (very easy way to render the full 80x80 map).

Re: DHGR, there aren't that many programs I can think of that have embedded DHGR graphics (Airheart is one example, drawing programs like Dazzle Draw would be another), so it hasn't been a priority.

> I would be more then happy to make SourceGen more user friendly and provide feature requests for the above. Should I submit PRs (Pull Requests) on GitHub?

Contributions are always welcome. If you want to submit High Quality graphics converters they should be in a separate .cs, either with the same gen string (to allow drop-in replacement) or different (to allow both to co-exist in a project for an A/B comparison)... haven't thought through which makes the most sense.

> Thanks again for a neat utility!

Thanks for the AppleWin debugger. :-)
Re: 6502bench SourceGen disassembler updated [message #389854 is a reply to message #389852] Tue, 18 February 2020 08:17 Go to previous messageGo to next message
Steven Hirsch is currently offline  Steven Hirsch
Messages: 798
Registered: October 2012
Karma: 0
Senior Member
On 2/17/20 6:38 PM, fadden wrote:

> Do people still read? Maybe a tutorial video instead? The original
> pre-1.0 demo is more or less the first tutorial
> (https://youtu.be/dalISyBPQq8), although things have changed quite a bit
> since Sep 2018. I tried doing a longer video showing the disassembly
> process, but after 20 minutes I determined that I was extremely dull and
> gave up. (https://youtu.be/WZvrMOzyHhs)

Exactly this. I cannot stand video instructions. Nothing better than a well
thought-out manual in my book.
Re: 6502bench SourceGen disassembler updated [message #389855 is a reply to message #389854] Tue, 18 February 2020 09:41 Go to previous messageGo to next message
Michael AppleWin Debu is currently offline  Michael AppleWin Debu
Messages: 1262
Registered: March 2013
Karma: 0
Senior Member
On Tuesday, February 18, 2020 at 5:17:34 AM UTC-8, Steven Hirsch wrote:
> On 2/17/20 6:38 PM, fadden wrote:
>
>> Do people still read? Maybe a tutorial video instead? The original
>> pre-1.0 demo is more or less the first tutorial
>> (https://youtu.be/dalISyBPQq8), although things have changed quite a bit
>> since Sep 2018. I tried doing a longer video showing the disassembly
>> process, but after 20 minutes I determined that I was extremely dull and
>> gave up. (https://youtu.be/WZvrMOzyHhs)
>
> Exactly this. I cannot stand video instructions. Nothing better than a well
> thought-out manual in my book.

Agreed. Text manuals are my first choice, videos are my second choice (given the lack of a text manual.)

Both are good at presenting information in a linear fashion but for random access / searching videos SUCK when you are looking for a specific topic. Ctrl-F is much, much faster and easier.

I've forked the repo and will be adding a detailed step-by-step tutorial to it using an actual game that encompasses almost every thing a "real" disassembly would need -- since it _is_ based on an actual disassembly. :-)
Re: 6502bench SourceGen disassembler updated [message #389856 is a reply to message #389855] Tue, 18 February 2020 11:44 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: fadden

On Tuesday, February 18, 2020 at 6:41:44 AM UTC-8, Michael 'AppleWin Debugger Dev' wrote:
> I've forked the repo and will be adding a detailed step-by-step tutorial to it using an actual game that encompasses almost every thing a "real" disassembly would need -- since it _is_ based on an actual disassembly. :-)


I've been pretty careful to this point to avoid checking in somebody else's copyrighted code to the 6502bench repository. The existing tutorials and examples are all code I've written, for reasons other than mere vanity. :-)

If you do use a commercial game as the subject, and it hasn't been explicitly released in some way by the copyright holder, then including the game itself with the tutorial files could be awkward. Hosting the binary somewhere else (say, 6502disassembly.com) would be fine, and I figure any screen shots or other references to parts of the file are "fair use". But I'm trying to keep the 6502bench repository relatively clean.
Re: 6502bench SourceGen disassembler updated [message #389857 is a reply to message #389856] Tue, 18 February 2020 12:35 Go to previous messageGo to next message
Michael AppleWin Debu is currently offline  Michael AppleWin Debu
Messages: 1262
Registered: March 2013
Karma: 0
Senior Member
On Tuesday, February 18, 2020 at 8:44:31 AM UTC-8, fadden wrote:
> I've been pretty careful to this point to avoid checking in somebody else's copyrighted code to the 6502bench repository. The existing tutorials and examples are all code I've written, for reasons other than mere vanity. :-)
>
> If you do use a commercial game as the subject, and it hasn't been explicitly released in some way by the copyright holder, then including the game itself with the tutorial files could be awkward. Hosting the binary somewhere else (say, 6502disassembly.com) would be fine, and I figure any screen shots or other references to parts of the file are "fair use". But I'm trying to keep the 6502bench repository relatively clean.


That's perfectly understandably to avoid the retarded and utterly broken Copyright system. The first step will be something along the lines of:

1. Download Lode Runner. (Link)

From Wikipedia looks like "Tozai Games currently holds the copyright and trademark rights". Shame that Doug E. Smith's widow didn't release the source code for Lode Runner upon her husband's death.

This is fucking retarded that copyright holds [past] culture hostage -- but that is a discussion for another day. At least we can work around the problem by making someone else responsible. =P
Re: 6502bench SourceGen disassembler updated [message #389858 is a reply to message #389852] Tue, 18 February 2020 12:45 Go to previous messageGo to next message
Michael AppleWin Debu is currently offline  Michael AppleWin Debu
Messages: 1262
Registered: March 2013
Karma: 0
Senior Member
On Monday, February 17, 2020 at 3:38:14 PM UTC-8, fadden wrote:

> Do people still read?

Yes! Not everyone is a millennial. =P


> Contributions are always welcome.

I created a master/uber wish-list with issue #53. Many of these are easy low-hanging fruit. I'll get C# installed so I can start fixing the trivial ones in my fork and issue PRs (Pull Requests).


> If you want to submit High Quality graphics converters they should be in a separate .cs, either with the same gen string (to allow drop-in replacement) or different (to allow both to co-exist in a project for an A/B comparison)... haven't thought through which makes the most sense.

Understood. NTSC quality isn't "required" right now -- more of a long-term QoL.

>> Thanks again for a neat utility!
> Thanks for the AppleWin debugger. :-)

Ideally all of 6502bench's functionality should ben built into the debugger.. This gives me a great list of features to consider embedding natively. :-)
Re: 6502bench SourceGen disassembler updated [message #389862 is a reply to message #389858] Tue, 18 February 2020 19:58 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: fadden

On Tuesday, February 18, 2020 at 9:45:54 AM UTC-8, Michael 'AppleWin Debugger Dev' wrote:
> I created a master/uber wish-list with issue #53. Many of these are easy low-hanging fruit. I'll get C# installed so I can start fixing the trivial ones in my fork and issue PRs (Pull Requests).

I saw bugs filed and fixed the easy ones. :-)
Re: 6502bench SourceGen disassembler updated [message #389869 is a reply to message #389862] Wed, 19 February 2020 12:06 Go to previous messageGo to next message
Michael AppleWin Debu is currently offline  Michael AppleWin Debu
Messages: 1262
Registered: March 2013
Karma: 0
Senior Member
On Tuesday, February 18, 2020 at 4:58:02 PM UTC-8, fadden wrote:
> On Tuesday, February 18, 2020 at 9:45:54 AM UTC-8, Michael 'AppleWin Debugger Dev' wrote:
>> I created a master/uber wish-list with issue #53. Many of these are easy low-hanging fruit. I'll get C# installed so I can start fixing the trivial ones in my fork and issue PRs (Pull Requests).
>
> I saw bugs filed and fixed the easy ones. :-)

Thanks for the fixes! Much appreciated!

Now that I'm able to build it locally (#78) I'm in the process of verifying each of them -- that way I don't have to wait for an official release.

I also added category section headers to the master list. I'll take care of the documentation stuff I listed and create PRs once they are ready.

Lode Runner has been a good exercise in "functionality coverage" !
Re: 6502bench SourceGen disassembler updated [message #391937 is a reply to message #389483] Thu, 12 March 2020 13:37 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: fadden

6502bench SourceGen v1.6-dev1 is now available. Key changes since v1.5:

- Added visualization of wireframe meshes.
- Added "sprite sheets" to hi-res visualizer.

The project web site is https://6502bench.com/. Source code and pre-built Windows binaries are available from https://github.com/fadden/6502bench/releases


I updated the Budge 3D disassembly to use the wireframe feature. If you're curious to see what that looks like, go to https://6502disassembly.com/a2-budge3d/MODULE.SHIP.CUBE.html #SymNumObjects and scroll up a couple of lines.

I have some more interesting projects but those are still works in progress.
Re: 6502bench SourceGen disassembler updated [message #392584 is a reply to message #391937] Mon, 30 March 2020 20:10 Go to previous messageGo to previous message
Anonymous
Karma:
Originally posted by: fadden

6502bench SourceGen v1.6 is now available. Key changes since v1.5:

- Added support for wireframe visualizations.
- Added custom colors for Notes.
- Added "sprite sheets" to the Apple II bitmap visualizer.

The project web site is https://6502bench.com/. Source code and pre-built Windows binaries are available from https://github.com/fadden/6502bench/releases
Pages (3): [ «    1  2  3    »]  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Asimov FTP anonymous login
Next Topic: new apple2 demos/game
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Thu Mar 28 09:40:52 EDT 2024

Total time taken to generate the page: 0.05780 seconds