+FarmerPotato Posted August 10 Share Posted August 10 Maybe less on topic, I also read this paper on MIXER, which the author used to construct a P-machine on a TI 990/12. The P-machine instructions are described in a high-level way ("LDO: add 2 to SP, move source to memory[SP]") and MIXER compiles them to microcode. The result is that P-code executes even faster than 9900 instructions.* The 990/12 CPU doesn't gain 40 new P-code instructions (you only get to define up to 13 in microcode). So the author's emulator would be more like a co-processor invoked by XOP @PCODE,1. Note: this has nothing to do with the fabled TMS99120 chip, which would have had the runtime library of Microprocessor Pascal in onboard ROM. * LDO at maybe 6-7 cycles is even faster than INCT SP, MOV @MEMORY,*SP+ at 12 cycles. Rather unfairly, P-code gets a dedicated machine register for its stack pointer. Link to PDF Quote Link to comment Share on other sites More sharing options...
jbdigriz Posted August 10 Share Posted August 10 (edited) 12 hours ago, FarmerPotato said: Note: this has nothing to do with the fabled TMS99120 chip, which would have had the runtime library of Microprocessor Pascal in onboard ROM. Right. Macrostore ROM, not microcode. Still wonder about a possible connection to MIXER, and how the authors came to target 990 microcode. Contract or grant from TI maybe? Curious, considering this work was done as Japan was embarking on the "5th Generation Computing" initiative. TI did have a significant presence in Japan even then, however. Probably some interesting history there, but not as familiar with it as I'd like. Edited August 10 by jbdigriz Quote Link to comment Share on other sites More sharing options...
apersson850 Posted August 10 Author Share Posted August 10 On 8/8/2024 at 2:56 PM, Vorticon said: There is no mention of a "control" parameter in the compiler manual for UNITREAD/UNITWRITE. In your startup file, you have the following: (* Write information back to directory *) unitwrite(4,directory,sizeof(directory),0); Where exactly is that control parameter? Is it that last integer value? If it is then its not the correct value per your explanation and besides the manual only mentions that it's meant for VDP access if set to 16384... I must be missing something obvious here... The control parameter, when present, comes after the last parameter in the command above. The compiler allow system calls to have a variable number of parameters. But the command unitwrite(4,directory,sizeof(directory),0); doesn't have any control parameter. Now I'm not looking at my complete code here, but it seems to be a return of updated data in the standard p-system directory, and that is based at block 0 (starts with physical sector 4). Thus it shouldn't have any filler in front of the definition of the directory either. But if I have a unitwrite command that has one more parameter and that's set to 2, then it's a control parameter telling unitwrite to run in physical sector mode. That' the way you can access system data that are outside of the logical p-system disk, defined as block 0..n. By that definition, the start of the disk, sector 0, would be in block -2. That's where the standard OS has its directory, so if you want to access that, the control parameter is needed, as block numbers can't be negative. If there is anything you are missing it's only that not everything is in the manual. When going under the hood of the p-system you need to check the Internal architecture guide too. 1 1 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted August 10 Share Posted August 10 Ah ha! I thought I was blind or something 🫣 Thanks for the info. I'll modify the startup file accordingly. 1 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted August 11 Share Posted August 11 I have to say though that it is a little irritating that something as important as a a control parameter would be omitted from the compiler manual. One wonders what the rationale was behind that... 1 1 Quote Link to comment Share on other sites More sharing options...
apersson850 Posted August 12 Author Share Posted August 12 This is not just for the TI 99/4A and its p-system, but a general principle for all systems I've seen docuemntation for. When "the going gets tough" they refer to the internal architecture guide. Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted August 13 Share Posted August 13 Well my friend I'm super glad we have you around. Certainly beats digging through a mountain of eye-glazing documentation! 😁 Incidentally I made the necessary modifications to my startup file and it works fine. 2 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.