amiga.org
     
iconAll times are GMT -6. The time now is 06:25 PM. | Welcome to Forum, please register to access all of our features.

» Amiga.org » Amiga computer related discussion » Amiga Software Issues and Discussion » 68k AGA AROS + UAE => winner!

Amiga Software Issues and Discussion This forum exists for the discussion of the use, issues with, and fun brought about by classic and next generation Amiga software.

Reply
 
Thread Tools Display Modes
Old 04-07-2004, 09:11 AM   #21
bloodline
Master Sock Abuser
Points: 39,749, Level: 100 Points: 39,749, Level: 100 Points: 39,749, Level: 100
Activity: 22% Activity: 22% Activity: 22%
 
bloodline's Avatar
 
Join Date: Mar 2002
Location: London, UK
Posts: 11,972
Blog Entries: 3
Default Re: 68k AGA AROS + UAE => winner!

Quote:
>UAE runs fine on AROS, but some people would like to see it be able to pass
>OS function calls from the Emulation through to the
>Main AROS OS thus integrating it.

if UAE runs on AROS then that is one way around the problem,
just run the 68k binaries on UAE on AROS,

redirecting UAE through AROS sounds quite a tricky problem,

I think this requires a lot of thought just to understand
the problem properly,

you are attempting to transplant one implementation by a totally
different one,

also some 68k programs may hit the h/w directly which the
redirection wouldnt understand,

Ok, the UAE idea, is just that. Run a 68k version AROS on UAE, and run UAE on AROS.

All 68k programs will run in UAE, and they will make OS calls to the 68k version of AROS Running in UAE... That 68k version of AROS will be specially designed to allow it to call AROS functions through UAE. So whe the 68k program calls the 68k AROS in UAE to open a window... the 68k version of AROS calls the x86 version of AROS and that Opens a window.

when the user clicks on a window that is owned by the 68k version of AROS running in UAE, the event gets passed through to the 68k verison of AROS which passes to the 68k program.

If the 68k program tried to hit the hardware, it will have no problems since the Hardware is emulated in UAE.
__________________
My iPhone Game: Puny Humans -
http://itunes.apple.com/gb/app/puny-...362230281?mt=8
bloodline is offline   Reply With Quote
Old 04-07-2004, 09:16 AM   #22
bloodline
Master Sock Abuser
Points: 39,749, Level: 100 Points: 39,749, Level: 100 Points: 39,749, Level: 100
Activity: 22% Activity: 22% Activity: 22%
 
bloodline's Avatar
 
Join Date: Mar 2002
Location: London, UK
Posts: 11,972
Blog Entries: 3
Default Re: 68k AGA AROS + UAE => winner!

Quote:
Karlos wrote:
@bloodline

Well regarding the addressing modes, I could have done without the memory indirect addressing modes added since the 020. There as good as worthless anyway - the time it takes to fully decode one is simply ludicrous.

Does any amiga software even use them?

The only indirect addressing modes I use for 020+ (and see used elsewhere are)

(d16, aN), (aN)+, -(aN), (d8, aN, xN.w|.l * scale)

and occasionally pc based ones, eg I use (d8, pc, xN.w|.l * scale) for some duffs device style jumps into expanded loops.
When I was using 68k, I would tend to use a Memory to Register move, then work in the regs (register to register), then a Register to Memory move.

I really could not be bothered learning all those addressing modes :-( though pre/post incriment/decrement was very handy :-)
__________________
My iPhone Game: Puny Humans -
http://itunes.apple.com/gb/app/puny-...362230281?mt=8
bloodline is offline   Reply With Quote
Old 04-07-2004, 09:22 AM   #23
Karlos
Sockologist
Points: 50,618, Level: 100 Points: 50,618, Level: 100 Points: 50,618, Level: 100
Activity: 5% Activity: 5% Activity: 5%
 
Karlos's Avatar
 
Join Date: Nov 2002
Location: Barishabaad, Sardistan
Posts: 16,667
Blog Entries: 18
Default Re: 68k AGA AROS + UAE => winner!

The register indexed scale mode (d8, aN, xN.w|.l * scale) is incredibly handy and is still fast.

Imagine an array of 32-bit integers, pointed to by a0, and a 16-bit index in d0, you want to move that entry to say d1

move.l (a0, d0.w*4), d1

It's much faster than any pointer arithmetic you can do by manually calculating the address and doesnt trash any registers.

How handy is that?
__________________
OCA
This isn't SCSI... This is SATA!!!
I have CDO. It's like OCD except all the letters are in ascending order. The way they should be.
Core2 Quad Q9450 2.66GHz / X48T / 4GB DDR3 / nVidia GTX275 / Linux x64, AROS, Win64
A1XE 800MHz / 512MB / Radeon 9200 / OS4.1
A1200T BPPC 240MHz / 256MB / Permedia 2 / OS 3.1 - OS3.9, OS4
A1200T Apollo 1240 28MHz / 32MB / Mediator1200 / Voodoo 3000 / OS3.9
A1200D Apollo 1240 25MHz (ejector seat ROM edition) / 32MB
Karlos is offline   Reply With Quote
Old 04-07-2004, 04:24 PM   #24
whoosh777
Too much caffeine
Points: 5,031, Level: 45 Points: 5,031, Level: 45 Points: 5,031, Level: 45
Activity: 0% Activity: 0% Activity: 0%
 
Join Date: Jun 2003
Posts: 114
Default Re: 68k AGA AROS + UAE => winner!


by bloodline on 2004/4/7 9:54:16


--------------------------------------
my questions were:

Quote:



to what extent is AROS an API as compared to an OS?

If you want to directly boot an A1 not via Linux,
how is this done?:

lets say you buy an A1,
you switch it on,

do you have to create a CD on another machine which you
then boot the A1 with?

How much facilities does A1 UBoot provide?

The code you would run on the A1, how is this created?

-----------------------------------------------------------

your answer to this is very interesting, it explains several things
I was wondering about,

---------------------------------------------------------

@bloodline:

>AROS is an OS. It currently is able to boot x86 machines and
>Openfirmware PPC Machines.

>If you were to Flash the A1 BIOS with an Openfirmware rom (written for the Terron),
> then AROS could boot it.

so you appear to be saying it can already be done!

and you also seem to be saying that the only dependencies are that its
Openfirmware, ie the fact its an A1 is irrelevant,

Has this actually been tried out?

What is involved in this flashing of the A1 BIOS?:

lets say someone orders an A1, how do they get the BIOS flashed?

will this clash with running OS4? : what flash does that require, UBoot?

can you switch back and forth between Openfirmware and UBoot?

Have I understood you correctly: you buy an A1, flash the BIOS, download AROS,
boot AROS?

And now can UAE be run just like that on this AROS?

I may go down this path then,

sorry if some of these questions sound ignorant, but I only know in depth
about 68k Amiga,

>I would expect UBoot provides similar features to Openfirmware,
>all it takes is for someone to adapt the AROS Boot code.

are you referring to booting AROS from UBoot??

So are UBoot and Openfirmware the only contenders or are there others?

>A System's firmware initilises the hardware, and brings it to a known state.
>It then Looks for an operating system Loader on the available storage media).
>Once a Loader is found it is executed. The AROS Loader will then load the
>AROS "ROM" code into the memory,
>THat memory is then protected against writing (Since it must be treated as a ROM).

this answers several questions,

now can the MMU be used instead of ROM flashing? ie can UBoot eg remap the
ROM address space to RAM and then copy Openfirmware there and then
metamorphose into Openfirmware or is it more complicated?

>The Loader then preserves all the hardware info from the BIOS into a "safe"
>location... The loader then jumps to the AROS ROM code.
>AROS then takes control of the machine. AROS boots.

does the firmware tell you where all the system memory is located?


are any memory allocation facilities provided or you have to construct these
yourself?

any API provided for reading the drives?


>The Booting precedure is available for view in the AROS source code,
>and If you have any questions you can visit www.aros-exec.org where the
>devs can often be found lurking.

I have to look into this, I feel scared to even look though,
there is something daunting about this, I am afraid to click the link even,
I will click that link, just give me some time!


if I can get an A1 to directly boot AROS and then run UAE above this,
then I think I will go down this path and find out what AROS are doing,


IMO AROS are 10 x as competent as Hyperion,


my interest in this is my own projects that I could run in the AROS
environment so eg I very strictly only use the OS3.0 API and cybergraphics.library,


my interests tend to be nongraphical so eg exec.library interests me
much more than graphics + intuition etc.
Exec really is a masterpiece,



whoosh777 is offline   Reply With Quote
Old 04-07-2004, 04:48 PM   #25
whoosh777
Too much caffeine
Points: 5,031, Level: 45 Points: 5,031, Level: 45 Points: 5,031, Level: 45
Activity: 0% Activity: 0% Activity: 0%
 
Join Date: Jun 2003
Posts: 114
Default Re: 68k AGA AROS + UAE => winner!

by that_punk_guy on 2004/4/7 10:12:07
----------------------------------------------
Quote:


whoosh777 wrote:
The issue of 64 bit code, this can be done by extending the
68k Virtual CPU instruction set by inventing our own 64 bit instructions!

-----------------------------------------------


>And at that point your code no longer runs natively even on the
>lowest common denominator machine: the 68k Amiga.

the 68k architecture anticipates this though:

if you tried executing eg 1010000000000000

which was say at memory location $123400

you would get a "Line 1010 Emulator" exception specifically for
this situation,

I havent done this myself but what I think happens is the
CPU jumps to the trap vector for this exception stored at address $028,
the CPU is in Supervisor mode,

the supervisor stack is in a7 which points indirectly to
the instruction thus:

movea.l 2(a7),a0 ; will move $123400 to a0 (I think),

movea.w (a0),a1 ; will move 1010000000000000 into a1,

which you can now emulate via a subroutine,
my_emulator( a0 = instruction address , a1 = first 16 bits of instruction )

if the extended instructions are thoughtfully designed this emulation
could be ultra fast eg a few machine code instructions,

ie you can patch the 68k CPU to understand the extended instruction set,

whoosh777 is offline   Reply With Quote
Old 04-07-2004, 04:55 PM   #26
whoosh777
Too much caffeine
Points: 5,031, Level: 45 Points: 5,031, Level: 45 Points: 5,031, Level: 45
Activity: 0% Activity: 0% Activity: 0%
 
Join Date: Jun 2003
Posts: 114
Default Re: 68k AGA AROS + UAE => winner!

@bloodline

>Note that the x86 instruction set is more RISC like than the 68k,

how many registers?

0 , 1 , 2 or 3 address code? (max no. of CPU registers per instruction)

can you give some simple examples of x86 assembler?

eg how would you do x = y * z + t where x,y,z,t are all in memory


how does it do floating point maths?



whoosh777 is offline   Reply With Quote
Old 04-07-2004, 05:47 PM   #27
BigBenAussie
Technoid
Points: 7,230, Level: 56 Points: 7,230, Level: 56 Points: 7,230, Level: 56
Activity: 18% Activity: 18% Activity: 18%
 
Join Date: Feb 2004
Posts: 314
Send a message via MSN to BigBenAussie
Default Re: 68k AGA AROS + UAE => winner!

You know what I think would be a winner. And I know this is flame bait.

AROS should sit on top of Linux and be able to utilise Linux apps. Sun has just released its Java Desktop System(JDS) which has its StarOffice suite and sits on top of Linux. Its on the cover of a few mags at the moment and it appears to me that it is being hailed merely for being a different distribution and looking like windows.

AROS could get some quick publicity if it offered its own distribution perhaps with some converted Amiga utils or existing Apps running through UAE. At the very least, sitting on top of linux it could call up some of the standard Linux apps and call itself a distribution. It could run Linux based browsers and openoffice. And it should run off the CD like JDS does. You could also include some of the decent free Amiga games and apps on the CD. And you would need a very decent startup theme.

Ok...There's a problem, most likely in that it doesn't support the same GUI library. Doah...

But still, if it could be done, you get points on the board and some interest that could perhaps be diverted into more people being interested in developing AROS further. You could include your linux based development environment on the CD too and see if some Linux people want to go to the trouble of converting some apps to native Amiga.

There I said it.
I know it sounds like prostituting AROS but it might take it to the next level. And you could still work on your native version.
BigBenAussie is offline   Reply With Quote
Old 04-07-2004, 06:31 PM   #28
whoosh777
Too much caffeine
Points: 5,031, Level: 45 Points: 5,031, Level: 45 Points: 5,031, Level: 45
Activity: 0% Activity: 0% Activity: 0%
 
Join Date: Jun 2003
Posts: 114
Default Re: 68k AGA AROS + UAE => winner!

>if you tried executing eg 1010000000000000

>which was say at memory location $123400

>you would get a "Line 1010 Emulator" exception specifically for
>this situation,

>I havent done this myself but what I think happens is the
>CPU jumps to the trap vector for this exception stored at address $028,
>the CPU is in Supervisor mode,

if you want to see the default trap handler for the above exception
in action on your system,
download this binary: http://www.whoosh777.pwp.blueyonder.co.uk/crash1010

it is the program:

THE ORIGINAL VERSION OF THIS WAS WRONG AND DIDNT CRASH CORRECTLY!
SO I HAVE EDITTED THIS POSTING WITH A DEBUGGED VERSION THAT CRASHES CORRECTLY!


unsigned int x ;

void (*y)(void);

int main( int argc , char **argv )
{
x = 0xa0000000 ;
y = (void (*)(void))&x ;

y() ;
return( 0 ) ;
}

I got a crash requester:

crash1010
Program failed (error #8000000A).
Wait for disk activity to finish.

Suspend Reboot

exec/alerts.h says that 8000000A is "Line 1010 Emulator error":

#define ACPU_Trace 0x80000009 /* Trace error */
#define ACPU_LineA 0x8000000A /* Line 1010 Emulator error */
#define ACPU_LineF 0x8000000B /* Line 1111 Emulator error */
#define ACPU_Format 0x8000000E /* Stack frame format error */


"Line 1111" is the exception you get if you run a FPU instruction without an
FPU present,

:in theory someone could write an FPU emulator for 68k CPUs lacking FPUs,
(all FPU instructions begin with the binary digits 1111),
that way you could run FPU binaries on non FPU machines,

whoosh777 is offline   Reply With Quote
Old 04-07-2004, 08:45 PM   #29
whoosh777
Too much caffeine
Points: 5,031, Level: 45 Points: 5,031, Level: 45 Points: 5,031, Level: 45
Activity: 0% Activity: 0% Activity: 0%
 
Join Date: Jun 2003
Posts: 114
Default Re: 68k AGA AROS + UAE => winner!


this is embarrassing, but several hours after uploading
crash1010 I was reading a comic about a guy flying an
aeroplane into the future when I suddenly realised
the bug in crash1010, thats why it wasnt crashing correctly!

I've fixed the bug and editted that post with the correct
version that causes the 1010 line emulator trap handler
crash requester,

it now crashes correctly with no. #8000000A,

and I blamed AmigaOS!

anyway I can laugh now,

BTW how do you get the smileys into postings,
I cannot see how to do it, I tried clicking on them
but it doesnt seem to have any effect?
whoosh777 is offline   Reply With Quote
Old 04-08-2004, 12:35 AM   #30
Hammer
VIP / Donor
Points: 11,529, Level: 70 Points: 11,529, Level: 70 Points: 11,529, Level: 70
Activity: 20% Activity: 20% Activity: 20%
 
Join Date: Mar 2002
Location: NSW, Oz
Posts: 1,992
Default Re: 68k AGA AROS + UAE => winner!

Quote:
how many registers?
AMD64(X86-64) exposes 16 GPRs 64bit registers, while Pentium IV** (with hyper-treading) has 8 + 8 GPRs configuration.

Quote:
how does it do floating point maths?
About X86-64/AMD64
"Instruction set is designed to offer all advantages of CISC and RISC.
- Code Density of CISC
- Register usage and ABI models of RISC"

Reference document
Hammer is offline   Reply With Quote
Old 04-08-2004, 03:11 AM   #31
Karlos
Sockologist
Points: 50,618, Level: 100 Points: 50,618, Level: 100 Points: 50,618, Level: 100
Activity: 5% Activity: 5% Activity: 5%
 
Karlos's Avatar
 
Join Date: Nov 2002
Location: Barishabaad, Sardistan
Posts: 16,667
Blog Entries: 18
Default Re: 68k AGA AROS + UAE => winner!

@whoosh777

You do realise that trap based emulation on a real 680x0 is very slow? Hardly suitable for introducing support for new instruction opcodes to a real 680x0 CPU, especially if they were used heavily.
__________________
OCA
This isn't SCSI... This is SATA!!!
I have CDO. It's like OCD except all the letters are in ascending order. The way they should be.
Core2 Quad Q9450 2.66GHz / X48T / 4GB DDR3 / nVidia GTX275 / Linux x64, AROS, Win64
A1XE 800MHz / 512MB / Radeon 9200 / OS4.1
A1200T BPPC 240MHz / 256MB / Permedia 2 / OS 3.1 - OS3.9, OS4
A1200T Apollo 1240 28MHz / 32MB / Mediator1200 / Voodoo 3000 / OS3.9
A1200D Apollo 1240 25MHz (ejector seat ROM edition) / 32MB
Karlos is offline   Reply With Quote
Old 04-08-2004, 04:22 AM   #32
bloodline
Master Sock Abuser
Points: 39,749, Level: 100 Points: 39,749, Level: 100 Points: 39,749, Level: 100
Activity: 22% Activity: 22% Activity: 22%
 
bloodline's Avatar
 
Join Date: Mar 2002
Location: London, UK
Posts: 11,972
Blog Entries: 3
Default Re: 68k AGA AROS + UAE => winner!

Quote:
>AROS is an OS. It currently is able to boot x86 machines and
>Openfirmware PPC Machines.

>If you were to Flash the A1 BIOS with an Openfirmware rom (written for the Terron),
> then AROS could boot it.

so you appear to be saying it can already be done!

and you also seem to be saying that the only dependencies are that its
Openfirmware, ie the fact its an A1 is irrelevant,

Has this actually been tried out?

What is involved in this flashing of the A1 BIOS?:

lets say someone orders an A1, how do they get the BIOS flashed?

will this clash with running OS4? : what flash does that require, UBoot?

can you switch back and forth between Openfirmware and UBoot?

Have I understood you correctly: you buy an A1, flash the BIOS, download AROS,
boot AROS?
Yes, the fact that it's an A1 is irrelevant. The hardware is a *standard* PPC machine.

First you would have to get an Openfirmware BIOS image from someone. I don't know if these exist, if they do, then One of the other users of the MAI chipset might have one. Check out the Terron.

I assume the A1 BIOS can be flashed by software... most BIOS's can be.

OS4 needs UBoot to boot, for the same reason AROS needs Openfirmware. THat's what they have been written to use. I don't think it's healthy to keep reflashing the BIOS. If one wants to use an Openfirmware PPC machine I would suggest they get an old Mac or a Pegasos2.

On the PC one can use the MMU to load a BIOS image into memory and then use that instead of the ROM BIOS... I assume the same is true of the PPC machines.

The solution to this problem is to get someone with UBoot experience to adapt AROS to use UBoot instead of Openfirmware, That's the simplest solution all round.

Quote:
>The Loader then preserves all the hardware info from the BIOS into a "safe"
>location... The loader then jumps to the AROS ROM code.
>AROS then takes control of the machine. AROS boots.

does the firmware tell you where all the system memory is located?


are any memory allocation facilities provided or you have to construct these
yourself?

any API provided for reading the drives?

The Firmware tells you how much memory is present (Thoguh it's good practice to check while the OS is booting).

The Memory is always located in it's address space... your question doesn't make much sense :-(. Maybe you mean other memory like PCI space and stuff, yes that sort of information is usually gathered by the BIOS, and AROS uses that information.

AROS provides the Memory allocating functions. The Firmware does not need to know about stuff like that.

Most BIOS firmware does provide a simple API for accessing physical sotrage media... how else are you going to load the OS :-)

Quote:
if I can get an A1 to directly boot AROS and then run UAE above this,
then I think I will go down this path and find out what AROS are doing,


IMO AROS are 10 x as competent as Hyperion,


my interest in this is my own projects that I could run in the AROS
environment so eg I very strictly only use the OS3.0 API and cybergraphics.library,


my interests tend to be nongraphical so eg exec.library interests me
much more than graphics + intuition etc.
Exec really is a masterpiece,
If you want to work on the PPC version of AROS why not help the PPC guys get it running on UBoot?

I think Hyperion are perfectly competant, it's hard work writing an OS from Scratch.

You project should run fine in AROS, if you have a PC there, then you could compile your Apps for AROS right now and use them on your PC with AROS :-)

Exec is a masterpeice! And getting to look at the Exec sources in AROS is really nice :-)
__________________
My iPhone Game: Puny Humans -
http://itunes.apple.com/gb/app/puny-...362230281?mt=8
bloodline is offline   Reply With Quote
Old 04-08-2004, 04:35 PM   #33
whoosh777
Too much caffeine
Points: 5,031, Level: 45 Points: 5,031, Level: 45 Points: 5,031, Level: 45
Activity: 0% Activity: 0% Activity: 0%
 
Join Date: Jun 2003
Posts: 114
Default Re: 68k AGA AROS + UAE => winner!




@bloodline

>Yes, the fact that it's an A1 is irrelevant. The hardware is a *standard* PPC
>machine.

this thought is running through my mind:

reflash A1 and then run Morphos,
reflash Pegasos and then run OS4,
reflash either and run AROS,


>First you would have to get an Openfirmware BIOS image from someone. I don't know
>if these exist, if they do, then One of the other users of the MAI chipset might
>have one. Check out the Terron.

I assume such BIOS images are "public domain",

I think I have to buy the machine first, I like doing things in the
correct sequence,

>I assume the A1 BIOS can be flashed by software... most BIOS's can be.

can it also be backed up?

would it just be a matter of getting the MMU to write enable the BIOS
and then copy the bitmap?


>OS4 needs UBoot to boot, for the same reason AROS needs Openfirmware.
>THat's what they have been written to use. I don't think it's healthy to keep
>reflashing the BIOS. If one wants to use an Openfirmware PPC machine I
>would suggest they get an old Mac or o Pegasos2.

ok, was there any thinking behind their decision to use UBoot?

maybe someone with a Pegasos2 could make their Openfirmware BIOS image available,
ditto A1 UBoot,

> On the PC one can use the MMU to load a BIOS image into memory and then use that
>instead of the ROM BIOS... I assume the same is true of the PPC machines.

sounds a much better approach,

> The solution to this problem is to get someone with UBoot experience to adapt
>AROS to use UBoot instead of Openfirmware, That's the simplest solution all round.

>The Firmware tells you how much memory is present
>(Thoguh it's good practice to check while the OS is booting).

>The Memory is always located in it's address space... your question doesn't make
>much sense.

I was thinking in terms of the classic machine where the memory may be
in several noncontiguous segments,

it sounds like you are saying its all remapped into 1 contiguous slot,


>Maybe you mean other memory like PCI space and stuff,
>yes that sort of information is usually gathered by the BIOS,
>and AROS uses that information.


>AROS provides the Memory allocating functions. The Firmware does not need to know
>about stuff like that.

ok, not a major problem,

>Most BIOS firmware does provide a simple API for accessing physical
>sotrage media... how else are you going to load the OS

I was wondering about this,

eg if you have some arbitrary storage device eg USB or SCSI or IDE,
I was wondering how a low level initial API deals with arbitrary h/w,
but maybe the storage device sorts itself out,


>If you want to work on the PPC version of AROS why not help the PPC guys get it
>running on UBoot?

quite possibly, maybe a good approach would be the more general problem of
layering Openfirmware above Uboot,

if Uboot and Openfirmware are both quite simple then this layering may not
be a big deal,

and then layer the reverse way round,

what I may do is buy an A1, and then fool around with the UBoot to try
and understand it and then look into what the AROS people are doing,


>I think Hyperion are perfectly competant, it's hard work writing an OS from Scratch.

I challenged one of them to tell us in detail what they are doing:
on an hour by hour basis, or even on a day by day basis,
which OS library or subsystem, which API calls, are they debugging or
writing new stuff, is the delay because of quantity of stuff or
difficulty of stuff,

is it graphics.library or dos.library or what?

the huge time they are taking must be occupied doing something,
exactly what is that which is so time-consuming,

I realize that coding is very time consuming and an interesting program
feature could take 1 week to achieve,

I got no reply,

for all I know they are lying in hammocks sipping amicola and reading
star-trek-fanzines,


basically I asked them for a captains-log, and got silence,


I emailed Hans-Joerg requesting their 68k hosted cross compiler,
I got no reply, not even "no I cannot send you this because...",


the whole point of a 68k hosted cross compiler is to run it on a
68k machine,


Their website tells you next to nothing,


they have had a whole suite of cross compilers available since last year,
and they still havent released it, they promised on their website on
Christmas day to deliver this.
For Christmas 2002 we were promised OS4 under christmas trees and
on Christmas 2003 all we got was a promise under a christmas tree,

:they cannot release stuff thats already been done, time is of the essence,

you see I think now that the OS4 shown at Pianeta was merely a hacked
UAE, OS4 maybe doesnt exist,

KMOS are behaving exactly like Hyperion, no announces, no presence,
no nothing, they sound like a stooge,


>You project should run fine in AROS, if you have a PC there, then you could
>compile your Apps for AROS right now and use them on your PC with AROS

I only have 68k machines, 2 68000 A500s and a 68030 A1200,
I will try and get some stuff onto AROS though this will probably wait till I am
on PPC or PC, I have lots of useful utilities that I have written to manage
my own system,

eg I wrote a recursive date sorter, feed it a list of directories
eg some partitions and it will recursively sort the entirety by date,

it will cope no probs with an entire CD, (you need enough ram for the
list to fit: 1/2 Gig full partition on my 14 meg 030 was no problem)

it takes n log n time so there is no noticeable slowdown,
it just munches its way through whatever you feed it,

it can cope with up to 2^32 entries,

not a big deal but very fast + useful, took 1 or 2 days to write + debug,

:I use it to find out what I was last up to on a partition if I havent
used it for a long time,

I will upload the 68k version to my site later tonight:

http://www.whoosh777.pwp.blueyonder.co.uk/datesorter.lha

(not there yet as I type this),

example usage:

dates -r ram: -n c: -r -p #?.c df0: -n df1:

=> recursively scan ram:, then non recursively scan c:,
then recursively scan df0: filtering in pattern #?.c,
then non-recursively scan filtering pattern #?.c df1:,

merged sorted list is output,

:you can filter in any pattern,

for usage info:

dates ?

or

dates

>Exec is a masterpeice! And getting to look at the Exec sources in AROS is
>really nice

it could help me understand the original exec,


whoosh777 is offline   Reply With Quote
Old 04-08-2004, 04:54 PM   #34
whoosh777
Too much caffeine
Points: 5,031, Level: 45 Points: 5,031, Level: 45 Points: 5,031, Level: 45
Activity: 0% Activity: 0% Activity: 0%
 
Join Date: Jun 2003
Posts: 114
Default Re: 68k AGA AROS + UAE => winner!


------------------------------------------

@bloodline

Ok, the UAE idea, is just that. Run a 68k version AROS on UAE, and run UAE on AROS.

All 68k programs will run in UAE, and they will make OS calls to the 68k version
of AROS Running in UAE... That 68k version of AROS will be specially designed to
allow it to call AROS functions through UAE. So whe the 68k program calls the 68k
AROS in UAE C
o open a window... the 68k version of AROS calls the x86 version of AROS and that
Opens a window.

when the user clicks on a window that is owned by the 68k version of AROS running
in UAE, the event gets passed through to the 68k verison of AROS which passes to
the 68k program.

If the 68k program tried to hit the hardware, it will have no problems since the
Hardware is emulated in UAE.

------------------------------------------

I am gradually starting to understand the problem,
some ideas on this:

break UAE into 2 programs: UAE_chipset_emulator and UAE_68k_emulator,

implement UAE_chipset_emulator via AROS API calls,

run this as a background prog from AROS: it will read + write protect
the classic chipset address range: any read or write accesses will be
redirected to AROS API calls so eg:

a word write of #$c000 to dff09a will be implemented via
AROS Enable() but with SysBase->IDNestCnt unchanged,


No ROM will be used, classic 68k programs will be directly fed to UAE_68k_emulator
which will directly access the data structures of AROS,

x86 AROS may need to be big endian,

problem: (there may be other problems too),

if a 68k prog accesses a jump vector eg jsr -444(a6) for OpenDevice,
the jump vector may be PPC native so you dont want the instruction
emulated:

a huge hack around this is to put PPC native code in the upper half of memory,
ie addresses where bit 31 is 1, and 68k code in the other half,

when the emulator is active read-protect the upper half of memory,
when inactive execute-protect the lower half,

this way when the emulator attempts to read the PPC instruction from
the upper half, you get an exception which toggles
from emulator to PPC CPU,

likewise if the PPC tries to execute a 68k instruction from the lower half,
you get an exception toggling from PPC to emulator,

its just an idea and I havent thought it through too deeply,

but maybe you can fine tune it into real architecture,


whoosh777 is offline   Reply With Quote
Old 04-08-2004, 04:57 PM   #35
bloodline
Master Sock Abuser
Points: 39,749, Level: 100 Points: 39,749, Level: 100 Points: 39,749, Level: 100
Activity: 22% Activity: 22% Activity: 22%
 
bloodline's Avatar
 
Join Date: Mar 2002
Location: London, UK
Posts: 11,972
Blog Entries: 3
Default Re: 68k AGA AROS + UAE => winner!

Quote:
>OS4 needs UBoot to boot, for the same reason AROS needs Openfirmware.
>THat's what they have been written to use. I don't think it's healthy to keep
>reflashing the BIOS. If one wants to use an Openfirmware PPC machine I
>would suggest they get an old Mac or o Pegasos2.

ok, was there any thinking behind their decision to use UBoot?
I think they choose it because it was different from the other PPC machines which all went Openfirmware, That way they could lminit the machine which OS4 runs on, and that it was suitable for thier needs.

Quote:
> The solution to this problem is to get someone with UBoot experience to adapt
>AROS to use UBoot instead of Openfirmware, That's the simplest solution all round.

>The Firmware tells you how much memory is present
>(Thoguh it's good practice to check while the OS is booting).

>The Memory is always located in it's address space... your question doesn't make
>much sense.

I was thinking in terms of the classic machine where the memory may be
in several noncontiguous segments,

it sounds like you are saying its all remapped into 1 contiguous slot,
System Ram (Which AROS calls Fast Mem) is. Note AROS calls the first 16meg of System Ram Chips Mem, as this is DMA able ram.

Quote:
>If you want to work on the PPC version of AROS why not help the PPC guys get it
>running on UBoot?

quite possibly, maybe a good approach would be the more general problem of
layering Openfirmware above Uboot,

if Uboot and Openfirmware are both quite simple then this layering may not
be a big deal,

and then layer the reverse way round,

what I may do is buy an A1, and then fool around with the UBoot to try
and understand it and then look into what the AROS people are doing,
AROS is really modular. One would not layer OF (Openfirmware) on top of UBoot, one would take out the OF boot code and replace it with UBoot Boot code. The advntage of AROS being opensource is that it can be hacked to suit the needs of the user (ie you) :-)

Quote:
>You project should run fine in AROS, if you have a PC there, then you could
>compile your Apps for AROS right now and use them on your PC with AROS

I only have 68k machines, 2 68000 A500s and a 68030 A1200,
I will try and get some stuff onto AROS though this will probably wait till I am
on PPC or PC, I have lots of useful utilities that I have written to manage
my own system,
If you find a PC in the trash/skip/bin then dig it out and run AROS on it, I have several junk machines found that run AROS fine.

Quote:
>Exec is a masterpeice! And getting to look at the Exec sources in AROS is
>really nice

it could help me understand the original exec,
The AROS code does the same as the original code... so it's a great place to really admire the design.
__________________
My iPhone Game: Puny Humans -
http://itunes.apple.com/gb/app/puny-...362230281?mt=8
bloodline is offline   Reply With Quote
Old 04-08-2004, 05:08 PM   #36
bloodline
Master Sock Abuser
Points: 39,749, Level: 100 Points: 39,749, Level: 100 Points: 39,749, Level: 100
Activity: 22% Activity: 22% Activity: 22%
 
bloodline's Avatar
 
Join Date: Mar 2002
Location: London, UK
Posts: 11,972
Blog Entries: 3
Default Re: 68k AGA AROS + UAE => winner!

Quote:
whoosh777 wrote <lots of stuff about emualtion>
I think you need to chat to Crumb...

But Keeping 68k Apps away from x86 apps will be better in the long term... espeacially when adding features like Memory Protection, which 68k apps simply cannot work under.

Basicly keep 68k in the emulator and only let certain OS calls out to the Main AROS, so that the 68k programs can function in the same windowing environment as the x86 apps (without actually going near them).
__________________
My iPhone Game: Puny Humans -
http://itunes.apple.com/gb/app/puny-...362230281?mt=8
bloodline is offline   Reply With Quote
Old 04-08-2004, 05:27 PM   #37
whoosh777
Too much caffeine
Points: 5,031, Level: 45 Points: 5,031, Level: 45 Points: 5,031, Level: 45
Activity: 0% Activity: 0% Activity: 0%
 
Join Date: Jun 2003
Posts: 114
Default Re: 68k AGA AROS + UAE => winner!

----------------------------------------------------------------

@Karlos

You do realise that trap based emulation on a real 680x0 is very slow?
Hardly suitable for introducing support for new instruction opcodes to
a real 680x0 CPU, especially if they were used heavily.

----------------------------------------------------------------

one way out is:

use traps as I suggested, here real 68k instructions are at full speed,
but as you point out the extended instructions will be emulated slowly,

SR + PC have to be backed up by the h/w (and possibly other stuff)= 2 move's,
2 moves to get address + instruction, jsr + rts to the emulator code,

bitfield extractions + switch statements, soon be exceeding 20 instructions,

so,

simplified JIT emulation could speed this up, replace the offending instruction by
a direct bsr to its emulation, the extended instructions would need to be
designed to be the right size so a bsr will fit, could be done by always following
it with 2 no-op NOP's, (a general bsr requires 6 bytes),

:this way second time round the only overhead is jsr + rts,

self modifying code,



BTW regarding neat 68k instructions, I think movem of 68000 is very
effective eg:

movem.l d0/d1/d2/d3/d4/d5/d6/d7/a0/a1/a2/a3/a4/a5/a6,-(a7)

:a 4 byte instruction to backup 15 registers,

normally would require 15 instructions:

move.l a6,-(a7)
move.l a5,-(a7)
....
move.l d0,-(a7)

(hope I got the order correct),

----------------------------------------
@Hammer

AMD64(X86-64) exposes 16 GPRs 64bit registers, while Pentium IV**
(with hyper-treading) has 8 + 8 GPRs configuration.

-----------------------------------------

16 sounds a good decision,
what about 486 and earlier CPUs?


(the speed advantage of x86 makes me believe that something about
their architecture must be very good, I am curious to know what that is),



@BigBenAussie,

if you have AROS on Linux, why not just use the Linux apps directly on Linux!


for office use why not buy Windows and use MS Apps,
if you have an office you can probably afford this
purchase,


what would be interesting would be Linux-in-a-window to run on any Amiga,


whoosh777 is offline   Reply With Quote
Old 04-08-2004, 07:19 PM   #38
Karlos
Sockologist
Points: 50,618, Level: 100 Points: 50,618, Level: 100 Points: 50,618, Level: 100
Activity: 5% Activity: 5% Activity: 5%
 
Karlos's Avatar
 
Join Date: Nov 2002
Location: Barishabaad, Sardistan
Posts: 16,667
Blog Entries: 18
Default Re: 68k AGA AROS + UAE => winner!

@whoosh777

A trap based emulation which can replace each "emulated" instruction with a jump to handling code the first time it is encountered is probably the way to go. I think that's how stuff like oxypatcher/cyberpatcher work anyway.

As for movem, you'd want to check the CPU before making any performance assumptions. On the 68040, for instance, it often takes longer than multiple move.l instructions (although I'm not totally sure if the same is true for 68060).
__________________
OCA
This isn't SCSI... This is SATA!!!
I have CDO. It's like OCD except all the letters are in ascending order. The way they should be.
Core2 Quad Q9450 2.66GHz / X48T / 4GB DDR3 / nVidia GTX275 / Linux x64, AROS, Win64
A1XE 800MHz / 512MB / Radeon 9200 / OS4.1
A1200T BPPC 240MHz / 256MB / Permedia 2 / OS 3.1 - OS3.9, OS4
A1200T Apollo 1240 28MHz / 32MB / Mediator1200 / Voodoo 3000 / OS3.9
A1200D Apollo 1240 25MHz (ejector seat ROM edition) / 32MB
Karlos is offline   Reply With Quote
Old 04-09-2004, 12:02 AM   #39
Hammer
VIP / Donor
Points: 11,529, Level: 70 Points: 11,529, Level: 70 Points: 11,529, Level: 70
Activity: 20% Activity: 20% Activity: 20%
 
Join Date: Mar 2002
Location: NSW, Oz
Posts: 1,992
Default Re: 68k AGA AROS + UAE => winner!

Quote:
what about 486 and earlier CPUs?
Just 8 32bit GPRs (386 and above).

Quote:
(the speed advantage of x86 makes me believe that something about their architecture must be very good, I am curious to know what that is),
It would be more on the micro-architecture side than the ISA side. "Bang per buck" and legacy support (a.k.a "software investment protection") are the other strengths of X86.

Note that IF PPC32 ISA is a "real RISC", the need for decoding/'cracking' into smaller RISC instructions wouldn’t be required in the PPC 970(52million transistors beast)(IBM's own "Athlon" but applied for PPC32 ISA).
Hammer is offline   Reply With Quote
Old 04-09-2004, 06:23 PM   #40
whoosh777
Too much caffeine
Points: 5,031, Level: 45 Points: 5,031, Level: 45 Points: 5,031, Level: 45
Activity: 0% Activity: 0% Activity: 0%
 
Join Date: Jun 2003
Posts: 114
Default Re: 68k AGA AROS + UAE => winner!


@bloodline

who is Crumb?

>If you find a PC in the trash/skip/bin then dig it out and run AROS on it,
>I have several junk machines found that run AROS fine.

I am trying to decide which path to take, PC or A1?

if I buy an A1 I think I can sell it back to Eyetech,
this reduces the risk of making this purchase,

re: reflashing ROMs, could you also run Mac's OS on Pegasos + A1
as well as Morphos + OS4 + AROS on Macs?


Some AROS questions:

1. what compiler(s) are used for recompiling AROS programs?
2. are commercial AROS programs allowed, eg could they sell an
AROS version of IBrowse?

because if AROS is free programs only I see this as a problem,

I am happy to contribute a lot of work for free and I have done for 68k,
but I would also like to sell some programs,

ambitious free programming work is a very good way to learn,
but you can only do it for so long,

if a developer spends 8 months on an OS3.1 program,
then they will be thinking:

shall I give it for free to AROS
or shall I sell it to Morphos + OS4 + 68k + Amithlon people,

now if they can sell it to AROS people they are more likely
to choose the AROS option,

one way out is to only do a 68k version here they can sell it
anywhere they like which is probably what will happen,

some programs will be done for free and some will be very high quality,
but you wont have row upon row of fantastic stuff, just the occasional gem,

the project would certainly succeed but in the spirit of
gnu,


it will become like http://ftp.gnu.org/gnu where 5% is fantastic eg gcc,
5% is self referential eg sed + awk + automake
(you need this because you need this!) and the rest requires a lot
of work to even determine what it is!

ie row upon row of "what on earth is this bloated archive"?

rpm is a red-hat self referential program, current rpm is some 9 meg compressed,
do I want it? no, so why do I use it? because there is lots of interesting stuff
only available in this format. If everything on the internet is in Betelgeusian
then I have to learn that,


I dont know whether Linux allows commercial programs,


put another way if AROS is free things only then there is a danger of
becoming a charity to impoverished Amiga users (such as me )


but if commercial stuff is allowed then the future is bright,


the government used to give free glasses here, (no longer though)
but they were small lensed plastic framed Buddy Holly ones,
they also provided £15 gold rimmed circular John Lennon glasses,

I like your NHS glasses!

are you poor? or just mean?

commercial glasses OTOH are super duper scratch proof + cool looking with nice shaped lenses, well designed
nose-pieces and you have a big choice also they fit better on your face,

you get free education also but apart from some exceptional schools you may
have to share your class with some thugs, but pay (through your nose) and you
get conscientious teachers + fancy equipment and all sorts of extra opportunities,

you want your sprog to learn the piano?

we'll get sproggo to grade 9 on a Steinway with this top tutor, just £40 per lesson,

(I think its called a Steinway and I think its grade 9 but I could be wrong)

-------------------------------------------------------------------------

@karlos

>A trap based emulation which can replace each "emulated" instruction with a jump
>to handling code the first time it is encountered is probably the way to go.
>I think that's how stuff like oxypatcher/cyberpatcher work anyway.


I think the only way to get faster will be via full blown JIT which
is going to be months and months of work, (68k JIT emulation of 68k),

with such a JIT something like move.l d0,d1 will translate as is,
its the position dependent instructions that will be the problem,
pc-relative instructions will also be a problem because the relative
distance can change,


>As for movem, you'd want to check the CPU before making any performance
>assumptions. On the 68040, for instance, it often takes longer than
>multiple move.l instructions (although I'm not totally sure if the same is true
>for 68060).

I have found that the safest way to write assembler is often
just to use simple minded instructions:

the clever instructions often run slower,

68k actually has some instructions which save neither space nor time!

just use an, dn, xyz(an), -(an), (an)+,
and your code will be pretty good, as well as straightforward to
port to a different CPU,

:it will also be much easier to read + debug,


In fact this applies to C as well, if you write a program in a simple
to understand way its often faster than if you try to make it fast,



2 things that assembly language programmers often forget:

1. instructions need to be loaded from ram:

so eg "move.l d0,d1" doesnt reference ram, but the instruction
itself 00 10 001 000 000 000 has to be loaded from ram:,

2. caches:

loop instructions and the stack are almost certainly in a cache so
are read much faster than you think,

whoosh777 is offline   Reply With Quote
Reply

Bookmarks

Tags
aga , uae , 68k , winner , aros

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Winner Z4 busboard for sale Boot_WB Amiga Marketplace 6 07-11-2006 02:40 AM
Winner 4-DEV IDE Interface jgratton Amiga Hardware Issues and discussion 2 01-14-2006 04:22 PM
Elbox: Winner IDE jimmyboy Amiga Hardware Issues and discussion 1 09-15-2005 07:40 AM
Winner Z4 busboard for A1200 Eco Amiga Marketplace 1 05-20-2005 05:25 PM
Meteorite hits lottery winner blobrana CH / Entertainment 5 07-12-2004 08:01 AM