Well, I really should have picked up on a6 before - it's well known that you
mustn't mess with it in extensions, but this was being invoked through a
RESPR/LBYTES/CALL sequence and the issue hadn't occurred to me.  It didn't
help that SMSQ/E (neither under QPC2 nor on an Aurora SGC) didn't cause the
fault to present! ;) which actually is a tribute to SMSQ's robustness.


Adrian

-----Original Message-----
From: ql-users-boun...@lists.q-v-d.com
[mailto:ql-users-boun...@lists.q-v-d.com] On Behalf Of Lee Privett
Sent: 18 February 2011 18:57
To: ql-us...@q-v-d.com
Subject: Re: [Ql-Users] Looking for inspiration: Death by MT.CJOB

Excellent Adrian, glad to se you making progress, sorry couldn't make any
suggestions, machine code like my partners Greek is a language I have great
difficulty with understanding. 
 
Lee 
 
----- Original Message ----- 
  From: Adrian Ives 
  To: ql-us...@q-v-d.com 
  Sent: Friday, February 18, 2011 6:20 PM
  Subject: Re: [Ql-Users] Looking for inspiration: Death by MT.CJOB


  Got the b***ard!!!!

  I had code like this bracketing it ...

  move.l a6,-(sp)

  ... my mt.cjob call and other code ...

  move.l (sp)+,a6

  I was calling this all from SuperBASIC with a RESPR/CALL and my theory is
  that making a call to mt.cjob caused QDOS to do some shuffling around,
  changing the value of a6 - except that I then restored it with the value
  that it started with - now the wrong value!

  Now I'm one step closer to Ser-USB running on an unexpanded QL ;)


  Adrian

  -----Original Message-----
  From: ql-users-boun...@lists.q-v-d.com
  [mailto:ql-users-boun...@lists.q-v-d.com] On Behalf Of Adrian Ives
  Sent: 18 February 2011 17:37
  To: ql-us...@q-v-d.com
  Subject: [Ql-Users] Looking for inspiration: Death by MT.CJOB

  I'm scratching my head over this ridiculously simple piece of code that
  works fine under SMSQ but locks a QDOS JM-ROM Aurora/SGC every time:

   

  moveq  #mt.cjob,d0

  moveq  #0,d1                                     ; Independent job

  moveq  #16,d2                                  ; Enough room for job name

  move.l  #1024,d3                              ; Some stack space

  sub.l      a1,a1                                     ; Start address 0

  trap        #1                                           ; Create a job

   

  It's getting called at the end of a device driver installation, but
actually
  it doesn't seem to matter how it gets called . it locks up the OS! And as
I
  say, SMSQ has happily executed the same code hundreds of times (if not
  thousands by now).  I've tried numerous combinations of code size and
  dataspace size; the only difference being that reducing the dataspace size
  below 512 causes the infamous message PROC/FN Cleared to appear . and
still
  locks QDOS.

   

  Any suggestions - however much out of the box - would be much appreciated.

   

   

  Adrian

  _______________________________________________
  QL-Users Mailing List
  http://www.q-v-d.demon.co.uk/smsqe.htm

  _______________________________________________
  QL-Users Mailing List
  http://www.q-v-d.demon.co.uk/smsqe.htm
_______________________________________________
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm

_______________________________________________
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm

Reply via email to