Jump to content
IGNORED

Action! Source Code


Recommended Posts

 

Hi JAC,

 

I would have preferred github over sourceforge, the quality of sf is poor these days, it is a faint copy of its better days, it has so many advertising, tracking and even add-on-downloads. Too commercial for my taste.

 

For collaborating, github is so much nicer.

 

If you want to use github, why not put it up there then. I doubt this is going to be a hotbed of activity that it can't be ported. I don't used Mads either, so I'll just stick with my Mac/65 copy of the code.

Link to comment
Share on other sites

Syntax conversion is done. Nesting analysis is in process. Interesting to see how the original files were merged together somehow. Maybe for speed of compilation when loading from disk or memory concerns. Unbundling reveals nice structures.

post-17404-0-79217100-1423092417_thumb.png

Edited by JAC!
  • Like 2
Link to comment
Share on other sites

>11452 lines of source assembled in 3 pass

>16384 bytes written to the object file

All compile time errors are fixed. First part of ordering the segments is completed, too. The $b000 bank is about 99% identical to the cartdump already.

Just realized how late/early is is - damn, that was fun :-)

Edited by JAC!
  • Like 4
Link to comment
Share on other sites

 

If you want to use github, why not put it up there then. I doubt this is going to be a hotbed of activity that it can't be ported. I don't used Mads either, so I'll just stick with my Mac/65 copy of the code.

 

In my view collaboration (working in a team) on Github is easier. It is not so much about 'git' as a tool, which is also available from SF. I will use SF, as JAC is more familliar with it.

 

I had my projects on SF too, but after SF has been sold multiple times, my feeling is that the new owners just try to make as much money as possible with advertising and tracking of users. Github has a better business model, they charge for non-open-source projects, and the page is advertising free. But the main benefit is the way how code can be forked into local repos and then merged again, that makes collaboration on a project easier.

Link to comment
Share on other sites

Just couldn't got to bed without playing around with this. Splitting the 11 published source files into the original 34 source files is complete. Reordering is complete. The include sequence now matches the byte order in a type 15 one chip OSS cart. Just a few padding bytes, bank id bytes, text stamps like "ces" and maybe 1 or 2 wrong labels left. Current state is committed to sourceforge.

 

C:\Users\D025328\Documents\Eclipse\workspace.ext\net.sourceforge.atari-action\JAC>fc /b ACTION.xex Action36-15.rom
Comparing files ACTION.xex and ACTION36-15.ROM
0000075D: 01 03
000007E8: 01 03
000007ED: 01 03
00000827: 01 03
000008C3: 01 03
000008D4: FF 00
000008D5: FF 00
000008D6: FF 00
000008D7: FF 00
00000A7D: FF 00
00000A7E: FF 00
00000A7F: FF 00
00000FF1: FF 00
00000FF2: FF 00
00000FF3: FF 00
00000FF4: FF 00
00000FF5: FF 00
00000FF6: FF 00
00000FF7: FF 00
00000FF8: FF 00
00000FF9: FF 00
00001FE4: FF 20
00001FE5: FF 28
00001FE6: FF 41
00001FE7: FF 43
00001FE8: FF 53
00001FE9: FF 29
00001FEA: FF 20
00001FEB: FF 20
00001FEC: FF 4E
00001FED: FF 6F
00001FEE: FF 76
00001FEF: FF 65
00001FF0: FF 6D
00001FF1: FF 62
00001FF2: FF 65
00001FF3: FF 72
00001FF4: FF 20
00001FF5: FF 34
00001FF6: FF 2C
00001FF7: FF 20
00001FF8: FF 31
00001FF9: FF 39
00001FFA: FF 38
00001FFB: FF 33
00001FFC: FF 20
00001FFD: FF 20
00001FFE: FF 00
00001FFF: 01 00
000020A2: A4 5C
000020A3: A0 B7
000023B2: B7 DF
000029DA: B7 DF
00002FFD: FF 00
00002FFE: FF 00
00002FFF: 00 09
000032CD: 01 03
000032FB: 00 0A
00003E15: 22 42
00003E19: 1F 3F
00003E1A: 00 20
00003FFA: FF 63
00003FFB: FF 65
00003FFC: FF 73
00003FFD: FF 00
00003FFE: FF 00
00003FFF: 09 01
See also:
  • Like 9
Link to comment
Share on other sites

Hi Carsten,

 

since all other projects I'm participating in are on sourceforge and since it also supports git, that's my preferred environment.

 

Yep, folks just need to not click on the ads etc. Should be trivial for sophisitcated computer users such as most of the people around here.

Link to comment
Share on other sites

 

In my view collaboration (working in a team) on Github is easier. It is not so much about 'git' as a tool, which is also available from SF. I will use SF, as JAC is more familliar with it.

 

I had my projects on SF too, but after SF has been sold multiple times, my feeling is that the new owners just try to make as much money as possible with advertising and tracking of users. Github has a better business model, they charge for non-open-source projects, and the page is advertising free. But the main benefit is the way how code can be forked into local repos and then merged again, that makes collaboration on a project easier.

 

Some good points there, but it isn't the end of the world to use SF.

Link to comment
Share on other sites

@Luckbuck: Well, no. I'm just concentrating on such a small amount of reality that all my mental capacity goes into 6502. Ask my wife :-)

 

Everything except bank ids and the serial number seems to be OK now.

 

Comparing files ACTION.rom and ACTION-TYPE-15.ROM
00000819: 04 09
0000081E: 04 09
00000855: 04 09
0000085A: 04 09
00001FFF: 03 00
00002FFF: 00 09
000032FB: 00 0A
00003FFF: 04 01
The bank ids require some sleep, due to the total mix of types and dump versions (3/15/43). Just can't get it straight in my head now.
Also not sure about the serial id at $32fb. That's $0000 in the source because it was set as part of production as it seems.
41 A2FA 00 00 serial .word 0 ; serial number of ROM
42 ; to be filled in before blowing ROM
Link to comment
Share on other sites

Is there any chance that you can relieve us of this accursed OSS cart format, altogether?

 

I have a Bit-3 80 column board in my Atari 800, and always wanted to take advantage of the Action! 80 column functionality, but the cartridges themselves have always been prohibitively expensive. Even nowadays, the ebay price is always high, and you never know what version cartridge it is.

 

Is there any hope that you could convert this thing into something that could be used with SIO2PC?

Link to comment
Share on other sites

Is there any chance that you can relieve us of this accursed OSS cart format, altogether?

 

I have a Bit-3 80 column board in my Atari 800, and always wanted to take advantage of the Action! 80 column functionality, but the cartridges themselves have always been prohibitively expensive. Even nowadays, the ebay price is always high, and you never know what version cartridge it is.

 

Is there any hope that you could convert this thing into something that could be used with SIO2PC?

Is there a schematic for Bit3 anywhere? Failing that, has anyone photographed the front and back of PCBs? Some time ago, I managed to source the main video chip from that device. I would love to clone it since I don't think I'll ever manage to get to buy one.

Link to comment
Share on other sites

Is there a schematic for Bit3 anywhere? Failing that, has anyone photographed the front and back of PCBs? Some time ago, I managed to source the main video chip from that device. I would love to clone it since I don't think I'll ever manage to get to buy one.

 

As far as I know it has not been emulated, either. I can take photos of it, for you, sometime this week.

 

If you can physically reproduce it, then, perhaps, it's functionality can be added to the emulators, if you share the knowledge that you gain while reverse engineering it... that would help everybody.

 

Editing Action code in 80 columns could really inspire a lot of people to code new stuff for the Atari. It's such a well thought out language, but working with it in 40 columns is far from ideal when doing well-structured procedural programming, because you can't tab as far as you would like to, and separate the code blocks nicely, etc.

Link to comment
Share on other sites

Is there a schematic for Bit3 anywhere? Failing that, has anyone photographed the front and back of PCBs? Some time ago, I managed to source the main video chip from that device. I would love to clone it since I don't think I'll ever manage to get to buy one.

Pics of the board and ROM dump is still among many things on my ToDo list :)

Still need to fix a cable for the 1080 monitor (Thought I had 2 1084's) and take pics of it in action...

Link to comment
Share on other sites

@unixcoffe928:

 

why so complicated?

 

Carts:

 

80:
As far as I know, the Action! cart is running with 80 columns.
And(!) 80 is just the beginning!
Further:
post-32599-0-47351500-1423369472.jpg
Maybe this time with Mac/65 1.02 and in the future:
OSS 6 in 1: with Bug /65 ?
CU all out there in the galaxy. Let the new Atari age begin!
Edited by luckybuck
Link to comment
Share on other sites

>Is there any chance that you can relieve us of this accursed OSS cart format, altogether?

The binary will be available in multiple output formats, including the OSS formats so people can update their carts.

16k plain ROM is fairly straight, once the source is relocatable.

Of course it comes at the expense of 8k less RAM for code & source. That's why OSS came with that special design for their productivity cars.


>Is there any hope that you could convert this thing into something that could be used with SIO2PC?

Similar to the 16k Plain ROM. Of course loading from disk always comes with the risk that a bug also trashes ACTION! itself.

On idea that I have is to have a version that uses the RAM under the XL OS optionally as "backup".


>wanted to take advantage of the Action! 80 column functionality

If there anything special in ACTION! itself, apart from the fact it uses the E: handler?

Link to comment
Share on other sites

Now that's what I call fun with code. It took me quite a while to understand this until I finally encountered the "inc sargs,x".

 

;
;
;	Analysis: RAM Protection
;
;	The the RAM version of Action! contains a global equate "ramzap" that
;	activates conditional assembly of eleven self-destruction code fragments.
;	These fragments change the content of parts of the Action! ROM area
;	in many different ways. They are intended to prevent the creation of
;	a file version that can be loaded to the RAM of the machine.
;	When the Action! code is in the ROM area, these code fragment have no effect.
;	When the Action! code is in the RAM area, thee code fragments destroy the code.
;	When the "ramzap" equate is set to zero, the code fragments are replaced
;	by a NOP sequence of equal size. This way the overall program structure
;	and label addresses remained constant, but Action! or its parts could be
;	run from the machine RAM or a special RAM cartridge. 

    25 = 0001			ramzap	equ	1	; to zap or not to zap, that is the question?
--
    60 								; fake out zero check in XIOstr
    61 					.if	ramzap
    62 B02A 91 A5			 sta	(arg5),y
    63 					.else	
    64 					 nop	
    65 					 nop	
    66 					.endif	
--
   283 					.if	ramzap
   284 B6F6 91 A1			 sta	(arg1),y	; zap RAM if any
   285 					.else	
   286 					 nop	
   287 					 nop	
   288 					.endif	
--
   448 					.if	ramzap
   449 BD4F 91 A8			sta	(arg8),y
   450 					.else	
   451 					nop	
   452 					nop	
   453 					.endif	
--
   739 					.if	ramzap
   740 BEED F6 00			inc	sargs,x
   741 					.else	
   742 					nop	
   743 					nop	
   744 					nop	
   745 					.endif	
--
   851 				;.IF RAMzap
   852 				;  LDY LTab+1,X
   853 				;  LDA LTab,X
   854 				;.ELSE
   855 BF5A BC E5 04			ldy	lsh+1,x
   856 BF5D BD E4 04			lda	lsh,x
   857 				;.ENDIF
--
    71 					.if	ramzap
    72 A036 9D 4A A0			sta	mulb,x
    73 					.else
    74 					nop
    75 					nop
    76 					nop
    77 					.endif
--
   143 					.if	ramzap
   144 A1FD FE 2B A1			inc	stm,x
   145 					.else
   146 					nop
   147 					nop
   148 					nop
   149 					.endif
--
    48 					.if	ramzap
    49 A3BD DE 95 A3			dec	chkerr-$10,x
    50 					.else
    51 					nop
    52 					nop
    53 					nop
    54 					.endif
    55 A3C0 60				rts
--
  1449 				;	--------
  1450 				getexp	.if	ramzap
  1451 A8B4 EE 92 AF			 inc	cgopscd
  1452 					.else	
  1453 					 nop	
  1454 					 nop	
  1455 					 nop	
  1456 					.endif	
--
  2263 					.if	ramzap
  2264 ADCA 91 64			sta	(adress),y
  2265 					.else	
  2266 					nop	
  2267 					nop	
  2268 					.endif
--
    93 				;SPLInit .proc ; init compiler RAM
    94 					.if	ramzap
    95 A334 20 B6 A3			jsr	zap4
    96 					.else	
    97 					nop	
    98 					nop	
    99 					nop	
   100 					.endif	
--
    72 A3B0 1E			zap2	.byte	$1e
    73 A3B1 6D A5			.word	delch
    74 A3B3 FE			zap3	.byte	$fe
    75 A3B4 9A A5			.word	backsp
    76 A3B6 7E			zap4	.byte	$7e
    77 A3B7 2C A4			.word	insrtch
Link to comment
Share on other sites

JAC! You are a miracle!

 

Please find attached the file version from:

 

post-32599-0-29203100-1423434664_thumb.jpg

 

OSS Action! Version 3.6 with DOS XL 2.20 and REAL files.atr

 

with some strange REAL files on it. The DOC file can only be opened with the cart... due to RAM problems...

 

Did found it in a lost archive... ;-)

 

Have fun further, we are with you all the time! :-)

 

Wil try to get the Basic XE source, too.

 

stand by

Edited by luckybuck
Link to comment
Share on other sites

 

>Is there any chance that you can relieve us of this accursed OSS cart format, altogether?
The binary will be available in multiple output formats, including the OSS formats so people can update their carts.
16k plain ROM is fairly straight, once the source is relocatable.
Of course it comes at the expense of 8k less RAM for code & source. That's why OSS came with that special design for their productivity cars.
>Is there any hope that you could convert this thing into something that could be used with SIO2PC?
Similar to the 16k Plain ROM. Of course loading from disk always comes with the risk that a bug also trashes ACTION! itself.
On idea that I have is to have a version that uses the RAM under the XL OS optionally as "backup".
>wanted to take advantage of the Action! 80 column functionality
If there anything special in ACTION! itself, apart from the fact it uses the E: handler?

 

 

What about using extended memory? I would think most of us that want to use it have more than 64K in our Ataris.

 

And what about extended memory for code space and compiling?

 

Enough questions from me, what you've done is incredible!

Link to comment
Share on other sites

Well,

 

I have a hacked/cracked file-version of Action! in my collection that works with 48k RAM (not much free RAM available) and another file-version that works with 64k RAM (utilizing RAM under the OS, more free RAM available). But as of yet, I do not have a file-version that works with extended RAM...

 

 

Action_file.zip

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...