Now I think about it, my second question about tying the output is nonsensical - thanks for being non-judgmental in your reply

Good to read from you Nasta. I don't want to encourage open inputs at all, but here's a little further remark just for fun. On several occasions I noticed less tendency of HCT to float into the linear mode of operation / oscillation when inputs are left open than HC. There is a subtle difference that could explain this. HCT not only has an enlarged N-channel transistor at the input and a level shifter diode to lower the switching threshold to TTL. It also contains an auxiliary pull-up transistor (with its gate at the output of the second transistor stage) and that seems to have a small stabilizing effect. Which is a poor excuse for the fact that the Q60 contains one HCT where I made the same mistake.Nasta wrote:Unlike regular TTL and derived families, which kind of default to high, CMOS is really floating in a VERY high impedance state so all sorts of electromagnetic garbage can influence them resulting in unused gates processing fake signals, increasing power drain and regenerating said EM garbage.
No. Both is equally good for HC/HCT. For LSTTL a resistor around 1K to VCC is best.martyn_hill wrote:Is a direct connection to the relevant powerline preferred over using a pull-up/down resistor?
Same thing here, I also had some luck when I had to service a LSTTL based circuit but had only HCT chips, and missed one with floating inputs - it worked fine except when I got real close to the pins with my fingersPeter wrote:Good to read from you Nasta. I don't want to encourage open inputs at all, but here's a little further remark just for fun. On several occasions I noticed less tendency of HCT to float into the linear mode of operation / oscillation when inputs are left open than HC. There is a subtle difference that could explain this. HCT not only has an enlarged N-channel transistor at the input and a level shifter diode to lower the switching threshold to TTL. It also contains an auxiliary pull-up transistor (with its gate at the output of the second transistor stage) and that seems to have a small stabilizing effect. Which is a poor excuse for the fact that the Q60 contains one HCT where I made the same mistake.Nasta wrote:Unlike regular TTL and derived families, which kind of default to high, CMOS is really floating in a VERY high impedance state so all sorts of electromagnetic garbage can influence them resulting in unused gates processing fake signals, increasing power drain and regenerating said EM garbage.
For QL-VGA I once switched to a larger memory chip for production reason, the second halve of the memory is unused. When I tested this a few weeks later the hardware worked pretty well but very sporadically had strange defects in the picture. Suffice to say I should have altered the FPGA code to bind the additional address line to ground right then when I altered the PCB, after all the time it took me a while to get what's going on...Nasta wrote:Same thing here, I also had some luck when I had to service a LSTTL based circuit but had only HCT chips, and missed one with floating inputs - it worked fine except when I got real close to the pins with my fingers
Thank you a lot!dilwyn wrote: Fri Nov 06, 2020 10:56 am I think this is the original SuperBASIC program which that page refers to:
Code: Select all
100 REMark 1990 Dominic Brown 110 INK#1,7:PAPER#1,2 120 INK#0,4:PAPER#0,0 130 WINDOW#1,480,200,32,16 140 WINDOW#0,480,40,32,216 150 BORDER#1;1,0,7 160 FOR i=0 TO 1:CSIZE#i,1,0 170 DIM x(16),y(16),ram_chip(16) 180 DIM faulty_address$(20),go_again$(2) 190 RESTORE 200 true = 1 210 false = 0 220 FOR i = 1 TO 16:READ x(i),y(i) 230 REPeat MAIN_LOOP 240 PAPER 0 250 CLS:CLS#0 260 REPeat get_address_loop 270 INPUT#0,'Enter Address reported as faulty ';faulty_address$ 280 IF faulty_address$<>'' 290 faulty_address = DEC(faulty_address$) 300 IF faulty_address <> 1E9: EXIT get_address_loop 310 PR 2,'Invalid Character used in Hex try again!!!' 320 END IF 330 END REPeat get_address_loop 340 IF faulty_address > 262144 350 PR 7,'Faulty ram is in expansion memory!!!' 360 ELSE 370 d1$=get_data$("Enter first data value >") 380 d2$=get_data$("Enter second data value >") 385 failmap=0 395 FOR i=1 TO 7 STEP 2:failmap=failmap||xorbyte(d1$(i TO i+1),d2$(i TO i+1)) 450 hibank=8*(faulty_address>=196608) 455 PRINT #0;BIN$(failmap,8) 460 FOR i=1 TO 16:ram_chip(i) = false 470 mask%=128 480 FOR i=8 TO 1 STEP -1:IF failmap&&mask% THEN ram_chip(i+hibank) = true:bad_chip=i+hibank:END IF :mask%=mask%/2 490 FOR ic = 1 TO 16 500 IF ram_chip(ic) = true 510 block_colour = 2 520 ELSE 530 block_colour = 7 540 END IF 550 BLOCK 25,45,x(ic),y(ic),block_colour 560 CURSOR x(ic)+5,y(ic)+10 570 PRINT 'IC' 580 CURSOR x(ic)+5,y(ic)+20 590 PRINT ic 600 END FOR ic 610 PR 7,'The error has occured in IC'&bad_chip 620 END IF 630 PRINT#0,'Press Esc to Finish, any other key to continue ' 640 go_again$=INKEY$(#0,-1) 650 IF go_again$ = CHR$(27): EXIT MAIN_LOOP 660 END REPeat MAIN_LOOP 670 STOP 680 : 690 DEFine FuNction get_data$(x$) 695 LOCal ans$ 700 REPeat l 710 INPUT #0;(x$);ans$ 740 REMark IF res==1E9 THEN PRINT #0;'Invalid hex digit!':NEXT l 750 EXIT l 760 END REPeat l 770 ans$=FILL$('0',8)&ans$ 780 ans$=ans$(LEN(ans$)-7 TO) 860 RETurn ans$ 870 END DEFine 872 : 875 DEFine FuNction xorbyte(x$,y$) 877 RETurn DEC(x$)^^DEC(y$) 878 END DEFine 880 : 890 DEFine FuNction DEC(A$) 900 LOCal S,T,Q,valid_chr 910 LOCal valid_chr$(22) 920 T=0 930 valid_chr$ = '0123456789abcdef' 940 FOR Q=1 TO LEN(A$) 950 valid_chr=A$(Q) INSTR valid_chr$ 960 IF valid_chr = false:EXIT Q 1000 T=T*16+valid_chr-1 1010 END FOR Q 1040 IF valid_chr = false:RETurn 1E9 1050 RETurn T 1060 END DEFine DEC 1070 : 1080 DEFine PROCedure PR(ink_colour,statement$) 1090 INK#0,ink_colour 1100 PRINT#0,statement$ 1110 INK#0,4 1120 END DEFine PR 1130 DATA 90,40 1140 DATA 130,40 1150 DATA 170,40 1160 DATA 210,40 1170 DATA 250,40 1180 DATA 290,40 1190 DATA 330,40 1200 DATA 410,110 1210 DATA 90,110 1220 DATA 130,110 1230 DATA 170,110 1240 DATA 210,110 1250 DATA 250,110 1260 DATA 290,110 1270 DATA 330,110 1280 DATA 370,110