![]() |
![]() |
#1621 | |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,307
|
Yes, AllocEntry() does. Doesn't change the fact that existing programs check on bit 31 for an error because this is how the interface looks like.
Quote:
Cough. How can one write more than 4GB requiring a 64 bit length in a system with at most 2GB? |
|
![]() |
![]() |
#1622 | |
Registered User
Join Date: Nov 2011
Location: Nuernberg
Posts: 818
|
Quote:
|
|
![]() |
![]() |
#1623 | ||
Registered User
Join Date: Jan 2008
Location: Warsaw/Poland
Age: 56
Posts: 2,039
|
Quote:
Code:
btst #31,D0 bne.b error Code:
tst.l D0 bmi.b error Code:
cmp.l #-1,D0 beq.b error Quote:
|
||
![]() |
![]() |
#1624 | ||
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,307
|
Quote:
Quote:
Consider Code:
printf("Size of file %s is %ld\n",fib->fib_FileName,fib->fib_Size); Certainly, fib_Size should have been defined as ULONG, but BCPL is a typeless language, and it only knows (signed) integers (which are also pointers... or rather indices into its memory model of an array of LONGs). |
||
![]() |
![]() |
#1625 | |
Registered User
Join Date: Jan 2008
Location: Warsaw/Poland
Age: 56
Posts: 2,039
|
Quote:
But it seems that files up to 4GB works under OS 3.9. I find this thread about files over 2GB. https://www.ppa.pl/forum/emulacja-na...rtycja#m766064 Post 6. and 20. mostly. |
|
![]() |
![]() |
#1626 |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,307
|
It depends on what you consider "working". Consider the following code segment on such a file: Code:
ok = Seek(file,0x8000ffff,OFFSET_CURRENT); Now, what exactly is this supposed to do on a large file? Seek to the current file pointer forwards by 0x8000ffff, or seek backwards by 0x7fff0001 bytes? What happens if we replace OFFSET_CURRENT by OFFSET_BEGINNING or by OFFSET_END? I do not know what the FFS attempts to do if such requests come in. I doubt it is doing "the right right" (whatever this may be). |
![]() |
![]() |
#1627 |
Amigan
![]() Join Date: Feb 2012
Location: London
Posts: 1,317
|
Hey guys, can you create a new thread for this please?
|
![]() |
![]() |
#1628 |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,307
|
|
![]() |
![]() |
#1629 | |
Registered User
Join Date: May 2011
Location: Taradale / Australia
Posts: 96
|
Quote:
I'm using an MX27C4100, one of a batch I purchased about 15 years ago, long before Chinese fakes became a problem. Indeed, I have used them for Kickstarts in many machines with complete reliability. Not sure if I already mentioned it, but even with a genuine 3.1 ROM installed, the kickstart modules will load from disk OK, but will crash shortly after the reboot, so it can't be the ROM. The board has a real 50MHz 030 installed, and all PAL chips are identical, including their speed ratings to the various original 50 MHz boards I have seen. I have even (temporarily) tested this board on other versions of Amiga OS, at 54MHz, with complete reliability. Having said that, I would love to hear from anyone who has confirmed operation of any version of 3.2 on an originally purchased 50MHz board, which is the reason why I posted in the first place. |
|
![]() |
![]() |
#1630 | |
Registered User
Join Date: Oct 2012
Location: Wolfach / Germany
Posts: 152
|
Quote:
My Betatest machine is an a500 with a 50 MHz derringer 030 and it works perfekt with a lot of 3.2 Versions since year ![]() |
|
![]() |
![]() |
#1631 | |
Registered User
Join Date: Aug 2010
Location: Germany
Posts: 536
|
Quote:
The future was already there in AmigaOS4 ![]() Before such APIs can become useful, the file systems which could benefit from them would have to be reworked. The FFS is, because of its Tripos legacy, making use of only the simplest data structures and algorithms known in 1978 (if the copyright information for the original ROM file system is correct). This means: tables, singly-linked lists, bitmaps and (the peak of algorithmic sophistication) hashing with separate chaining. The FFS has no dedicated directory data structure and merely reuses the metadata blocks of the directory entries. Managing the storage involves the use of singly-linked lists which for files contain a list of all the data blocks which are part of the file. This bites for large files because in order to perform random access, you first need to travel the entire list of blocks which constitute the file until you find the block the file system should use for read/write access. While, in theory, the file system data structures should scale like crazy, they being signed 32-bit integers, you can't work around the fact that there can be only up to 2^31 blocks (really: blocks, not sectors) in use by a volume. That means 2,147,483,648 blocks, and if you're using 512 bytes per block, you get to use up to 1 TByte per partition, ain't that nice for such an old dog to know such tricks ![]() If this sounds like fun, consider this: many file system operations involve changing 2-3 blocks at a time in order to complete a task such as extending the size of a file you are writing to. Such as: allocate space for the data to go into, allocate space for another file list block, add that file list block to the file, update the file list block to reference the data block just allocated, write the data to the new block, update the file header block, write back the block allocation bitmap. Bonus round: update the dircache list for the directory which the file is stored in. The FFS performs these steps in a certain order and does not flush (!) the write cache at crucial points. That makes it fast, but if the operating system or the file system crashes at an inopportune moment, the file system data structures will be damaged and inconsistent. The cherry on top is that the FFS does not have a well-defined strategy for allocating storage space and may have to walk the entire block allocation bitmap to find space for something to fit, somehow in the proximity of the last data block. This is why the FFS prefers to keep the bitmap in memory, since the alternative tends to be too slow. This the story so far: if you want to be able to store more than 4 GBytes of data on an FFS volume, then the FFS better be good at managing data and metadata at the scale this invariably requires. This is not possible yet. Directory scanning is still dog slow and will become slower the more directory entries need to be squeezed into the hash tables. Finding available storage in close proximity is very slow. Managing the data blocks associated with a file is very slow and wastes a lot of memory (at 512 bytes per block a 2 GByte file needs 30 MBytes worth of file list blocks to account for every single data block). Making changes to the file system structure can be derailed quickly and restoring the consistency can take a very long time indeed. All of this is solvable by either replacing data structures and algorithms or by augmenting the existing data structures (and can be kept backwards-compatible if you want it to, but it will cost you). But you probably won't catch me doing that because the FFS in its 68k assembly language form is beyond my means. I prefer the 'C' version for which it could happen, though. I wrote a 'C' FFS between 2001-2006 which is used by both MorphOS and AmigaOS4. Last edited by Olaf Barthel; 05 August 2023 at 13:11. |
|
![]() |
![]() |
#1632 | |
Registered User
Join Date: Jan 2008
Location: Warsaw/Poland
Age: 56
Posts: 2,039
|
Quote:
All new compiled/assembled programs can call 48 bit mode too. Old programs will be using original 32 bit mode. For 48(64) bit modes 2 registers are necessary. Where is necessary similar code can be added to Amiga LVO's: Code:
cmp.w #"48 b",Dx ; check for ID bne.b 32bitMode swap Dx ext.l Dx ; ready to use first 32 bits .... 32bitMode moveq #0,Dx .... |
|
![]() |
![]() |
#1633 | |
Moderator
Join Date: Dec 2010
Location: Wisconsin USA
Age: 60
Posts: 846
|
Quote:
I don't think he was referring to the Kickstart ROM. Rather it was the GVP driver ROM. He thinks all the components on the G-Force 030 must be "Certified" for 50 MHz operation. He doesn't understand that there are only 3 components on this Board which actually have a MHz rating - the CPU, FPU and oscillator. The other components have either access time (ROM and RAM) or switching speed (PAL and TTL devices) ratings. The DPRC was designed for 7 MHz operation but it's capable of running @ 14MHz on certain GVP products (G-Force 040 and the A1291). He doesn't understand that your Board is now 50 MHz "Qualified" just as much as any factory produced Board ever was or ever will be. NOTE: The PAL and TTL devices do have maximum clock speed ratings in registered output mode which is >= 100 MHz for these particular components. Last edited by SpeedGeek; 05 August 2023 at 18:40. |
|
![]() |
![]() |
#1634 | |
Moderator
Join Date: Dec 2010
Location: Wisconsin USA
Age: 60
Posts: 846
|
Quote:
According to the Derringer manual it has no on-board Auto-Config devices. The optional Fast RAM is configured by a Software tool. This points the finger right at the OS3.2 expansion.library which I already suggested replacing. ![]() |
|
![]() |
![]() |
#1635 | |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,307
|
Quote:
And that is exactly not correct. All the components between the CPU and the bus interface and the memory also need to keep up with the CPU and have to satisfy the tighter timing requirements of a 50Mhz clock. The PALs and GALs and the MACH chips on the board in particular. I do not know how GVP selected components and qualified boards, but it is not untypical to first build the boards from all the same components, and then run a burn-in test to select those boards that run stable at 50Mhz for selling them at 50Mhz, and sell the others at lower clock rates. This is at least how CPU vendors act. |
|
![]() |
![]() |
#1636 | |
Moderator
Join Date: Dec 2010
Location: Wisconsin USA
Age: 60
Posts: 846
|
Quote:
Yes, it is quite correct. I just explained that the PALs and TTL components on 40 and 50 MHz Boards are the same and more than fast enough to keep up. The other components (including the MACH130) don't need to keep up since they don't run from the CPU clock. |
|
![]() |
![]() |
#1637 |
Registered User
Join Date: Dec 2010
Location: Norway
Posts: 829
|
IIRC Robert Miranda (aka thebajaguy, ex GVP employee) said that at least some GVP 030 boards for A2000 were not designed to be upgraded to 50mHz, even if 50mHz versions of the same board exist.
(Due to RAM timing, PAL ratings, ++) |
![]() |
![]() |
#1638 | |
Moderator
Join Date: Dec 2010
Location: Wisconsin USA
Age: 60
Posts: 846
|
Quote:
Thebajaguy was probably referring to the 25 MHz variant which in fact has a different PAL set. A4000Bear was using the 40 MHz variant which had exactly same PAL set as the 50 MHz variant. Please read his other posts reporting that his Board is now running stable @ 50 MHz. Thank you. |
|
![]() |
![]() |
#1639 |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,307
|
I only read posts that the board is not running stable in certain combinations. The components used on the board might be the same types, but the board did not qualify for 50MHz at GVP, as it was not sold as 50Mhz. This is not about the chip types put on the board, this is about the chip tolerances and variations that were already at the edge at 40Mhz, and are now kicking in.
In case you do not understand, the worst thing that can happen if expansion does not do its job is that expansions are not recognized. It does not explain instabilities as soon as the Os is running and expansion has done its job (or not). At that point, expansion is "out". This is not a software issue you are seeing here. |
![]() |
![]() |
#1640 | |
Registered User
Join Date: Oct 2012
Location: Wolfach / Germany
Posts: 152
|
Quote:
![]() |
|
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Hively Tracker by Iris and Up Rough released for AmigaOS 4.0 | spotUP | News | 14 | 12 June 2014 19:00 |
KryoFlux FREE for AmigaOS Classic released | mr.vince | News | 32 | 23 March 2014 19:59 |
AmigaOS 3.9 | PoLoMoTo | support.WinUAE | 8 | 27 August 2011 18:06 |
AmigaOS | koncool | request.Apps | 6 | 04 June 2003 17:45 |
Amigaos 4 Released!!!! | th4t1guy | Amiga scene | 13 | 03 April 2003 09:52 |
|
|