RISC OS Open
A fast and easily customised operating system for ARM devices
ROOL
Home | News | Downloads | Bugs | Bounties | Forum | Documents | Photos | Contact us
Account
Forums → RPCEmu →

VirtualRPC-DL

Subscribe to VirtualRPC-DL 16 posts, 5 voices

 
May 24, 2016 8:42am
Avatar Colin Ferris (399) 586 posts

Does anyone know if the 4.02 ROM file can be replaced with VirtualRPC-DL – without having to softload the replacement ROM?

ie be made to behave like RedSq – and be able to use various ROxx.

 
May 24, 2016 5:35pm
Avatar Wouter Rademaker (458) 185 posts

Yes, it is possible. You can soft link “ROM” to the actual rom and “hostfs” to the actual directory.

 
Jun 24, 2016 7:42am
Avatar Colin Ferris (399) 586 posts

The question is :- what format is the original ROM 4.02 in?

 
Jun 26, 2016 9:30am
Avatar Colin Ferris (399) 586 posts

With ref to VirtualRPC-DL – what does the ref to ‘ARM7’ model mean?
Are some of the ARM instruction missing – compared to SArm?

 
Jun 26, 2016 10:26am
Avatar Steve Pampling (1551) 3770 posts

With ref to VirtualRPC-DL – what does the ref to ‘ARM7’ model mean?

ARM7, if I recall, was the RPC module that was a small improvement on the ARM6 originally fitted. ARMv3 instruction set I believe.
Not in the same league as the SA, but would probably run donkeys years old software that breaks on SA.

 
Jun 26, 2016 10:52am
Avatar Colin Ferris (399) 586 posts

I was thinking more on the lines of RO5 and Otter running on VirtualRPC-DL.

 
Jun 26, 2016 11:31am
Avatar Steve Pampling (1551) 3770 posts

I was thinking more on the lines of RO5 and Otter running on VirtualRPC-DL

On first seeing the info for VRPC-DL I did wonder about the fiddles (hacks?) required to run RO5 on it.

 
Jun 26, 2016 12:14pm
Avatar Colin Ferris (399) 586 posts

A few modules need updating like in RSqrl – should be a fair bit faster!
Interesting from Usernet – VRPC-DL running RO6 – still uses its resolver module and not RO6 version.
(anyone using RO5 ‘Otter’ can they use Google Groups?)

 
Jun 26, 2016 2:48pm
Avatar Steve Pampling (1551) 3770 posts

A few modules need updating like in RSqrl – should be a fair bit faster!

Sounds like you’ve run the test setup.

 
Jul 2, 2016 10:10am
Avatar Colin Ferris (399) 586 posts

Did a old version of OS_EnterOS (Arthur/RO2) disable the interupts?

Is there a list of the ARM instructions which the StrongArm implemented?
(so to make a test program – to find out which ARM instruction may or may not have been implemented in a Emulator)

Does RO six have swi “OS_LeaveOS” implemented?

Does this bit of code mean anything?


teqp pc,#0
teqp pc,#0
nop
******

 
Jul 2, 2016 11:32am
Avatar Rick Murray (539) 6430 posts

Did a old version of OS_EnterOS (Arthur/RO2) disable the interupts?

No. It just returned from the SWI handler, with SVC mode intact.

From RISC OS 2:

; The SWI Despatch routine

SVC * {PC}-SWIRelocation

        Push    "r10-r12"

        BIC     r12, r14, #ARM_CC_Mask
        LDR     r11, [r12, #-4]
        BIC     r11, r11, #&FF000000
        Push    r11
        BICS    r11, r11, #Auto_Error_SWI_bit
        BEQ     SWIWriteC + SWIRelocation

        ORR     r10, r14, #SVC_mode
        TEQP    r10, #0                 ; restore caller's IRQ state

        CMP     r11, #OS_BreakPt
        CMPNE   r11, #OS_CallAVector
        BICNE   r14, r14, #V_bit        ; clear V unless BreakPoint/CallVector

        CMP     r11, #OS_WriteI
        LDRCC   pc, [pc, r11, LSL #2]

...

        & SENTERSWI

...

SENTERSWI ORR   lr, lr, #SVC_mode
        ExitSWIHandler

If you are disassembling, the IntOn and IntOff code is just above SENTERSWI, which may be why you might have thought this?

Is there a list of the ARM instructions which the StrongArm implemented?

Possibly. I’m not having much luck finding anything due to the age and the wild popularity of the ARM family. ARM710 was ARMv3 while SA110 was ARMv4. I recall (U)MULL was new to StrongARM, though I’m not sure what others there are. It was the first of the split-cache ARMs, and it had an oddity that PC pointed, I think, three instructions beyond the current (rather than the usual 2). Re. OS_PlatformFeatures 0 bit 3.

(so to make a test program – to find out which ARM instruction may or may not have been implemented in a Emulator)

Set an abort handler and just test ’em all?

Does RO six have swi “OS_LeaveOS” implemented?

I have not found any documentation to state that it does, however if it can run a later version of the CallASWI module, it will be provided by that.

Does this bit of code mean anything?
teqp pc,#0
teqp pc,#0
nop

My memory of the 26 bit mode stuff is rusty these days, however I would have imagined that TEQPing zero into PC would zap all the flags – NZCV unset, FIQ/IRQ enabled, USR mode.
Not sure why the instruction is repeated, though.

 
Jul 4, 2016 9:23pm
Avatar Colin Ferris (399) 586 posts

Thanks for the help – is it possible to catch a undefined instruction and replicate it?

Also is there a wimp prog that would press a function key – say many of thousands of times?
ie a box 1000000 showing the number of key presses required.
For getting a debug prog running – and go away and let it do its own thing – till an error is raised.

 
Jul 4, 2016 11:01pm
Avatar Rick Murray (539) 6430 posts

Thanks for the help – is it possible to catch a undefined instruction and replicate it?

Yes. That’s how FPE works. Practically none of the RISC OS machines were fitted with a real FPA, so a clever module traps the undefined instruction abort, checks if it is an FPA instruction (CP1 or CP2), and if so goes and fakes the operation.
Something similar could provide SWP on later ARM devices.

Also is there a wimp prog that would press a function key – say many of thousands of times?

Write a dummy application to start up, poll, and call…what is it? Wimp_ProcessKey? I’m writing this on my phone in bed, but there’s a Wimp SWI used to pass on global keypresses like F12. Thing is, you can (ab)use it to stuff all sorts of keypresses into the system. Many years ago I wrote an app that would “type” the contents of a text file to applications that didn’t directly accept files.

Bake in a secret keypress, like holding both Alt keys, to get the program to stop and quit. Because things can be difficult if you’re trying to quit an app that is firing off loads of fake keypresses. Yeah, this is the voice of experience. ;-)

 
Jul 5, 2016 9:27am
Avatar Colin Ferris (399) 586 posts

Does anyone here really understand the FPE module – I would have thought a new module for the Hardware Floating point would have been very useful.

Unless the ‘C’ compiler comes up with a way of producing code that could handle both – something like the catching of 26/32bit code.
So that one version of the prog/code could be produced – instead of multiple versions for each set of hardware.

Is there an example of a module catching a undefined instruction out there?
(Seems to ring a bell – from the past RiscUser)
Thats if SWP’s number hasn’t been reused :-(

I was thinking of the Long multiply – for the VirtualRPC-DL – but it is possibly – that it may have been implemented.

So no function key prog – thought I’d ask – I wonder if a simple prog could be run in a Task window – producing Function key presses – that could be fed into another window accepting key presses.
I could then simply change the number of key presses!!

 
Jul 5, 2016 11:04am
Avatar Chris Evans (457) 1356 posts

Does anyone here really understand the FPE module – I would have thought a new module for the Hardware Floating point would have been very useful.

Jeffrey has written recently in these forums about this. The jist of it as I recall was the overhead of using the hardware is at a level that it would not make a significant difference. He is looking at improving compile time usage with a filter for older hardware. i.e. the same binary would run on all hardware.

Google Finds me an eight page thread:
https://www.riscosopen.org/forum/forums/2/topics/3457?page=1

 
Sep 24, 2017 8:02pm
Avatar Colin Ferris (399) 586 posts

With VRPC-DL max Screen memory is 8Mb – but without setting Vram to 8Mb – running RO5.23 the screen memory in the task window can be dragged out to 32Mb.
Is there a way for the os to bypass the BandLimit?

Has there been changes – that upset !MakeModes?
(unknown error number 4096)
and then crashes out when generating a MDF (type =2)

Reply

To post replies, please first log in.

Forums → RPCEmu →

Search forums

Social

Follow us on and

Commercial use

For commercial enquiries, please contact the owners of RISC OS, Castle Technology Ltd.

ROOL Store

Buy RISC OS Open merchandise here, including SD cards for Raspberry Pi and more.

Donate! Why?

Help ROOL make things happen – please consider donating!

Description

Discussions about RISC OS 5 running in the RPCEmu open source emulator.

Voices

  • Colin Ferris (399)
  • Wouter Rademaker (458)
  • Steve Pampling (1551)
  • Rick Murray (539)
  • Chris Evans (457)

Options

  • Forums
  • Login
Site design © RISC OS Open Limited 2011 except where indicated
The RISC OS Open Beast theme is based on Beast's default layout

Valid XHTML 1.0  |  Valid CSS

Powered by Beast © 2006 Josh Goebel and Rick Olson
This site runs on Rails

Hosted by Arachsys