[abc80] Hur fungerar ABCs kontrollerkort? ( Kretsschema för kontrollerkort?)

Erik Lundh erik.lundh at compelcon.se
Sat Nov 8 07:08:29 PST 2008


Hej, jag heter Erik Lundh. På 80-talet gjorde jag mycket reverse-engineering
och lågnivå hack på ABC-datorerna.
Särskilt på diskkontrollers. Någonstans har jag kanske t o m kvar mina
handkpommenterade disassemblat till någon eller några kontrollers. Jag skrev
lite olika varianter på ”intelligenta” disassemblers samt en relokerande
länkare (för .REL filer), något som Luxor inte hade själva. Diab hade en hel
del av verktygen, ex länkaren för relokerbara filer, enbart i andra miljöer,
tror det var antingen Unix eller det egna realtidsoperativet för Z80 (OS8).
 
Till saken: Jag ser att ni jobbar på att få koll på flexskiveenhetens
kontroller. Då skall ni veta att det på kortet finns en specialkrets som är
ett slags hårdvaruskydd. Kretsen är en del i MFM-kodningen om jag minns
rätt. På ett antal ställen i kontrollerprommet finns i/o inlagt som vad jag
minns ställer kretsen i olika lägne och förväntar sig svar tillbaka på något
sätt. Koden går vilse om kretsen inte svarar. Kretsens funktion (MFM?)
havererar om koden inte vid rätt tillfällen gör I/O mot den. Denna kretse
designades av Diabs grundare Lasse Karlsson och har vad jag minns
beteckningar från någon italiensk firma. Det tog mig ganska lång tid att
klura ut hur det hängde ihop.
Jag vill minnas att Luxor tvingades köpa specialkretsarna från Diab. Ett
sätt för Diab att hålla koll på royalties.
 
På de flesta flexskivekontrollers som kom till Abc800 kunde man dessutom
ladda ner egna Z80-program som exekverade i en av diskbuffertarna.
För Luxors och Diabs produktion av kopieringsskyddade disketter fanns
specialversioner av prommarna som kunde skriva vissa bytes mellan
sektorerna. Jag tror detta skapades redan på ABC80-tiden. Standardvärdet var
0, men specialprommarna kunde skriva andra värden. Alla kontrololers kunde
sedan läsa värdena. 
I och med att man kunde ladda ner egfna program i ram kom vi på hur vi kunde
skriva dessa bytes från ramladdade kontrollerprogram, med prommet som
library. 
Luxor hade stora produktionsmaskiner, autoloaders för 5,25 disketter, som
körde fram kopieringskyddade disketter med specialprommarna. 
 
Mitt sista jobb 1984 var att ta fram ett kopieringsskydd som man inte kunde
reproducera med specialprommarna. Kunderna var Pdata & Rtb, skaparna av
Basregister och ord. Båda företagen hade investerat i helt nya
produktgenerationer av databas resp ordbehandlare. Men Luxor ville att dessa
nya produkter skulle ingå i det befintliga, för Luxor mycket gynnsamma,
avtalet mellan Luxor och de två bolag som sålde program till i stort sett
varje levererad ABC-maskin.
 
Med mitt nya programskydd kunde Pdata och RTB gå förbi Luxor direkt till
återförsäljarna. Luxor hade annars inställningen att man tänkte ta alla de
program som RTB och Pdata skapade och köra dem i sin produktion. Deras
återförsäljare skulle sedan givetvis köpa från Luxor. Men då man inte kunde
producera skivor, gick återförsäljarna direkt till programförfattarna. Jag
fick totalt max ca 20 000 för jobbet som tog månader. Pdata fick en kraftig
vinstökning året efter. Jag har lärt mig ta bättre betalt sedan dess.
 
BTW: Jag hittade denna lista sedan jag och några andra veteraner funderat på
att emulera en ABC800 i java.
Jag är ju sedan ca år 2000 djupt involverad i agile och tänkte att en
komplett emulering av en Abc-maskin, utvecklad med test-driven
utvecklingsmetodik (tdd) vore ett intressant exempel. Varför java? Jo därför
att det är bekvämt att arbeta med saker som refactoring i det språket.
Eclipse finns ju fritt. Trots att jag är gammal C++ veteran ser jag att det
just nu är enklare att utveckla modernt och disciplinerat med tdd och
refactoring i java. Prestanda är troligtvis fortfarande bättre i native
kompilerad kod. Men utvecklingstid och värdet av exemplet blir troligtvis
mycket bättre i java.
 
Mvh
 
/Erik Lundh
 
 
 
 
 
Hej på er!
 
Jag har också funderat lite i liknande banor. Har faktiskt just nu ett
sd-kort inkopplat till ett abc-lab kort, med lite motstånd och en 3.3V
späningsregulator. Det BÖR fungera men jag har inte hunnit testa än.
Nackdelen är att man måste flippa bitarna själv och skifta in/ut dem till
bytes.
 
Jag kör helst också så mycket hålmonterat/experimentkort som möjligt. Men
varför inte satsa på något enklare programmerbart, som t ex en CPLD i stil
med EPM 7064. De finns som plcc, och såna socklar kan man ju löda in. Har
funderat lite på att göra ett dylikt kort, som i princip är ett enkelt
SPI-interface (som SD/mmc kort stödjer) för abc-bussen. Det borde bara bli
CPLD:n och en 3.3V spänningsregulator + sockel för SDkorten. Dock är jag
kass på VHDL, men jag har sett att det finns färdiga SPI-rutiner. Sen kan
man ju sköta resten med mjukvara...
 
En annan rolig grej som har kommit på senare tid är vinculum från FTDI som
är USB-host kretsar. Jag har köpt en VMUSIC2 (se ELFA) som förutom
host-interface till USB-stickor innehåller drivrutiner för FAT-filsystem
och en MP3-spelare. Den pratar också en variant av SPI. Har gjort ett
testprogram i basic för ABC-lab för den men det funkar inte. Projektet
väntar just nu på lite mer tid...
 
Nackdelen/fördelen är att man kör FAT-filsystem. Jag är ingen varm
anhängare av ABC:ns disksystem. Man skulle ju egentligen bara kunna knåpa
ihop en enkel ABC-device i stil med den UNX:-enhet som finns till den där
gamla x-windows emulatorn.
 
Robert
 
 
> Hej,
> 
> Det är en smaksak om man vill ha CF eller PC. Min tanke var att lyckas
> bygga
> kontrollern med bara hålmonterade komponenter. Då går det att etsa
> prototypkort själv. Jag har en del sådana på mitt samvete, har faktiskt
> ritat och etsat ett busskort till en ABC en gång. Då byggde jag en egen
> kabel för att ansluta en abc894 expansion till en ABC800.
> 
> Att rita moderna kort med ytmonterade komponenter är lite knepigare... Det
> har jag aldrig gjort. Jag har inte CAD:at ett kort sedan exjobbet, det är
> 12
> år sedan. Då körde vi Orcad för DOS!
> 
> Givet att IO:n på FPGA kortet klarar 5V TTL och tristate så borde man
> kunna
> koppla in ABC-bussen i expantionskontakterna och bara bygga något litet
> enkelt buss-adapterkort till ABC:n (ja man skulle nog kunna löda ihop en
> kabel utan kort). Det är ju inte hela ABC-bussen man behöver för ett
> kontrollerkort, om man inte ska ha det till sin ABC80 och passa på att
> lägga
> dos-prommet i FPGA:n. Men kortet var ju inte gratis...
> 
> Så schemat:
> http://www.abc80.net/zz/kontroller_schema_5510761_01_5510828_01.tif
> 
> Resten kommer sen, där står en del matnyttigt!
> 
> /Anders
> 
> -----Original Message-----
> From: H. Peter Anvin [mailto:
<http://www.abc80.org/mailman/listinfo/abc80> hpa at zytor.com]
> Sent: den 8 november 2008 10:25
> To: Anders Sandahl
> Cc:  <http://www.abc80.org/mailman/listinfo/abc80> abc80 at abc80.org
> Subject: Re: [abc80] Kretsschema för kontrollerkort?
> 
> Anders Sandahl wrote:
>> Hej,
>> 
>> Jag har servicemanualen till floppystationerna, där finns schema på både
>> kontroller samt minnesexpantionen till abc80.
>> 
>> Den ligger i tur för att scannas, jag får väl skynda på och ta den i
> helgen.
>> 
>> Jag har också funderat på en floppykontroller, men då en som man kan
> koppla
>> till PC:n och ha diskimagar där...
>> 
> 
> Tycker ett flashkort är elegantare, själv... dessutom är det relativt
> enkelt, tekniskt sett.  En variant som jag funderade på är att göra ett
> FPGA-baserat kort med både Ethernet och SD-kort på samma kort.  Nu är
> jag inte direkt haj på att designa kort, så jag är lite nervös för det
> hela.
> 
> En annan variant vore att porta den ABC80-i-FPGA som jag redan har till
> ett billigare kort, t.ex.:
> 
> http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English
<http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&Category
N> &CategoryN
> o=39&No=83
> 
> Tyvärr har jag inte hittat något kort på marknaden som är både billigt
> och har både SD-kort och Ethernet...
> 
>       -hpa
> 
> _______________________________________________
> ABC80 mailing list
>  <http://www.abc80.org/mailman/listinfo/abc80> ABC80 at abc80.org
>  <http://www.abc80.org/mailman/listinfo/abc80>
http://www.abc80.org/mailman/listinfo/abc80

 



More information about the ABC80 mailing list