· Msg 166 · inlagg
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
<http://www.abc80.org/mailman/listinfo/abc80> hpa at zytor.com]
<http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&Category
N> &CategoryN
http://www.abc80.org/mailman/listinfo/abc80