home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / sys / acorn / tech / 93 < prev    next >
Encoding:
Internet Message Format  |  1992-09-02  |  3.0 KB

  1. Path: sparky!uunet!mcsun!uknet!harrier.ukc.ac.uk!gos.ukc.ac.uk!amsh1
  2. From: amsh1@ukc.ac.uk (Brian May#2)
  3. Newsgroups: comp.sys.acorn.tech
  4. Subject: ARM3 instructions.
  5. Message-ID: <4422@gos.ukc.ac.uk>
  6. Date: 3 Sep 92 14:36:21 GMT
  7. Sender: amsh1@ukc.ac.uk
  8. Organization: Computing Lab, University of Kent at Canterbury, UK.
  9. Lines: 53
  10.  
  11.  
  12.   I don't have an Archie myself but have used them quite a lot in the past.
  13. I was recently mucking about with a friend's A5000, trying to find the new
  14. instructions that turned the cache on and off. I found them, they were
  15. co-processor instructions with the processor itself as (I think) number 0.
  16.  
  17.   Anyway, as I was disassembling away I found a new instruction (well, I had
  18. never come across it before). It was 'SWP' and I imagine it swaps registers
  19. with registers, maybe with memory as well? I can't remember. If it does
  20. reg<->mem as well, and is uninterruptable, perhaps it is for use as a
  21. semaphore in multi-processor systems?
  22.  
  23.   I worked out how it fitted into the instruction set, it is where an
  24. illegal instruction was previously. I think it might have been due to only
  25. four bits for a register shift, five bits for an immediate - hence an extra
  26. bit which would have to be 0 for a normal instruction. I can't really
  27. explain this very coherently but someone will know what I mean!
  28.  
  29.   I then wrote a program to generate all possible versions of this
  30. instruction, but I didn't print them out... Anyway, it didn't help me work
  31. out what they actually did (if I had my own A5000 I would spend some more
  32. time on it, but I haven't and I'm just interested)
  33.  
  34.   Of course I won't be the first person to notice this so I wondered, could
  35. someone post some info on this, and also on the co-processor instructions
  36. relevant to the CPU itself?
  37.  
  38.   Another thing - RiscOs (being quite well designed as it is) has certain
  39. ways of doing things which leads me to ask the question: When I do ...
  40.   *memoryi 03800000 (Is it *memoryi? Is 03800000 ROM? Do I need my own
  41. Archie?)
  42.  
  43.   ... and a coprocessor instruction is found, which module decodes it? Now
  44. if I wrote Risc-Os, I would get the ARM3 support module to decode the
  45. instructions, and I would get a floating point emulator to decode the FPU
  46. instructions. That way, it's nicely modular and extensible.
  47.  
  48.   Now, I didn't write Risc-Os, and as I remember, the FPU decoding is done
  49. in the debugger. I looked through the ARM3 support module and found some
  50. text relating to the cache instructions, but not all of them. I couldn't
  51. find any in the debugger.
  52.  
  53.   If I sound a little vague, please understand that I didn't have all day
  54. to sort this out, and it was two months ago!
  55.  
  56. Andrew.
  57.  
  58. ps. Nothing to do with my post, but just to pour petrol on the flames, I'm
  59. gonna buy a 486 PC cos I can get more power for less money, and the screen
  60. doesn't blank when I access the disk drive :-) So if Acorn are listening
  61. (and I think they are!) I think you have a well-defined problem on your
  62. hands. I wonder if someone could write RiscOs for a PC? Or an Archimedes
  63. emulator, now that would be amusing...
  64.