Jump to content

Photo

SpartaDOS X 4.48


267 replies to this topic

#26 DrVenkman OFFLINE  

DrVenkman

    River Patroller

  • 2,133 posts
  • Back off, man! I'm a scientist.
  • Location:KMBT

Posted Wed Jul 27, 2016 4:37 PM

I updated the SDX installs in Altirra last night before trying it in the next day or two on real hardware. First I updated the (virtual) U1MB installation (which mirrors my real hardware with FJC's latest BIOS, SIDEloader and PBI driver). I had no trouble updating and afterward things appear fine.  Next I did the (virtual) SIDE2 cart. Again things appear to be fine. However, there is something odd going on. 

 

With just the U1MB installed and booting to SDX, switching to CAR: and then typing a simple DIR | LESS works just fine as expected; I get one page worth of directory contents and a prompt to continue the listing or quit.  However, turning the U1MB SDX off and trying the same with the SIDE2 version of SDX gives me odd-ball errors. See screenshot below.

 

SDX 4.48 running from U1MB:

Screen Shot 2016-07-27 at 5.07.35 PM.png

 

 

SDX 4.48 running from SIDE2:

Screen Shot 2016-07-27 at 5.16.33 PM.png

 

 



#27 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • 12,535 posts
  • Location:United Kingdom

Posted Wed Jul 27, 2016 4:56 PM

CAR: only has one channel... I suspect that has something to do with the pipe not working.

#28 drac030 OFFLINE  

drac030

    Stargunner

  • Topic Starter
  • 1,777 posts
  • Location:Warszawa, Poland

Posted Wed Jul 27, 2016 4:58 PM

This may occur e.g. when the $TEMP variable is set to something non-writable like CAR:

This is wild guess only, but I just reproduced this effect by doing SET TEMP=CAR: and then DIR | LESS.

It would help if you could list the env variables for both cases. I also think that if $TEMP is not set, the current directory is assumed.

The pseudo-pipeline in DIR | LESS of course needs a temporary storage, so it writes data to a temporary file (located in $TEMP directory).

#29 DrVenkman OFFLINE  

DrVenkman

    River Patroller

  • 2,133 posts
  • Back off, man! I'm a scientist.
  • Location:KMBT

Posted Wed Jul 27, 2016 5:02 PM

CAR: only has one channel... I suspect that has something to do with the pipe not working.

 

But why would it work with the U1MB then? 

 

This may occur e.g. when the $TEMP variable is set to something non-writable like CAR:

This is wild guess only, but I just reproduced this effect by doing SET TEMP=CAR: and then DIR | LESS.

It would help if you could list the env variables for both cases. I also think that if $TEMP is not set, the current directory is assumed.

The pseudo-pipeline in DIR | LESS of course needs a temporary storage, so it writes data to a temporary file (located in $TEMP directory).

 

 

Hmm. These are default SDX roms right off the project page, with no changes made to any of the CONFIG.SYS options or system variables. 

 

EDIT: Okay, I rebooted, manually loaded RAMDISK.SYS, then set TEMP=DO:  After that, DIR | LESS works as expected. 


Edited by DrVenkman, Wed Jul 27, 2016 5:06 PM.


#30 drac030 OFFLINE  

drac030

    Stargunner

  • Topic Starter
  • 1,777 posts
  • Location:Warszawa, Poland

Posted Wed Jul 27, 2016 5:10 PM

Ok, it behaves so, because normally the $TEMP is set by RAMDISK.SYS. In SIDE and SIDE2 the RAMDISK.SYS is removed from the default CONFIG.SYS, and the SIDE.SYS driver is loaded instead. Most probably because of the MEMLO being too high if both are loaded.

But this means that you must set the $TEMP variable manually to a valid drive, if you want the pipelines to work properly.

EDIT: you were quicker :)

Edited by drac030, Wed Jul 27, 2016 5:12 PM.


#31 sanny OFFLINE  

sanny

    Chopper Commander

  • 168 posts
  • Location:Bavaria

Posted Wed Jul 27, 2016 6:04 PM

Hmm, a question: The download of the "supercart" version contains an ATR and ROM file. The ATR includes a "flasher" program to update the cart. I've successfully used that.

 

Now, if I make changes with the SDXImager, the program just modifies the ROM file. But how do I program this ROM file to the cartridge? Is there a stand-alone "flasher" program? Or how can I create a similar ATR which includes the "flasher"?



#32 drac030 OFFLINE  

drac030

    Stargunner

  • Topic Starter
  • 1,777 posts
  • Location:Warszawa, Poland

Posted Thu Jul 28, 2016 2:30 AM

A flashing ATR is just a disk in SpartaDOS format, containing two files: the flasher (*.COM) and the ROM image (*.ROM). Just replace the latter. Perhaps the Altirra's Disk Explorer (Tools->Disk Explorer) may be used to do that.

#33 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • 12,535 posts
  • Location:United Kingdom

Posted Thu Jul 28, 2016 2:56 AM

Yes: Altirra's disk explorer does the job well. If you have plenty of RAM you may flash the ROM directly with Uflash, although it hasn't yet been fixed up to detect the supercart.

#34 Frankie OFFLINE  

Frankie

    Moonsweeper

  • 439 posts
  • Location:St. Augustine, FL

Posted Thu Jul 28, 2016 6:02 AM

uflash did it all with no problems! -

 

2  U1MB

2  SIDE 1

1  SIDE 2

1 Incognito

1 IDE+

1 MyIDE 



#35 drac030 OFFLINE  

drac030

    Stargunner

  • Topic Starter
  • 1,777 posts
  • Location:Warszawa, Poland

Posted Thu Jul 28, 2016 10:23 AM

Just in case if anyone has a problem unpacking files on the Toolkit X ATR: please see BAT>UNPACK.BAT. Executing this file unpacks all *.ARC files found in the current directory.

Edited by drac030, Thu Jul 28, 2016 10:24 AM.


#36 fujidude ONLINE  

fujidude

    River Patroller

  • 4,622 posts
  • Location:United States of America

Posted Thu Jul 28, 2016 2:11 PM

As anticipated, 4.48 is even better than 4.47.  It's really great to see what is awesome become even more awesome.  Good work guys!  So far what is tickling my fancy the most is the improvements to Sparta Commander, and the ability to make a non disk device like CAR: or PCL: the current working device.



#37 FifthPlayer OFFLINE  

FifthPlayer

    Moonsweeper

  • 311 posts

Posted Thu Jul 28, 2016 3:14 PM

What I like about it is that 4.48 is at least somewhat compatible with the SIO2SD, and can now read filesystems from it.  That makes SDX actually workable for me now, since SIO2SD is the only storage device I have.  (I have SDX on an 8Mb Maxflash cart).



#38 fujidude ONLINE  

fujidude

    River Patroller

  • 4,622 posts
  • Location:United States of America

Posted Thu Jul 28, 2016 3:31 PM

@Draco probably, but anyone who has insight please don't hesitate to jump in.  In light of the fresh new release of 4.48 and its corresponding toolkit disk, I have decided to revisit my idea of attempting to make a recursive script to automagically find all the ARC files and extract them all.  As Draco pointed out, there already exists code to do the ARC extraction.  That works good.  I want to wrap that up in code that will "walk the directories" doing that whenever an ARC file is discovered.  Recursion is the only way I can think of to accomplish this in a script (batch).

 

So here's where I'm at; I have started formulating and experimenting with recursion through a directory tree but I'm just doing a simple dir listing when in them to see how it works.  And it does work... at first.  But before long, perhaps just 3 or 4 levels deep in recursion, things go wrong.  An attempt is made to CD into something other than a directory, even though the loop specifies to work in +s *.*.   I'm not sure how that happens, and also according to the docs, one should be able to go as deep as 8 levels without incident.  I will put the code below:

EDIT: I will get back to this after I check it some more.

Edited by fujidude, Thu Jul 28, 2016 3:33 PM.


#39 sanny OFFLINE  

sanny

    Chopper Commander

  • 168 posts
  • Location:Bavaria

Posted Thu Jul 28, 2016 4:31 PM

A flashing ATR is just a disk in SpartaDOS format, containing two files: the flasher (*.COM) and the ROM image (*.ROM). Just replace the latter. Perhaps the Altirra's Disk Explorer (Tools->Disk Explorer) may be used to do that.

 

Ok, yes. Stupid me...



#40 sanny OFFLINE  

sanny

    Chopper Commander

  • 168 posts
  • Location:Bavaria

Posted Thu Jul 28, 2016 4:34 PM

Another SDX-newbie question:

 

I want to copy the CONFIG.SYS from CAR: to D1:.

 

It doesn't work:

D1:COPY CAR:CONFIG.SYS
CAR:CONFIG.SYS

161 Too many channels open

D1:


#41 rdea6 OFFLINE  

rdea6

    River Patroller

  • 2,550 posts
  • Location:Arizona USA

Posted Thu Jul 28, 2016 4:37 PM

TYPE CAR:CONFIG.SYS >>CONFIG.SYS



#42 sanny OFFLINE  

sanny

    Chopper Commander

  • 168 posts
  • Location:Bavaria

Posted Thu Jul 28, 2016 4:41 PM

Thanks. Just found it out by myself.

 

Quoting the manual:

 

 

 

 

SDX supports up to 16 open files, but each driver has its own limitation. The DSK: driver
allows you to specify the maximum number of channels open to it (the default is 5
which should be enough for any application). The CAR: driver only has 1 channel which
means that you may not copy files from CAR: with the COPY command. (COPY uses two
channels, one the source device and one on the destination. This is because COPY
opens one channel to the directory and another to the file to be copied.) To overcome
this limitation, you may TYPE the file on CAR: and redirect output to a file on disk (e. g.

TYPE CAR:COMMAND.COM >>NEW.COM).



#43 fujidude ONLINE  

fujidude

    River Patroller

  • 4,622 posts
  • Location:United States of America

Posted Thu Jul 28, 2016 7:49 PM

Okay continuation from post #38 above...

 

Here is the code:

;WD.BAT by FujiDude

proc walkdir
  seterrno 0
  for %d in +s *.*
    echo %d = $%d
    cd $%d
    if error
      exit
    fi
    gosub walkdir
    cd <
  next %d
return

gosub walkdir

And here is the output:

I:\
#-i:\wrkbench\wd
%d = BAT
%d = EXAMPLES
%d = MAKE
%d = MAKE.TXT

150 Path not found

I:\BAT\EXAMPLES\MAKE\
#dir

Volume:    SYSTEM
Directory: MAKE

MAKE     BAT    586 22-08-10  9:58
MAKE     TXT    523 22-08-10  9:52
62683 FREE SECTORS

I:\BAT\EXAMPLES\MAKE\

Edited by fujidude, Thu Jul 28, 2016 7:50 PM.


#44 rdea6 OFFLINE  

rdea6

    River Patroller

  • 2,550 posts
  • Location:Arizona USA

Posted Thu Jul 28, 2016 9:37 PM

 

@Draco probably, but anyone who has insight please don't hesitate to jump in.  In light of the fresh new release of 4.48 and its corresponding toolkit disk, I have decided to revisit my idea of attempting to make a recursive script to automagically find all the ARC files and extract them all. 

FIND B:*.ARC >>TOOLS.BAT

Gives a list like this..

DB:>MAN_CMD.ARC
DB:>MAN_DRIV.ARC
DB:>UTILS>APETIME.ARC
DB:>UTILS>CDD.ARC
DB:>UTILS>CRC32.ARC
DB:>UTILS>DD.ARC
DB:>UTILS>DELDUP.ARC
DB:>UTILS>DPOKE.ARC
DB:>UTILS>DU.ARC
DB:>UTILS>FA_REG.ARC
DB:>UTILS>FSTRUCT.ARC
DB:>UTILS>HDSC.ARC
DB:>UTILS>HEXDEC.ARC
DB:>UTILS>INVERSE.ARC
DB:>UTILS>LS.ARC
DB:>UTILS>MACH.ARC
DB:>UTILS>MD5.ARC
DB:>UTILS>MEMINFO.ARC
DB:>UTILS>MKATR.ARC
DB:>UTILS>NVRAM.ARC
DB:>UTILS>PHDPLD.ARC
DB:>UTILS>RDDUMP.ARC
DB:>UTILS>RPM.ARC
DB:>UTILS>RUN.ARC
DB:>UTILS>SL.ARC
DB:>UTILS>STAT.ARC
DB:>UTILS>TAR17.ARC
DB:>UTILS>TREE.ARC
DB:>UTILS>TSR.ARC
DB:>UTILS>WC.ARC
DB:>UTILS>XFCONF.ARC
DB:>UTILS>XT.ARC
DB:>UTILS>XVER.ARC
DB:>SHELLS>MYDUP.ARC
DB:>SHELLS>SC100.ARC
DB:>SDX42>ERR_GMSG.ARC
DB:>SDX42>U_GETKEY.ARC
DB:>SDX42>XCOMLI.ARC
DB:>SDX42>JFSYMBOL.ARC
DB:>DSKTOOLS>EDDY204.ARC
DB:>DSKTOOLS>CLX19C.ARC
DB:>DRIVERS>CAD.ARC
DB:>DRIVERS>CPMFS.ARC
DB:>DRIVERS>PBI.ARC
DB:>DRIVERS>KTRACE.ARC
DB:>DRIVERS>RAMD816L.ARC
DB:>DRIVERS>FATFS.ARC
DB:>DRIVERS>TURBOBRD>65816.ARC
DB:>DRIVERS>TURBOBRD>HRAMTST.ARC
DB:>DRIVERS>TURBOBRD>HRAMSPD.ARC
DB:>DRIVERS>TURBOBRD>RAPIDRD.ARC
DB:>DRIVERS>SCRDRV>CON.ARC
DB:>DRIVERS>SCRDRV>SVBXE104.ARC
DB:>DRIVERS>SCRDRV>RC_GR8.ARC
DB:>DRIVERS>SCRDRV>VBXE.ARC
DB:>DRIVERS>PCLINK>PCLINK.ARC
DB:>DLL>UNIXTIME.ARC
DB:>DLL>FSEL.ARC
DB:>COMPAT>VPRINT.ARC
DB:>BOOTLD>SDLOAD.ARC
DB:>BAT>MAKE.ARC

61 matches found!
And then use ED TOOL.BAT and edit for this effect..

COPY B:>UTILS>*.ARC
COPY B:>SHELLS>*.ARC
COPY B:>SDX42>*.ARC
COPY B:>DSKTOOLS>*.ARC
COPY B:>DRIVERS>*.ARC
COPY B:>DRIVERS>TURBOBRD>*.ARC
COPY B:>DRIVERS>SCRDRV>*.ARC
COPY B:>DRIVERS>PCLINK>*.ARC
COPY B:>DLL>*.ARC
COPY B:>COMPAT>VPRINT.ARC
COPY B:>BOOTLD>SDLOAD.ARC
COPY B:>BAT>MAKE.ARC
ECHO BAT DONE..

Move this batch file to Partition/Folder where you want the ARC files to go an run it..



Not a neat script and took about 10 Minutes to complete but OK for my needs..



#45 fujidude ONLINE  

fujidude

    River Patroller

  • 4,622 posts
  • Location:United States of America

Posted Thu Jul 28, 2016 10:07 PM

@rdea6: I'm always interested to see how other Atarians such as yourself approach things.  That does work, but for me I wanted to unpack the ARCs in their original hierarchy, not in one flat folder.  What I've been doing in the mean time (if and until I can ever create exactly what I want) is walking the tree manually and using the UNPACK batch code that Draco referred to.  Like your method, that also took me not much time to do.  But for me it isn't so much about just making the task easier and quicker; rather it's about the challenge to create the algorithm.  As a bonus, if I am able to accomplish it, then it can save many people the 10 minutes or so which then makes the effort more worth it even from a time investment perspective.



#46 drac030 OFFLINE  

drac030

    Stargunner

  • Topic Starter
  • 1,777 posts
  • Location:Warszawa, Poland

Posted Fri Jul 29, 2016 7:35 AM

@fujidude: that looks like a bug, yes, as, despite the +S, it picks up the last file in the directory. This certainly needs closer inspection. For now I have no clear idea where to look to trace it down.

@rdea: a list of subdirectories is easier generated with DU /Q.

#47 drac030 OFFLINE  

drac030

    Stargunner

  • Topic Starter
  • 1,777 posts
  • Location:Warszawa, Poland

Posted Fri Jul 29, 2016 4:01 PM

@fujidude: I can confirm, that is a bug in the FOR command. It does not correctly handle EOF. It is reproducible in much simpler circumstances, e.g.:
 
for %d in +s *.*
  echo d = $%d
next %d
when ran on an empty disk, will display 'd = MAIN' which is obviously incorrect :)

Anyway, I do not know if your approach has much chance to work, because of the very limited size of the "stack" the GOSUB/RETURN and FOR/NEXT utilize.

Edited by drac030, Fri Jul 29, 2016 4:02 PM.


#48 fujidude ONLINE  

fujidude

    River Patroller

  • 4,622 posts
  • Location:United States of America

Posted Fri Jul 29, 2016 6:14 PM

@fujidude: I can confirm, that is a bug in the FOR command. It does not correctly handle EOF. It is reproducible in much simpler circumstances, e.g.:
 

for %d in +s *.*
  echo d = $%d
next %d
when ran on an empty disk, will display 'd = MAIN' which is obviously incorrect :)

Anyway, I do not know if your approach has much chance to work, because of the very limited size of the "stack" the GOSUB/RETURN and FOR/NEXT utilize.

 

 

Well the docs say up to 20 levels deep but only up to 8 is safe.   I think 8 is probably more than enough in most cases since the path length is so limited in the 1st place.  I'm not giving up on this just yet.  Is there a way to conditionally test if something is a directory?

 

I think I just found it in the manual...

IF NOT EXISTS +S %1

I'm going back to digging around more.


Edited by fujidude, Fri Jul 29, 2016 6:17 PM.


#49 fujidude ONLINE  

fujidude

    River Patroller

  • 4,622 posts
  • Location:United States of America

Posted Fri Jul 29, 2016 11:05 PM

Okay... I have achieved success (regarding the recursive script to unpack ARCs) !  At least preliminarily it appears so.  The basic task is working but I have a couple small nagging issues to try and clean up.  Stay tuned.



#50 drac030 OFFLINE  

drac030

    Stargunner

  • Topic Starter
  • 1,777 posts
  • Location:Warszawa, Poland

Posted Sat Jul 30, 2016 12:20 PM

I can see that this is not documented anywhere, but NEXT actually accepts more arguments than just the counting variable name. The syntax is:

NEXT varname [atr] [filemask]

The atr and filemask are supposed to be the same as in the FOR var IN [atr] [filemask]. When these are not given, "all files" and "*.*" are assumed.

In other words, if the line starting the loop specifies attribute different than none ("all files") and/or a mask different than *.*, these must also be specified in NEXT:
 
for %d in +s *.FOO
  echo $%d
next %d +s *.FOO
I have no idea how this escaped the documentation. I will probably have to update the examples and let GoodByteXL know about it, so that this information will be reflected in next revisions of the User's Manual.

Edited by drac030, Sat Jul 30, 2016 12:26 PM.





0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users