[abc80] ABCBus-problem

H. Peter Anvin hpa at zytor.com
Mon Jan 15 15:52:55 PST 2018


On 01/14/18 09:27, Anders Jansson wrote:
> Intressant! Påverkas bildminnet när den ska sortera in raden i
> programminnet?! Kan du läsa tillbaks BOFA och se att det verkligen blev
> 192? Hur blir det om du skriver 10 REM? När du inte ändrade BOFA godtog
> den programraden. Men kan du lista programmet?
> 
> Jag skulle vilja skicka ett annat kort till dig så att vi kan se om det
> ger samma resultat. Kan vara onödigt att plåga ABC80 ifall det är nåt
> fel på kortet tänker jag. Om det kommer till att felsöka ABC80 skulle
> jag kunna ge en debug-version där man kan läsa senaste externa
> minnesadress via USB.
> 
> /Anders

Jag vet att busdriverchippen på ABC80 lätt går sönder... det stötte jag
på redan på 80-talet.  Lyckligtvis sitter de i socklar så de är lätta
att byta.

Kretsarna är:

	74LS245	plats B8
	74LS241 plats C8 och D8

Det finns fler kretsar som matas ut på bussen, b.la.:

	"8205" plats E8 och E9
	74LS32 plats F8
	74(LS?)06 plats H7	

... men såvitt jag vet är det B8, C8, D8 man tittar på först.  Det
gjorde i alla fall en servicekille när min floppy slutade funka :)

 --
(Det enda som är värre i min åsikt är att en expansionslåda, I alla fall
från Luxor, inte drar fram alla signalerna till varje slot.)

"8205" är ett chipnummer jag inte alls har kunnat hitta någonstans, men
enligt Mikrodators ABC är 8205 en 3-till-8 dekoder, och 74(S|LS)138 är
misstänkt liknande och verkar t.om. ha rätt pinout så att jag undrar om
8205 inte helt enkelt är felskrivet.  Det enda sätt att klura ut det är
nog tyvärr att öppna datorn.

Dekodern är i min åskikt en av de värsta bitarna av ABC-bussen; fixat i
ABC800 via de nya signalerna XINPSTB# och XOUTPSTB# som gör att man kan
titta på adressbussen på vettigt sätt -- *och* har en möjlighet att
kontrollera en extern buffer!  Man behöver i alla fall avkoda CS# och
sen maska signaler om man inte är selectad, och det vore enklare att
göra det med en 74LS138 på I/O-kortet än en hel massa gates!

För att skapa XINPSTB# (A26) och XOUTPSTB# (A27) på ABC80 skulle man
kunna löda in en krets som 74(HCT|AHCT|LS)(32|139|4075) och generera:

	XOUTPSTB# = A4 | IORQ# | WR#
	XINPSTB#  = *  | IORQ# | RD#

... där * är pinne 8 på F6 eller pinne 2 på F8 (samma signal).  Obs att
A4 är inverterad; den signalen finns redan "färdig".

(En 74*139 i synnerhet placeras med fördel ovanpå krets E4, en annan
74LS139 som redan har A4# (inverterad!), RD#, IORQ# tillgängliga på
pinnar 2, 3, 1.)

Och om man ska in och dona ändå kan man också ansluta INP2# till A25;
INP2# finns färdig på pinne 13 på E8.

Obs att enligt specifikationen är A25-27 jordade på ABC80.  Jag vet inte
om det verkligen är sant eller ej; om det är det skulle man tvingas
skära i kretskortet :(

	-hpa


More information about the ABC80 mailing list