UK Vintage Radio Repair and Restoration Powered By Google Custom Search Vintage Radio and TV Service Data

Go Back   UK Vintage Radio Repair and Restoration Discussion Forum > Specific Vintage Equipment > Vintage Computers

Notices

Vintage Computers Any vintage computer systems, calculators, video games etc., but with an emphasis on 1980s and earlier equipment.

Closed Thread
 
Thread Tools
Old 29th Sep 2020, 12:23 am   #241
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,482
Default Re: Mk14 vdu

Quote:
Originally Posted by Karen O
The problem goes away if I stick to original specification.
Do that.

The way I imagined it working, only the chosen character and its own background would be inverted, so the background outside the 'drawable area' would always be black - similar to the way Tim's hardware mod does it.

Something you said much earlier made me think you doubted whether it would be possible to do the inverse video original-VDU-style but if you can, then of course you should.
SiriusHardware is online now  
Old 29th Sep 2020, 8:55 am   #242
Karen O
Rest in Peace
 
Join Date: Jul 2011
Location: Bridgnorth, Shropshire, UK.
Posts: 787
Default Re: Mk14 vdu

PICs tend to have large amounts of program flash compared to other types of memory. This permits a very verbose style of coding that enables 'hard-wired' code to replace the more traditional program loop and indirection. For example, if I were feeding eight graphics bytes to the serial port:

MOVF BUF+0,W
MOVWF TXREG
..
..
MOVF BUF+1,W
MOVWF TXREG
..
..
MOVF BUF+2,W
MOVWF TXREG
..
..
MOVF BUF+3,W
MOVWF TXREG
..
..
etc.

Indirection on the PIC is so rudimentary as to be nearly absent. I use it occasionally but generally I use repeated hard-coded methods. Who cares if the final program is big as a result?
Karen O is offline  
Old 29th Sep 2020, 9:02 am   #243
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,482
Default Re: Mk14 vdu

I agree, I had to do something similar on the PIC-based rig I used to 'demo' the VDU before Ian's issue VI PCB made it easy to connect it back up to a real MK14. I had to use a lot of repeated, inline assembly code in that because I could not spare the extra time overhead needed for a loop downcounter and conditional jump.

The end justifies the means.
SiriusHardware is online now  
Old 29th Sep 2020, 10:39 am   #244
Phil__G
Octode
 
Join Date: Mar 2011
Location: North Yorkshire, UK.
Posts: 1,078
Default Re: Mk14 vdu

I find FSR/INDF quite handy where a bunch of adjacent variables go through similar processing
Phil__G is online now  
Old 29th Sep 2020, 8:55 pm   #245
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,482
Default Re: Mk14 vdu

The attached is a 2048-byte file which breaks down as follows:

0000-01FF 'SCMP Inside' (Graphic image).

0200-03FF 'Clive' (Graphic image).

0400-05FF Text page consisting of the character set in ascending character code (0x00-0x3F) order, repeated 8 times to fill the whole screen.

0600-07FF Test text page, plain text.

These are intended to be rendered by the VDU as continuous 512-byte blocks, which they will be if programmed into an EPROM connected to the VDU.

The file (wrapped in a .zip for attachment here) is a raw binary (.bin) file - my very high end (but very old) programmer can load just about any hex format but will only save to raw binary. Ho Hum. However, in my experience virtually any programmers (or their support software) can load raw binary files.
Attached Files
File Type: zip VDUTEST.zip (1.0 KB, 54 views)
SiriusHardware is online now  
Old 29th Sep 2020, 9:25 pm   #246
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,482
Default Re: Mk14 vdu

I forgot to mention that for the above to be true, VDU 'Top Page' (b17) will have to be wired to the least significant 'Page select' input (b9), and also 'Reverse Pages' (b15) will have to be connected to GND to make the 'Reverse Pages' feature active.

Taking b15 low alters the behaviour of the TOP PAGE (b17) output so that it is high while the LOWER half of the screen is being rendered. Normally it is high while the UPPER half of the screen is being rendered, hence 'Top Page'.
SiriusHardware is online now  
Old 30th Sep 2020, 5:20 am   #247
Karen O
Rest in Peace
 
Join Date: Jul 2011
Location: Bridgnorth, Shropshire, UK.
Posts: 787
Default Re: Mk14 vdu

Hmm. I have a Dataman EPROM programmer, and I can only recall 'S' record and Intel hex when selecting the data format...

Maybe someone with a Dataman can reassure me that mine will accept raw binary...?
Karen O is offline  
Old 30th Sep 2020, 8:44 am   #248
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,482
Default Re: Mk14 vdu

Do you know which Dataman model (S4, perhaps)?

I'll see if I can find a file format converter somewhere on one of my DOS machines - (I did already look for one and failed at the first attempt, but I will delve deeper tonight). Or, maybe someone here will be kind enough to convert it and attach it (zipped) as one of your preferred formats?

It would be unusual for any programmer not to have raw binary among its supported load formats, but then as I said, my Hi-Lo systems All-07A loads almost anything but will only save in binary format, so they do have their quirks.
SiriusHardware is online now  
Old 30th Sep 2020, 8:56 am   #249
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,482
Default Re: Mk14 vdu

I had a thought last night about NRDS signal from the VDU - the pin which supplies this signal from the PIC-VDU will need to 'disconnect' from the bus when the VDU is inactive otherwise it will fight with the NRDS signal from the SC/MP.

On the real VDU this is handled by using a pullup resistor and reverse-biased diode on the output of the gate which supplies NRDS, to make it 'look' like an open-collector output.

You can do the same with your PIC output or you can leave the output latch for that port pin set to '0' and flip the pin mode between input and output to simulate the open-collector action.
SiriusHardware is online now  
Old 30th Sep 2020, 11:00 am   #250
Karen O
Rest in Peace
 
Join Date: Jul 2011
Location: Bridgnorth, Shropshire, UK.
Posts: 787
Default Re: Mk14 vdu

You're absolutely right, SH. The same applies to the address bus. I can tristate these lines by reverting them to inputs.

Your mentioning of this has just caused an alarm bell to go off in my head

I've currently assigned Port B to low address and Port D to data. I think I must swap these roles because I'm pretty certain Port B is the only one that has TTL level compatible inputs, which is going to be essential for this project.
Karen O is offline  
Old 30th Sep 2020, 11:05 am   #251
Karen O
Rest in Peace
 
Join Date: Jul 2011
Location: Bridgnorth, Shropshire, UK.
Posts: 787
Default Re: Mk14 vdu

Panic over: I've just checked the PIC16F887 datasheet and that states there are TTL compatible inputs on Port D.

I'm used to the '877 and I think Port D on that device is Schmidt trigger levels.
Karen O is offline  
Old 30th Sep 2020, 11:15 am   #252
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,482
Default Re: Mk14 vdu

Good timing, my almost mythical connector has finally arrived.

For me, changing the allocations of VDU signals to PIC port pins is just a matter of moving the wires from the VDU connector from one screw terminal to another on the 'PICduino', so don't worry about making any late wiring changes.
SiriusHardware is online now  
Old 30th Sep 2020, 12:49 pm   #253
Phil__G
Octode
 
Join Date: Mar 2011
Location: North Yorkshire, UK.
Posts: 1,078
Default Re: Mk14 vdu

SH's vdutest for Karen:

Code:
:2000000000000000000000000000000001FF800000000000FFFFFE0000000007FFFFFF0060
:200020000000003FFFFFFF00000000FFFFFFFF00000003FFFFFFFE00000007FFF001FE0095
:2000400000001FFE00001E0000007FF0000002000001FF80000F00000003FF00000FE00074
:200060000007F80001CFF800001FE00003EFFE00003FC00003EFFF00007F000007EFFF80E6
:2000800000FC00000760FF8000F8000037601FC001F00081F76007E003E000BFF7C001F016
:2000A00003C000BFF7C000F807801CBF7780007807007CBB770000780F1C78BB7700003C00
:2000C0001F3CE0BB7700003C1E7CE0BB7700001C1C79C13B7700000E3CF1C13A3001800EB2
:2000E0003871C1300001C00E3839CD200001C306301DFD000001C786301FFD000081CF86B5
:20010000700FF1000183DC86701E00000187DC86603E0000000FDD86607C00001D9FDF0684
:20012000607800003D9DFC066070020079B9F88670000600F9B9D986700006EEF1B1DF8E8F
:20014000700000FEE1B18F8E300004FF71BB871C38000EFF39BF801C38000EE71DBD803CE4
:2001600038000EE71D9D80381C000EC71D8180781E000EC73C8000700E000EC7380000E03F
:200180000F000EC7780001E007000EC7700003C007800EC30000078003C00E0000000F80D4
:2001A00001E0040000003F0000F0000000007E0000FC00000001FC00007F00000007F0003E
:2001C000003FE000003FE000001FF80000FF80000007FFC03FFE00000001FFFFFFF8000052
:2001E00000003FFFFFC00000000007FFFE00000000000000000000000000000000000000FE
:20020000AA8007FFFFFFFE5555800FFFFFFFFF6AAB000FFFFFFFFFB555001FFFFFFFFFBA7E
:20022000AB001FFFFFFFFFB556001FFFFFFFFFDAAA003FFFFFFFFFD556003FFFFFFFFFDAD3
:20024000BE007FFFFFFFFFD560003FFFFFFFFFDADF003FFFFFFFFFD5A1801FFFFFFFFFDA16
:20026000AEC06FFFFFFFFFEDAF6033FFFFFFFFEAAF7039FFFFFFFFEDAF707C7FFFFFFFEA4E
:20028000BFF07E3F03FFFFEDB7F07F1E783FFFEAD7703FC4FF8FFFEDD6703FE1FFF0FFEA1E
:2002A00056707FF003F807EDD670FFF0C5FB802E5B30FFF7047B8783CB30FFF7C1F89FDD47
:2002C0006DB07FF7FFF7105DAFB07FF7FFF7240D77D07FF7FFEF3005BBF07FF7FFDF3C51C0
:2002E0005DE07FFBFFBF3FDDAE10FFFC7E7F3FDD5770FFFF81FF3FDBAB60FFFFFFFF1FDB3B
:200300005560FFFFFFFF47D6AB60FFFFFFFF70055660FFFFFFFF7FDEAAE0FFFFFFFFBFD56A
:2003200056E0FFFE7FFFBF9AAAE0FFF9FBFFBFB556F07FFFFC3FBFAAADF07FF003DF3F75B9
:2003400055F07FE600EE1F6AADF07FCF800003555DF037DFF00000EAB9F807DF9F001ED553
:2003600071F807DFE3E3FEAAC5F8019FF87F1ED58EF8001FFF00FDAA0EFC000FF3FF8D55C1
:200380000F7C000FF80039AA0F3E0003FE007B550F9E0000FF01E2AA07CF00001FC107557F
:2003A00007EF800007800EAA03F3800000001D5503F9C00000003AAA01FCE0000000355599
:2003C00001FEE00000006AAA00FF38000000555500FF9C0000006AAA007FDE000000D55513
:2003E000007FE7800000EAAA003FF3F00003D555001FF9FC0006AAAA001FFC7FFFFF555584
:20040000000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1FEC
:20042000202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3FCC
:20044000000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1FAC
:20046000202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F8C
:20048000000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F6C
:2004A000202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F4C
:2004C000000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2C
:2004E000202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F0C
:20050000000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1FEB
:20052000202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3FCB
:20054000000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1FAB
:20056000202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F8B
:20058000000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F6B
:2005A000202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F4B
:2005C000000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2B
:2005E000202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F0B
:200600002020202020202020202020202020202020202020202020202020202020202020DA
:200620002020202020202020202020202020202020202020202020202020202020202020BA
:20064000202020202020202020202020202020202020201009032D16041520060F1220203B
:2006600020202020202020202020202020202020202020130309050E0305200F062020204B
:20068000202020202020202020202020202020202003010D021209040705200D0B31342E31
:2006A00020202020202020202020202020202020202020202020202020202020202020203A
:2006C00020202020202020202020202020202020202020200609120D1701120520202020BD
:2006E00020202020202020202020202020202020202020202020010E042020202020202047
:2007000020202020202020202020202020202020202020200801120417011205202020208B
:20072000202020202020202020202020202020202020202004051309070E05042020202076
:200740002020202020202020202020202020202020202020202002192020202020202020BE
:200760002020202020202020202020202020202020202020200B0112050E202020202020E8
:200780002020202020202020202020202020202020202020200F12140F0E2C20202020209B
:2007A000202020202020202020202020202020202020202020202020202020202020202039
:2007C0002020202020003230323020202020202020202020202020202020202020202020F5
:2007E0002020202020202020202020202020202020202020202020202020202020202020F9
:00000001FF

Last edited by Phil__G; 30th Sep 2020 at 12:56 pm.
Phil__G is online now  
Old 30th Sep 2020, 2:23 pm   #254
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,482
Default Re: Mk14 vdu

Thanks Phil - quite interesting actually, when you know what the images in the first half of the code look like you can almost make them out as ASCII art (four times side by side) in that hex listing!
SiriusHardware is online now  
Old 30th Sep 2020, 5:21 pm   #255
Slothie
Octode
 
Join Date: Apr 2018
Location: Newbury, Berkshire, UK.
Posts: 1,287
Default Re: Mk14 vdu

I know this is a bit late for you but I wrote a utility to convert binary files to intel hex format a couple of years ago. I've updated it to work in python 2 and python 3. Its not well written but seems to work. Might be useful for people in the future?
Assumes address starts ar 0 (although this can be easily changed by editing line 31 "addr = 0".

Use at your own risk, not suitable for medical or aerospace applications etc etc.
Attached Files
File Type: zip bin2hex.zip (531 Bytes, 44 views)
Slothie is offline  
Old 30th Sep 2020, 6:11 pm   #256
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,482
Default Re: Mk14 vdu

Thanks, grabbed and saved. I wrote a binary to Intel Hex routine as part of my efforts to make VDU text creation easier but as always your version is tidier and roughly one-eighth of the length of mine. I really am rubbish at Python.

I collect little software tools like this, especially ones written in Python, because you can run Python programs on almost anything including the Raspberry Pi.

...Not on the MK14 though, as far as I know..
SiriusHardware is online now  
Old 30th Sep 2020, 6:19 pm   #257
Slothie
Octode
 
Join Date: Apr 2018
Location: Newbury, Berkshire, UK.
Posts: 1,287
Default Re: Mk14 vdu

Quote:
Originally Posted by SiriusHardware View Post
I collect little software tools like this, especially ones written in Python, because you can run Python programs on almost anything including the Raspberry Pi.

...Not on the MK14 though, as far as I know..
Give us time
Slothie is offline  
Old 30th Sep 2020, 6:36 pm   #258
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,482
Default Re: Mk14 vdu

I see Karen's made it home, so... everyone fasten their seatbelts.

I have my VDU connector 80% wired up, will try to have it ready to go by the weekend.
SiriusHardware is online now  
Old 30th Sep 2020, 7:03 pm   #259
Mark1960
Octode
 
Join Date: Mar 2020
Location: Kitchener, Ontario, Canada
Posts: 1,264
Default Re: Mk14 vdu

I find HxD useful for binary and hex files.

Https://mh-nexus.de/en/
Mark1960 is offline  
Old 3rd Oct 2020, 12:25 am   #260
Karen O
Rest in Peace
 
Join Date: Jul 2011
Location: Bridgnorth, Shropshire, UK.
Posts: 787
Default Re: Mk14 vdu

Well, I've had a marathon session and I've built my board for the Mk14 VDU PIC emulator. Next step is to buzz it out to check for errors. It's a rats nest but I'll tidy it up a bit when I'm confident the wiring's right.

I've wired to the pads for the edge connector so that, hopefully, it can be used with an Mk14. I've got a 2732 EPROM hanging on the buses for testing. Leave the socket empty if connecting to an Mk14.
Karen O is offline  
Closed Thread

Thread Tools



All times are GMT +1. The time now is 12:14 pm.


All information and advice on this forum is subject to the WARNING AND DISCLAIMER located at https://www.vintage-radio.net/rules.html.
Failure to heed this warning may result in death or serious injury to yourself and/or others.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright ©2002 - 2023, Paul Stenning.