Cyprian Posted September 28, 2020 Share Posted September 28, 2020 According to "Jaguar Object Processor Mode" "stop" doesn't take any parameter. How pass "O_STOPINTS" then? http://d-bug.me/various/rmacman/rmac.html#jaguar-object-processor-mode thanks Quote Link to comment Share on other sites More sharing options...
ggn Posted September 28, 2020 Share Posted September 28, 2020 (edited) Hello, A quick glance at the codebase (http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rmac;a=blob;f=op.c;h=836f4de173b01add2b452414574c98b9c5c13953;hb=HEAD#l428)shows that the implementation of stop does not not take a parameter. We can add it easily though, no probs. As a workaround for now you can use something like the following in lieu of the stop opcode: dc.l 4<<28,O_STOPINTS (not tested, but it's probably fine) Edited September 28, 2020 by ggn Geez, bbcode is kind of RIP Quote Link to comment Share on other sites More sharing options...
Cyprian Posted September 28, 2020 Author Share Posted September 28, 2020 would be cool @ggn thanks Quote Link to comment Share on other sites More sharing options...
Cyprian Posted September 28, 2020 Author Share Posted September 28, 2020 12 minutes ago, ggn said: We can add it easily though, no probs. As a workaround for now you can use something like the following in lieu of the stop opcode: dc.l 4<<28,O_STOPINTS (not tested, but it's probably fine) should not be as follow? dc.l 0,(STOPOBJ|O_STOPINTS) Quote Link to comment Share on other sites More sharing options...
ggn Posted September 28, 2020 Share Posted September 28, 2020 (edited) Dunno, probably. I just work here, man! (by that I mean: I didn't write the OP portions, @Shamus did actually. And I haven't looked that serious at how the bits are laid out, sorry!) (but it'll be correct by the time we issue the fix!) Edited September 28, 2020 by ggn Quote Link to comment Share on other sites More sharing options...
Shamus Posted September 28, 2020 Share Posted September 28, 2020 (edited) O_STOPINTS has nothing to do with the STOP opcode (at least according to the JTRM); the OP ignores anything in bits 3-63 of a STOP object. It looks like it should be some kind of interrupt control bit, but it matches nothing (the closest is INT1 [$F000E0], but it should be $4 in that case instead of $8). Dunno what to tell you other than, what do you need it for? Does it really do anything? N.B.: STOP is *not* a pseudo-op, it's a geniune, bona-fide, real as real can be opcode. : ) Edited September 28, 2020 by Shamus Corrections : P Quote Link to comment Share on other sites More sharing options...
Cyprian Posted September 29, 2020 Author Share Posted September 29, 2020 that was from Atari workshop "GPUINT" ; Write a STOP object for the end of the list clr.l d1 move.l #(STOPOBJ|O_STOPINTS),d0 move.l d1,(a0)+ move.l d0,(a0)+ Quote Link to comment Share on other sites More sharing options...
Shamus Posted September 29, 2020 Share Posted September 29, 2020 (edited) Well, it wouldn't be the first time they got things wrong. As far as I can tell, OP STOP interrupts are controlled by bit 2 of INT1 ($F000E0), not by some magick bit in a STOP object. No doubt the guy writing the documentation (LOL) was pulling his hair out. Edited September 29, 2020 by Shamus :) 1 Quote Link to comment Share on other sites More sharing options...
ggn Posted September 29, 2020 Share Posted September 29, 2020 All right, so unless someone proves otherwise, rmac isn't getting a parameter in the STOP opcode. 1 Quote Link to comment Share on other sites More sharing options...
SCPCD Posted September 29, 2020 Share Posted September 29, 2020 (edited) Bit 3 of Stop object generate an interrupt if equal to 1. (documented on the most up to date JTRM and confirmed in netlist) If bit 2 of INT1 register is enabled, then the stop interrupt will be sent back to the 68K. Edited September 29, 2020 by SCPCD 2 Quote Link to comment Share on other sites More sharing options...
Cyprian Posted September 29, 2020 Author Share Posted September 29, 2020 thanks for clarification @SCPCD Quote Link to comment Share on other sites More sharing options...
Cyprian Posted September 30, 2020 Author Share Posted September 30, 2020 15 hours ago, SCPCD said: Bit 3 of Stop object generate an interrupt if equal to 1. (documented on the most up to date JTRM and confirmed in netlist) If bit 2 of INT1 register is enabled, then the stop interrupt will be sent back to the 68K. and actually I wonder whether other STOP bits are somehow used, and what else we can see in the Jag Netlist? Quote Link to comment Share on other sites More sharing options...
SCPCD Posted September 30, 2020 Share Posted September 30, 2020 Other bits are only used for software (OB[0-3] registers) like for GPU objects. 2 Quote Link to comment Share on other sites More sharing options...
Shamus Posted November 1, 2020 Share Posted November 1, 2020 Well, it's an easy enough thing to add the logic to handle this in the OP assembler. Will add it now that I have confirmation that it does something. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.