• Please review our updated Terms and Rules here

My research about graphics of the Pro

@stanp We don't need to use VRAM for an advantage picture viewer. We just need to load as much images as possible into CPU RAM. Several video pages are good for creation of video effects like animation.
I compiled with no errors, but when I link I get two of this error:
PAB -- #DIAG*-Segment PI has address overflow: allocation deleted
This means that there is not enough memory on your system. Just make value MEMSZ less, for instance make MEMSZ=20000.
 
Success! at 74 digits time is .8. Any longer and the digits run off the end of screen. I will need to add the wrap fix over the weekend.

I would like to port mandelbrot to RSX. can you please provide a description of which values must go into which video registers? And how to set video bits? Many thanks for this.
I would like to build some additional graphics. Maybe some 3D line drawing. It would be nice to have a GIF viewer. But I think this would require a C compiler.

I first ported JPEG to 386 in 1991. Maybe JPEG is possible too. In C.
 
Success! at 74 digits time is .8. Any longer and the digits run off the end of screen. I will need to add the wrap fix over the weekend.

I would like to port mandelbrot to RSX. can you please provide a description of which values must go into which video registers? And how to set video bits? Many thanks for this.
I would like to build some additional graphics. Maybe some 3D line drawing. It would be nice to have a GIF viewer. But I think this would require a C compiler.

I first ported JPEG to 386 in 1991. Maybe JPEG is possible too. In C.
Just use my AW utility from my previous attachment, it turns autowrapping on. I gather information for timing of calculation for 100, 1000, and 3000 digits. Would you like to help?
I am still not sure how to use the video under RSX-11, I need function similar to .SETTRP under RT-11. I hope to dig into this matter on the weekend. To make an RT-11 boot disk is an another option.
 
One man successfully booted RT-11FB on his 380 using a floppy image provided above.
Results for running PI on my Pro 350:
100 - 1.14
1000 - 61.28
3000 - 520.12
Thank you very much. The tables are updated. Does your P/OS have version 3.2? It is interesting that results for RT-11FB is about 7% faster but RSX-11 (P/OS) has much better memory management and gives us 9048 digits (MEMSZ=31685) instead of 6472 on RT-11.
Would you like to run PINOEIS, just make MEMSZ less e.g. 30000? Thanks in advance.
BTW thanks to you I found a bug in xhomer. It sometimes does not divide correctly. :( Actually it is a bug in an old version of simh that was used in the xhomer sources. It seems there is no active xhomer development project where I can report the bug. :(
 

Attachments

  • photo_2023-11-24_22-53-58.jpg
    photo_2023-11-24_22-53-58.jpg
    132.7 KB · Views: 5
Hi Yes it is P/OS 3.2.

I also would like to do graphics programming on P/OS.
I found this interesting manual which has nice detail on the Pro graphics system. It refers to the Pro as XT100 so I think it is an early manual.

XT100 manual, Page 94

Please correct as needed.

Control Status Register at offset 04. Used to initialize resolution mode
^B00000 – 1024 res
^B01000 – 512 res
^B10000 – 256 res

Plane Control Register at offset 06
^B100000 - clear bit
^B1000000 - set bit

X register - offset 16
Y register - offset 20

So to perform basic bitmapped graphics, assuming no color map, the process looks like the following:

Determine base address of video controller, based on slot.
Set CSR to Initialize resolution mode
Set X register to X value
Set Y register to Y value
Set bit in Plane Control Register

Is it necessary to check for completion bit set between bit operations?
 
Hi Yes it is P/OS 3.2.

I also would like to do graphics programming on P/OS.
I found this interesting manual which has nice detail on the Pro graphics system. It refers to the Pro as XT100 so I think it is an early manual.

XT100 manual, Page 94

Please correct as needed.

Control Status Register at offset 04. Used to initialize resolution mode
^B00000 – 1024 res
^B01000 – 512 res
^B10000 – 256 res

Plane Control Register at offset 06
^B100000 - clear bit
^B1000000 - set bit

X register - offset 16
Y register - offset 20

So to perform basic bitmapped graphics, assuming no color map, the process looks like the following:
Thank you. It seems that the XT100 is almost identical to the Pro without disk drives. However whether we have the Pro 325/350 or the XT100 we need to know where the video card is. It may be in any of 6 slots. I am still digging the RSX-11 documentation seeking something like .SETTRP... This thing is mandatory.
Control Status Register at offset 04.
Sets the number of raster lines, not the horizontal resolution. The resolution is set in registers 6 and 8.
Determine base address of video controller, based on slot.
Set CSR to Initialize resolution mode
Set X register to X value
Set Y register to Y value
Set bit in Plane Control Register

Is it necessary to check for completion bit set between bit operations?
You also need to set the operation type in register 4 and to set the pattern register at offset 024. Then we need to set the counter at 022. And then we need to check register 4 and wait for the end of the operation.
 
Thanks!

Can you please write code just to initialize to 1024 resolution and write one bit under RT11? I will do the same for P/OS. Lee tells me that you have to link the program segment into the same segment as the video card register. So the 16-bit registers can access this high address. This is step 2.
 
Can you please write code just to initialize to 1024 resolution and write one bit under RT11? I will do the same for P/OS. Lee tells me that you have to link the program segment into the same segment as the video card register. So the 16-bit registers can access this high address. This is step 2.
The code is attached. Just select the correct slot and choose the appropriate RSX-11 function instead of .TTYIN.
 

Attachments

  • p.zip
    634 bytes · Views: 5
I could make the code for P/OS, just select the proper slot.
 

Attachments

  • px.zip
    719 bytes · Views: 6
Thanks, I get Memory protect violation, with PC=001474.

Does P/OS have a stepping debugger? Ah, time to learn ODT.
 
Last edited:
Hi vol, some questions if you don't mind:

mov #^B0000000000000000,4(r1) ;240 lines
#0 into CSR, this resets CSR, correct?

mov #^B0000000000000010,6(r1) ;1024 dots, op = move to screen
010 is "move pattern register to screen". Could you also use this:
111 - "set current bit on screen" ?

Is it always necessary to test CSR, bit 15 before requesting another bitmap operation?
;tst 4(r1) ;transfer done?
;bpl .-4

When using .trpset, like this:
2$: .trpset #area,#3$
is this to catch the exception when the bitmap operation completes?

Thanks for your time answering these beginner questions.
 
Hi Andrew
Thanks for your questions.
mov #^B0000000000000000,4(r1) ;240 lines
#0 into CSR, this resets CSR, correct?
Why? I don't know this. I just set the video mode partially there.
mov #^B0000000000000010,6(r1) ;1024 dots, op = move to screen
010 is "move pattern register to screen". Could you also use this:
111 - "set current bit on screen" ?
I don't use this but I suspect that it is rather BIS than MOV.
Is it always necessary to test CSR, bit 15 before requesting another bitmap operation?
;tst 4(r1) ;transfer done?
;bpl .-4
IMHO you need this if the natural delay might be too short for the op to complete.
When using .trpset, like this:
2$: .trpset #area,#3$
is this to catch the exception when the bitmap operation completes?
It seems RSX-11 doesn't have means to catch trap 4. :( This makes my video card slot detection routine for RT-11 useless for P/OS. :( Maybe P/OS has another means... But, anyway .TRPSET has no usability for the further video ops. IIRC instead of the check of register 4 we can somehow use an interrupt. IMHO it is not very useful.
 
Back
Top