( Text 241 ) 1986-04-17 18.42.02 Bo Kullmar SYSOP <1789> Mottagare: Z80 Ärende: Mötet Mötet har nu bytt inrikting och ämne. Frågor som tidigare skrev i mötet Beställ kan du skriva i andra möten. Detta möte skall nu handla om maskinkodsprogrammering på Z80. ( Text 241 ) ( Text 242 ) 1986-04-18 00.17.22 Björn Linderson <5829> Mottagare: Z80 Ärende: Editor i M-kod. Har ni tänkt på att man kan flytta runt variablernas start,t.ex att placera en variabel på skärmens börkan (30720 på abc80x och 31744 på abc80) och sedan skriva i den direkt? Jag skrev för en tid sedan en editor för detta,och den är användbar om man skall spara hela skärmar på en gång,tex för programeditorer. Fungerar med PF-tangenterna. Någon som vill ha källkoden? Snabb skärmCLS LD HL,30720 LD BC,1920 LD DE,30721 LD (HL),32 LDIR RET /Nalle ( Kommentar i text 257 av Patric Ljung <5455> ) ( Text 242 ) ( Text 243 ) 1986-04-18 19.53.51 Kent Berggren SYSOP <6019> Mottagare: Z80 Ärende: Z80ASTI Är det någon som vet något om den IC?? ( Kommentar i text 244 av Gunnar Forssell <1631> ) ( Kommentar i text 245 av Bo Larsson <5630> ) ( Text 243 ) ( Text 244 ) 1986-04-18 22.57.41 Gunnar Forssell <1631> Mottagare: Z80 Kommentar till text: 243 av Kent Berggren SYSOP <6019> Ärende: Z80ASTI Någon aning om vad den ska vara bra för? ( Text 244 ) ( Text 245 ) 1986-04-19 12.09.40 Bo Larsson <5630> Mottagare: Z80 Kommentar till text: 243 av Kent Berggren SYSOP <6019> Ärende: Z80ASTI Om vi menar samma sak så jobbar den kretsen förfullt just nu i min dator. Jag tror du menar MOSTEK's MK3801. Den kretsen benäms Z80 STI och är en Uart, Sio eller vad du vill. STI står för Serial Timer Interrupt Controller Jag har som sagt en i min burk och har tvingats progammera den något i samband med mina modem-pgm. Är det något speciellt har jag en liten manual på den. Att jag reagerade på detta inlägg (Om vi nu menar samma krets) är att MOSTEK har för ett tag sen gått i konkurs. Nu har emmelertid THOMSON gått in där och tagit över tillverkning och försäljning av sortimentet. Jag såg detta som en lättnad eftersom detta är ju faktiskt en krets som kan gå åt pipan pga yttre störningar. Eftersom det företag jag jobbar på representerar THOMSON i Sverige tittade jag igenom det sortiment dom övertagit. Jag såg då att denna krets slutade tillverkas innan MOSTEK gick i KK. Thomson ligger i alla fall på ett hyfsat lager och jag snabbade mig att skaffa en extra. B.L. ( Kommentar i text 246 av Kent Berggren SYSOP <6019> ) ( Text 245 ) ( Text 246 ) 1986-04-19 12.42.21 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 245 av Bo Larsson <5630> Ärende: Z80ASTI Jag fattade att det skulle vara en SIO+PIO+CTC Stämmer det? Skall den läggas ner så är jag tyvär inte intreserad av den. Efter som det skulle vara i en nyprodution. ( Kommentar i text 247 av Mikael Lidén <5651> ) ( Text 246 ) ( Text 247 ) 1986-04-20 09.52.36 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 246 av Kent Berggren SYSOP <6019> Ärende: Z80ASTI Kolla Toshibas CMOS varianter av Z80 finns för närvarande upp till 4MHz kommer snart i 6MHz, Med deras klockgenerator, kan man söva ned sig för att spara ännu mera ström och vakna upp igen med hjälp av NMI. ( Text 247 ) ( Text 248 ) 1986-04-20 10.02.19 Magnus Bodin <4304> Mottagare: Z80 Ärende: Odokumenterade Z80-instruktioner finns det ju. Om man slänger en 221 eller en 253 framför en instruktion mellan a & h, eller a & l etc. Finns det fler än så? Kan man komma åt lågbyten i SP? PC? ( Kommentar i text 249 av Gunnar Forssell <1631> ) ( Text 248 ) ( Text 249 ) 1986-04-20 10.20.28 Gunnar Forssell <1631> Mottagare: Z80 Kommentar till text: 248 av Magnus Bodin <4304> Ärende: Odokumenterade Z80-instruktioner Vad händer om man 'slänger' dit de där siffrorna? Man ska visst (enligt hörsägen...) kunna leka lite med IX och IY så att man kan nå deras höga och låga bytar. Zilog lär ha en lista, men det är ju så att olika Z80'or har olika 'dolda' instruktioner... ( Kommentar i text 250 av Magnus Bodin <4304> ) ( Text 249 ) ( Text 250 ) 1986-04-20 10.57.01 Magnus Bodin <4304> Mottagare: Z80 Kommentar till text: 249 av Gunnar Forssell <1631> Ärende: Odokumenterade Z80-instruktioner Just! Exempel: DEFB 221 LD A,H ;LD A,IXH (Högbyte-IX) DEFB 253 LD L,5 ;LD IYL,5 (Lågbyte-IY) Alla H & L instruktioner.. H syftar på Högbyte i aktuellt indexreg. L syftar på Lågbyte i detsamma. 221 före => IX 253 före => IY Enligt uppgift lär detta fungera på alla Z80, men ni kan väl tala om om det inte fungerar på Eder.. ( Kommentar i text 251 av Gunnar Forssell <1631> ) ( Kommentar i text 255 av Kent Berggren SYSOP <6019> ) ( Text 250 ) ( Text 251 ) 1986-04-20 17.10.13 Gunnar Forssell <1631> Mottagare: Z80 Kommentar till text: 250 av Magnus Bodin <4304> Ärende: Odokumenterade Z80-instruktioner Men då skulle man teoretiskt kunna göra SLA IXH! Har någon testat? Finns det några andra 'hål' i instruktionsrepetoaren? ( Kommentar i text 252 av Magnus Bodin <4304> ) ( Kommentar i text 253 av Peter Öhlén <4659> ) ( Kommentar i text 265 av David Andersson <5201> ) ( Text 251 ) ( Text 252 ) 1986-04-20 17.25.12 Magnus Bodin <4304> Mottagare: Z80 Kommentar till text: 251 av Gunnar Forssell <1631> Ärende: Odokumenterade Z80-instruktioner Har inte testat.. Jag frågade likadant i mitt första inlägg: Finns det några mer odokumenterade Z80-instruktioner?? LD A,SPH ?? ( Text 252 ) ( Text 253 ) 1986-04-20 20.21.23 Peter Öhlén <4659> Mottagare: Z80 Kommentar till text: 251 av Gunnar Forssell <1631> Ärende: Odokumenterade Z80-instruktioner En instruktion som är *HELT* odokumenterad (alltså inga nya register eller likande) är 'Shift Left insert One', CB,3x där x är 0-7 beroende på vilket register det är. Samma som för övriga shiftinstruktioner. ( Kommentar i text 254 av Magnus Bodin <4304> ) ( Text 253 ) ( Text 254 ) 1986-04-20 20.47.46 Magnus Bodin <4304> Mottagare: Z80 Kommentar till text: 253 av Peter Öhlén <4659> Ärende: Odokumenterade Z80-instruktioner Vad innebär det? I klartext? ( Kommentar i text 256 av Mikael Hovmöller <4688> ) ( Text 254 ) ( Text 255 ) 1986-04-20 21.05.06 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 250 av Magnus Bodin <4304> Ärende: Odokumenterade Z80-instruktioner STOP STOP!!!!!!!!!!! Ni får inte använda er av dessa instruktioner . De finns inte i alla Z80CPU:n. Jag vet det. Metric testade med dem en gång och fick göra om en massa jobb tack vare det. Snacka med Mats Petterson han min historien. OBS OBS Använd dem inte!!!!! Det finns flera olika masker till Z80CPU:n ( Kommentar i text 258 av Gerry Eriksson <4842> ) ( Text 255 ) ( Text 256 ) 1986-04-20 21.13.02 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 254 av Magnus Bodin <4304> Ärende: Odokumenterade Z80-instruktioner Jag antar att man skiftar register x ett steg åt vänster, och sätter in en etta i högraste positionen. Var det rätt Peter? M.v.h. Micke ( Kommentar i text 259 av Peter Öhlén <4659> ) ( Text 256 ) ( Text 257 ) 1986-04-20 23.16.58 Patric Ljung <5455> Mottagare: Z80 Kommentar till text: 242 av Björn Linderson <5829> Ärende: Editor i M-kod. Det bör väl vara LD BC,1919 för 24 rader. Första tecknet på rad 25 kommer att bli raderat om 1920 används. Om man använder rad 25 till status rad kan det få en liten defekt. mvh! ( Kommentar i text 261 av Björn Linderson <5829> ) ( Text 257 ) ( Text 258 ) 1986-04-21 02.19.25 Gerry Eriksson <4842> Mottagare: Z80 Kommentar till text: 255 av Kent Berggren SYSOP <6019> Ärende: Odokumenterade Z80-instruktioner Om du vet att du kommer använda en Z80CPU från en viss tillverkare och använder en instruktion som bara finns i den masken så har du fått ett roligt "kopieringsskydd" på köpet. Använd en CPU från en annan tillverkare och programmet krachar HI HI... Zilog lär göra så med sina egna system som de säljer. ( Kommentar i text 260 av Kent Berggren SYSOP <6019> ) ( Text 258 ) ( Text 259 ) 1986-04-21 07.43.29 Peter Öhlén <4659> Mottagare: Z80 Kommentar till text: 256 av Mikael Hovmöller <4688> Ärende: Odokumenterade Z80-instruktioner Ja. ( Text 259 ) ( Text 260 ) 1986-04-21 08.35.09 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 258 av Gerry Eriksson <4842> Ärende: Odokumenterade Z80-instruktioner Kan tänka mig det men jag tycker inte man skall använda sig av dessa rutiner i alla fall. De lär vara mycket snabba. ( Text 260 ) ( Text 261 ) 1986-04-22 22.43.46 Björn Linderson <5829> Mottagare: Z80 Kommentar till text: 257 av Patric Ljung <5455> Ärende: Editor i M-kod. ok. en liten miss , men den editor som jag har funkar i vilkewt fall (det var ett tag sedan jag tittade på källkoden) Rad 25 går mycket bra att använda utan att det blir strul. Mvh Björn ( Text 261 ) ( Text 262 ) 1986-04-22 22.46.20 Björn Linderson <5829> Mottagare: Z80 Ärende: Zx Spectrum och 253:or I dess rom dräller det av 253:or och 221:or, vilket inga disassemblers tar (kna det vara konstigt??) Så den maskinen dukar unbder om man byter CPU till annat fabrikat ibland.. Nalle ( Kommentar i text 263 av Mikael Hovmöller <4688> ) ( Text 262 ) ( Text 263 ) 1986-04-22 23.02.26 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 262 av Björn Linderson <5829> Ärende: Zx Spectrum och 253:or Hvad? Disassemblers brukar väl klara både IX och IY? (Om än inte de odokumenerade d:o, som inte ens finns på alla Z80or...) Är det alltså så att Spectrumen dyker pga att man använder odokumenterade 'finesser'? Allt IX&IY är inte mysko... M.v.h. Micke ( Kommentar i text 264 av Björn Linderson <5829> ) ( Text 263 ) ( Text 264 ) 1986-04-23 00.22.33 Björn Linderson <5829> Mottagare: Z80 Kommentar till text: 263 av Mikael Hovmöller <4688> Ärende: Zx Spectrum och 253:or Nej just det - och det var just det jag skrev.. Det dräller av 221:or och 235:or i rom:en på dessa maskiner med orginalproc cessor,och skulle man bytra till processor av annat fabrikat (vart tvungen några ggr pga stekt procc) så har skiten flippat fort och ofta,Bla på en procc kunde man köra all utom Goto - då datorn hoppade snabbt och lätt till adress (0) - dvs DÖK.... Nu är det så att det inte finns någfra disassemblers som tar dessa 221:or och 253:or som en instruktion utan bara kör med ????????? (Obs 8 rader uppåt och 235 skall vara 253...) //Mvh Nalle ( Text 264 ) ( Text 265 ) 1986-04-25 02.53.07 David Andersson <5201> Mottagare: Z80 Kommentar till text: 251 av Gunnar Forssell <1631> Ärende: Odokumenterad instruktion Har just testat SLA IXH, men inget speciellt uttömmande test. Koden blir 221,203,37. Instruktionen verkar INTE påverka reg IX! Däremot påvergas register B (!) och flagregistret. Ibland ser det ut som B skiftas åt höger, ibland får B ett värde som jag inte vet var det kommer ifrån. (Kommenterade inlägget, gick ur term100 och in i Magnums debugger, testar instr., går tillbaka till term100, skriver texten i inlägget) ( Text 265 ) ( Text 266 ) 1986-05-03 17.28.01 Björn Linderson <5829> Mottagare: Z80 Ärende:skärmeditor för z80- Jag skrev tidigare om en skärmeditor. Den finns nu i INLÅDAN. Det är ett .BAS program, ITH-format och källkod. Programmet har markörförflyttningar med pilarna och PF5 och PF7 Insert finnes och likaså delete. (kommer inte ihåg vilka koder! - måste se efter!) Man hoppar ur editorn genom att skriva CTRL+C (orginellt va?) Observera att programmet (.bas) är ABSOLUTADRESSERAT på adress 50000 och uppåt,men att jag inte har ändrat RAM-TOP-pekarna i programmet - utan när jag testat det har jag placerat det och hoppats på att datorn inte skall dyka bara.. men om dessa pekare ändras.. så skall det vara okej. Pekarna skall ändras enligt följande: POKE 65294,49999,swap%(49999) Mvh Björn Linderson. ( Text 266 ) ( Text 267 ) 1986-05-16 16.41.36 Anders Franzén <5258> Mottagare: Z80 Ärende: lustigt fel Jag har råkat ut för ett lustigt fel i ett program. I en interruptrutin kollar jag om returadressen som ligger på stacken ligger i ett visst intervall, dvs om en viss rutin exekveras när interruptet har inträffat. Denna rutin, som ligger och väntar på interrupt, ser ut så här ungefär: XX BIT 7,(IX+2) JRNZ FORTSÄTT Hoppa ur loop om interrupt inträffat ... Diverse instruktioner JR XX Upprepa Om interrupt inträffar efter det att den sista instruktionen (JR) exekveras hamnar inte adressen till byten efter JR XX på stacken, istället hamnar adressen XX på stacken! JR ändrar ju PC-registret... Det tänkte jag inte på men nu är det rättat. Loppen som snurrar är den som väntar på tangentbordsinterrupt i tolken och programmet som felet fanns i heter KEY för ABC80. Jag skall rätta ytterligare några buggar, sedan hivar jag väl in en ny version. ( Text 267 ) ( Text 268 ) 1986-05-28 15.07.37 Arne Hartelius SYSOP <2731> Mottagare: Z80 Ärende: Formaterat filnamn till DOS:et Vilken rutin (adress) i DOS:et tar hand om ett formaterat filnamn ? Vilket register ska peka på filnamnet vid ingången till denna rutin ? Övrig i sammanhanget intressant information ? ( Kommentar i text 269 av Lars Hedberg <2497> ) ( Text 268 ) ( Text 269 ) 1986-05-28 20.17.27 Lars Hedberg <2497> Mottagare: Z80 Kommentar till text: 268 av Arne Hartelius SYSOP <2731> Ärende: Formaterat filnamn till DOS:et Ursäkta men på ABC80 eller 80x??? TFP ( Kommentar i text 270 av Arne Hartelius SYSOP <2731> ) ( Text 269 ) ( Text 270 ) 1986-05-28 22.12.50 Arne Hartelius SYSOP <2731> Mottagare: Z80 Kommentar till text: 269 av Lars Hedberg <2497> Ärende: Formaterat filnamn till DOS:et Ursäkta, jag trodde i all min självupptagenhet att alla kände till att undertecknad är en rabbiat 80-anhängare. ( Kommentar i text 271 av Kristoffer Eriksson <5357> ) ( Text 270 ) ( Text 271 ) 1986-05-28 22.58.49 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 270 av Arne Hartelius SYSOP <2731> Ärende: Formaterat filnamn till DOS:et "Tar hand om ett formaterat filnamn" - Vad menar du med det? Vad är det du vill att rutinen ska göra med det formaterade filnamnet? (Rutinen SOM formaterar filnamn ligger i BASIC-delen och inte i DOS-et.) ( Kommentar i text 272 av Arne Hartelius SYSOP <2731> ) ( Text 271 ) ( Text 272 ) 1986-05-29 00.24.31 Arne Hartelius SYSOP <2731> Mottagare: Z80 Kommentar till text: 271 av Kristoffer Eriksson <5357> Ärende: Formaterat filnamn till DOS:et OK, om jag befinner mig i CMDINT.SYS och kör en fil som heter XXXX(.ABS) och den i sin tur hugger tag i en annan fil (YYYY), så blir ju kommandot: >XXXX YYYY Filnamnen XXXX och YYYY måste ju hittas på skivan och innan DOSET kan börja leta där så måste väl filnamnen 'justas till' dvs bort med space, dit med default-extention osv. Dessutom måste nånting peka på filnamnet så att DOS:et vet hur det ser ut. Om jag har en rutin i minnet (XXXX) som jag vet entrypointen på och vet att den kommer att leta efter ett filnamn eftersom rutinen vanligen startas från CMDINT.SYS så vill jag själv 'ta över CMDINT.SYS jobb' att peka ut filnamnet YYYY på ett korrekt sätt åt XXXX. ( Kommentar i text 273 av Kristoffer Eriksson <5357> ) ( Text 272 ) ( Text 273 ) 1986-05-29 23.02.38 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 272 av Arne Hartelius SYSOP <2731> Ärende: Formaterat filnamn till DOS:et Du vill alltså ha reda på en rutin som GÖR formateringen av namnet. Jag vet inte var den ligger i ABC80, men i DOS-delen hör den i alla fall inte hemma, eftersom även andra enheter än DRx: vill ha filnamnen formaterade. I ABC800 ligger rutinen på adress 99. Jag kan mycket väl tänka mig att CMDINT innehåller en egen rutin för formatering av filnamn, även om det förstås måste finnas en någonstanns i PROMmen. Sen tror jag filnamnen (det kan ju vara flera) läggs på en fast adress i minnet, där "XXXX" vet att det kan hitta det. ( Kommentar i text 274 av Arne Hartelius SYSOP <2731> ) ( Kommentar i text 275 av Johan Waldemarsson <4160> ) ( Text 273 ) ( Text 274 ) 1986-05-30 00.20.25 Arne Hartelius SYSOP <2731> Mottagare: Z80 Kommentar till text: 273 av Kristoffer Eriksson <5357> Ärende: Formaterat filnamn till DOS:et Jag är ganska säker på att formateringsrutinen i detta fall inte flyttar på filnamnet utan bara pekar på det. På två ställen förresten eftersom defaultextension ligger på annat ställe. Jag får väl leta vidare på egen hand. ( Text 274 ) ( Text 275 ) 1986-05-30 18.58.04 Johan Waldemarsson <4160> Mottagare: Z80 Kommentar till text: 273 av Kristoffer Eriksson <5357> Ärende: Formaterat filnamn till DOS:et CMDINT.SYS lägger upp dels parametrar till anropat program, t ex LIB,SNF HD0:A och dels en formaterad filtabell. Filtabellen inne- håller enhetsnamn, filnamn m m. När jag höll på med det här senast (DOS 6.13) startade kommandoparametern på adress 49 328 och fil- tabellen på adress 64 848 men såna saker kan ju ha ändrats. ( Text 275 ) ( Text 276 ) 1986-05-31 01.24.02 Bo Engborg <2369> Mottagare: Z80 Ärende: Formaterat filnamn 0:62 Jp 7:194 HL--> filnamn A= 0 open 1 prep 2 open def .bac, .bas 3 prep def 4 prep def bac ovan är bas 7:194 ger BC antal tecken till cr eller om strängen startade med ",' till dessa. HL--> filnamn 7:226 forts. IX skall peka på den plats där filbeskr skall ligga reserverar 14 bytes på stacken där standard filnamn skall läggas DE--> Call 20:120 ger standard filnamn "filnamn 8pos","ext","device" återstående pos blanka. POP IX --> adr filnamn Carry om ej funnen fil Allt från Rapport nr 1.. Hälsn ( Kommentar i text 277 av Peter Öhlén <4659> ) ( Text 276 ) ( Text 277 ) 1986-05-31 09.16.11 Peter Öhlén <4659> Mottagare: Z80 Kommentar till text: 276 av Bo Engborg <2369> Ärende: Formaterat filnamn CALL 20:120 är lite vanskligt, ta CALL 65 så vet du att det ligger på samma plats i alla checksummor. ( Text 277 ) ( Text 278 ) 1986-06-01 15.42.12 Peter Öhlén <4659> Mottagare: Z80 Ärende: CRC-rutin Jag undrar om det finns någon har har en rutin som räknar ut 16-bits CRC-CCITT? Om inte, har någon 'IEEE MICRO', juni 1983, sid 40 ska det finns en artikel som beskriver det. ( Text 278 ) ( Text 279 ) 1986-06-02 16.17.16 Arne Hartelius SYSOP <2731> Mottagare: Z80 Ärende: Parametrar i CMDINT.SYS Om man skriver: AAAA BBBB när man befinner sig i CMDINT.SYS så tolkas AAAA som namnet på en ABS-fil och BBBB som parameter. Min fråga är om CMDINT.SYS 'lämnar över' parametern BBBB till programet AAAA på något sätt eller om det är helt upp till programet AAAA att hämta in parametern BBBB. ( Kommentar i text 280 av Peter Öhlén <4659> ) ( Text 279 ) ( Text 280 ) 1986-06-02 21.03.42 Peter Öhlén <4659> Mottagare: Z80 Kommentar till text: 279 av Arne Hartelius SYSOP <2731> Ärende: Parametrar i CMDINT.SYS Det är helt upp till den ABS-filen att leta rätt på parametrarna och tolka dem. Jag tror att CMDINT's inputbuffer börjar på C0B0H. ABS-filerna kollar på texten efter första mellanslag. Skriver du ett mellanslag först (före AAAA) tolkas också AAAA som parametrar. ( Kommentar i text 282 av Johan Waldemarsson <4160> ) ( Text 280 ) ( Text 281 ) 1986-06-03 08.13.09 Lars Hedberg <2497> Mottagare: Z80 Ärende: ASC till BIN och BIN till ASC rutiner... Jag har användning av dessa rutiner i ett program. Igentligen är dom inte svåra att skriva, men jag har inte lust att uppfinna hjulet en gång till. OBS! Talområdet skall vara 0-65535 och inte -32768 - 32767 !!!!! TFP ( Kommentar i text 283 av Kristoffer Eriksson <5357> ) ( Text 281 ) ( Text 282 ) 1986-06-04 22.49.35 Johan Waldemarsson <4160> Mottagare: Z80 Kommentar till text: 280 av Peter Öhlén <4659> Ärende: Parametrar i CMDINT.SYS Lägg ett CR sist i parametersträngen. ( Text 282 ) ( Text 283 ) 1986-06-04 23.27.47 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 281 av Lars Hedberg <2497> Ärende: ASC till BIN och BIN till ASC rutiner... Ligger i inlådan: I2ASC.ASM och ASC2I.ASM ( Text 283 ) ( Text 284 ) 1986-07-18 21.07.37 Björn Linderson <5829> Mottagare: Z80 Ärende: FAN! vad lite här skrivs! Tyvärr har jag inte tid att komma med något nu,men SKRIV NÅGOT!! Tack för ordet ! /Nalle ( Kommentar i text 285 av Anders Franzén <5258> ) ( Text 284 ) ( Text 285 ) 1986-07-19 21.16.48 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 284 av Björn Linderson <5829> Ärende: FAN! vad lite här skrivs! Ok, jag kommer med en kanske dum fråga. Kan Z80-kod köras på en PC? ( Kommentar i text 286 av Bo Kullmar SYSOP <1789> ) ( Kommentar i text 294 av Karl Lindström <837> ) ( Text 285 ) ( Text 286 ) 1986-07-19 21.20.55 Bo Kullmar SYSOP <1789> Mottagare: Z80 Kommentar till text: 285 av Anders Franzén <5258> Ärende: FAN! vad lite här skrivs! Ja, det är en dumm fråga. Z80-kod kan inte köras på en 8088:a som sitter i PC:en! ( Kommentar i text 287 av Gunnar Faith-Ell SYSOP <2733> ) ( Kommentar i text 288 av Mikael Lidén <5651> ) ( Kommentar i text 305 av Björn Linderson <5829> ) ( Text 286 ) ( Text 287 ) 1986-07-19 21.21.59 Gunnar Faith-Ell SYSOP <2733> Mottagare: Z80 Kommentar till text: 286 av Bo Kullmar SYSOP <1789> Ärende: FAN! vad lite här skrivs! Det finns säkert någon Z80-emulator till den... ( Text 287 ) ( Text 288 ) 1986-07-19 21.46.16 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 286 av Bo Kullmar SYSOP <1789> Ärende: 8008->8080->8086->80186->80286->80386-> ?? 80486 --> ??? Det går att köra Z80 kod på en 8088 om man kör en emulator i PC:n Kent har en, den finns även på QZ har jag för mig. Annars lite historik om CPU:erna Först kom 8008 (Ok det fanns många andra men jag håller mig till INTEL) Sedan kom 8080 som var kompatibel med 8008 på objektkodsnivå. Så kom 8085 som var direkt kompatibel med 8080 instruktionsmässigt dock har 8085:an någon extra instruktion. Z80 (Zilogs variant på temat) är instruktions kompatibel med 8080:an men har dessutom ett stort antal nya instrultioner jämfört med 8080:an. 8080:an lade grunden för alla CP/M system. Sedan kom 8086/(8088) som är 16bitars processor den är objektkods kompatibel med 8080:an, så att program skrivna för 8080 behöver bara assembleras om, det gäller även 8085:an om den specifika instruktionen inte används, sä även i viss mån med Z80 om man inte använder Zilogs utvidgning av 8080:an. 80186:an, 80286:an osv är alla uppåtkompatibla med 8086. Så tittar man på det hela bör 80286 kunna köra 8008 program om de assemb- leras på nytt. Usch!! Det hela vart lite ostrukturerat jag får återkomma med artikel till bladet om den historiska utvecklingen av 8.... CPU:erna. ( Kommentar i text 289 av Kjell Enblom <5575> ) ( Kommentar i text 292 av Kent Berggren SYSOP <6019> ) ( Text 288 ) ( Text 289 ) 1986-07-19 23.48.38 Kjell Enblom <5575> Mottagare: Z80 Kommentar till text: 288 av Mikael Lidén <5651> Ärende: 8008->8080->8086->80186->80286->80386-> ?? 80486 --> ??? Det började egentligen med 4 bitars processorn 4004 och dess efterföljare 4040, sedan kom 8008 och 8080. 80386 är föressten en 32 bitarsprocessor. Dessutom kanske man ska nämna att IAPX186, IAPX286, IAPX386 = 80186, 80286 och 80386. Jag vet inte om IAPX är någon annan fabrikants beteckning, men det är i alla fall samma processorer. ( Kommentar i text 290 av David Andersson <5201> ) ( Kommentar i text 291 av Per Holmgren <5213> ) ( Kommentar i text 295 av Mikael Lidén <5651> ) ( Text 289 ) ( Text 290 ) 1986-07-20 03.03.45 David Andersson <5201> Mottagare: Z80 Kommentar till text: 289 av Kjell Enblom <5575> Ärende: 8008->8080->8086->80186->80286->80386-> ?? 80486 --> ??? "I"et i beteckningen iAPX186 betyder troligtvis Intel. Intel skriver sitt namn med litet "i" (för att inte tala om "e") ( Text 290 ) ( Text 291 ) 1986-07-20 04.20.34 Per Holmgren <5213> Mottagare: Z80 Kommentar till text: 289 av Kjell Enblom <5575> Ärende: 8008->8080->8086->80186->80286->80386-> ?? 80486 --> ??? Och 4004 var ju ingen generell processor, utan en speciellt framtagen krets för miniräknar applikationer. Alltså är en 80386 ingenting annat än en uppgraderad miniräknare... ( Text 291 ) ( Text 292 ) 1986-07-20 09.22.29 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 288 av Mikael Lidén <5651> Ärende: Z80MU =emulator. JO det finns ett program som emulerar Z80 koder i MSDOS. Det är ett fritt program och jag kan mot diskostnaden skicka över ett program till alla som vill ha det. Enligt manualen är den 100% (?) emuleran Z80. Samtidigt emulerar den oxo CP/M 2.2. Där är det några problem efter som den inte kan direkt kommunisera med portarna. Detta gör man genom BIOS och MS-DOSens anrop. Ganska kul att köra CP/M program på PC . OBS att inte alla program går efter som vissa program går förbi CP/M doset och gör direkt adreseringar och då funkar det inte. Jag skall testa programmet lite i vecka och kommer att berätta mer om det i något möte. ( Kommentar i text 293 av Anders Franzén <5258> ) ( Text 292 ) ( Text 293 ) 1986-07-20 12.06.27 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 292 av Kent Berggren SYSOP <6019> Ärende: Z80MU =emulator. Aha, det är så man gör för att köra Z80-kod på PC. Jag tyckte det vore kul att veta hur i jösse namn man kan köra CPM på en PC. Solklart! Tackar. ( Text 293 ) ( Text 294 ) 1986-07-20 20.25.03 Karl Lindström <837> Mottagare: Z80 Kommentar till text: 285 av Anders Franzén <5258> Ärende: FAN! vad lite här skrivs! Kommitten för dumma frågor har just utsett föregående fråga till den allra dummaste hittils i år. För det erhåller frågeställaren 14 poäng. Dessutom erhåller han 5 bonuspoäng för att han klämde ut den urbota korkade fråga mitt i semestertiderna. Totalt 19 poäng!! Då han då passerar kval- gränses som är 17 poäng erhåller han ett diplom samt en pellejönshatt vilka skickas ut med posten. Vi gratulerar! För Sveriges Kommitte För Dumma Frågor Pelle E Jöns Dumsnut OBS!!! IRONI ( Kommentar i text 302 av Anders Franzén <5258> ) ( Text 294 ) ( Text 295 ) 1986-07-20 20.52.59 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 289 av Kjell Enblom <5575> Ärende: 8008->8080->8086->80186->80286->80386-> ?? 80486 --> ??? 4004 känner jag till men är dess assembler objektkods kompatibel med 8008 ? Knappast va den var ju en 4 - bitars. ( Kommentar i text 296 av Kent Berggren SYSOP <6019> ) ( Kommentar i text 297 av Per Holmgren <5213> ) ( Kommentar i text 299 av Kjell Enblom <5575> ) ( Text 295 ) ( Text 296 ) 1986-07-20 22.02.25 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 295 av Mikael Lidén <5651> Ärende: 8008->8080->8086->80186->80286->80386-> ?? 80486 --> ??? Hur kommer 8047 opch 8051 in i historien? ( Kommentar i text 298 av Kjell Enblom <5575> ) ( Text 296 ) ( Text 297 ) 1986-07-21 21.38.26 Per Holmgren <5213> Mottagare: Z80 Kommentar till text: 295 av Mikael Lidén <5651> Ärende: 8008->8080->8086->80186->80286->80386-> ?? 80486 --> ??? Måhända icke helt objektkodskompatibel, men dock stamfader för hela släkten. ( Text 297 ) ( Text 298 ) 1986-07-22 00.33.40 Kjell Enblom <5575> Mottagare: Z80 Kommentar till text: 296 av Kent Berggren SYSOP <6019> Ärende: 8047 Om jag inte minns fel så hör 8047 till 8748 familjen. Dvs enchipsdatorer. Det finns en bok som heter Konstruera och programmera med 8748 som tar upp hela den familjen. Tyvärr ligger mitt ex kvar nere i Linköping så jag kan inte se efter ifall jag har rätt. ( Kommentar i text 300 av Kent Berggren SYSOP <6019> ) ( Text 298 ) ( Text 299 ) 1986-07-22 01.05.26 Kjell Enblom <5575> Mottagare: Z80 Kommentar till text: 295 av Mikael Lidén <5651> Ärende: 4004, 4040 Jag såg att elektronikföreningen Admittansen på LiTH har ett flertal böcker som de delar ut, där en av dessa handlar om 4004, 4040. Jag kan skaffa ett par ex om nu någon mot förmodan skulle vara intresserad. ( Text 299 ) ( Text 300 ) 1986-07-22 08.21.52 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 298 av Kjell Enblom <5575> Ärende: 8048 Ärsch jag skrev fel. Det skall vara 8048. 8748 är epromvarianten. ( Text 300 ) ( Text 301 ) 1986-07-22 08.25.50 Kent Berggren SYSOP <6019> Mottagare: Z80 Ärende: Z80MU Jag har testat det programmet lite och den kan återskapa källkoden. Du kan nämligen i disasmbler listan lägga in lablar. Ganska bra. Jag tycker att programmet blir ganska slött i 8086 PC men har man 8086-2 eller AT blir det en Z80 1Mhz. Vilket är i allafall långsamt men det kan man ju stå utmed i stället för 2 maskiner. Det finns också en inbygd ZSID som är mycket trevlig. Manualen är på 100 Sidor. ( Text 301 ) ( Text 302 ) 1986-07-23 15.37.17 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 294 av Karl Lindström <837> Ärende: FAN! vad lite här skrivs! Tja, kanske är man lite knäpp som kommer med så "dumma" frågor men det sägs ju att sanningen får man från barn och tokar. Har du läst sagan som handlar om kejsarens nya kläder? Alla tror att de ser någonting när det i verkligheten inte finns ett dugg! hejhop ( Text 302 ) ( Text 303 ) 1986-07-25 14.16.13 Anders Franzén <5258> Mottagare: Z80 Ärende: MACRO's Det är ju trevligt att kunna använda MACRO's i sina källkoder. Men assemblatorn måste väl känna till vilka macro's som finns, hur talar man om det för en assemblatorn? Finns det något MACRO-lib någonstans? När uppdateras isåfall det? ( Kommentar i text 304 av Kristoffer Eriksson <5357> ) ( Text 303 ) ( Text 304 ) 1986-07-26 01.57.15 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 303 av Anders Franzén <5258> Ärende: MACRO's Hur makro-hanteringen går till beror naturligtvis helt på vad du har för assemblator. Jag antar att man oftast helt enkelt har de makro:n man använder i textform antingen i samma fil som programmet, eller i en som man kan hänvisa till från huvudfilen på något sätt. ( Text 304 ) ( Text 305 ) 1986-08-02 00.58.34 Björn Linderson <5829> Mottagare: Z80 Kommentar till text: 286 av Bo Kullmar SYSOP <1789> Ärende: FAN! vad lite här skrivs! Allt går att simulera! Klart att det går att simulera en z80 på en 8088,men det lär bli lite slött... Direkt går det inte - tyvärr..... /Nalle ( Text 305 ) ( Text 306 ) 1986-08-02 01.03.44 Björn Linderson <5829> Mottagare: Z80 Ärende: .... FAN! Vackert! ni kan ju! nu fick vi på köpet lite historia! Tackar! /Nalle ( Text 306 ) ( Text 307 ) 1986-08-08 11.36.10 Kent Berggren SYSOP <6019> Mottagare: Z80 Ärende: Z80MU Alla ni som har fått programmet av mig (ca15st) Har ni fått fart på det och fungerar det tillbelåtenhet. Jag har haft vissa problem med det mna men annars har det fungerat mycket bra. ( Kommentar i text 308 av Stefan Berg <216> ) ( Text 307 ) ( Text 308 ) 1986-08-09 21.37.08 Stefan Berg <216> Mottagare: Z80 Kommentar till text: 307 av Kent Berggren SYSOP <6019> Ärende: Z80MU Vi som inte har fått det, har du lust att upplysa oss om vad det är för något? ( Kommentar i text 311 av Kent Berggren SYSOP <6019> ) ( Text 308 ) ( Text 309 ) 1986-08-09 23.32.13 Jinge Flücht <6744> Mottagare: Z80 Ärende: Z80 Hallå! Assembler är för mig något som är lika lätt att förstå som sanskrit eller ngt annat mystiskt utdött språk. Men jag är intresserad !! Jag har Assembler 800, + Bit för Bit. Nu behöver jag väl en bok som förklarar vad det hela handlar om. En bok med små exempel i (!?) Vilken?? MVH Nyfiken < Jinge > ( Kommentar i text 310 av Stefan Berg <216> ) ( Kommentar i text 355 av Kristoffer Eriksson SYSOP <5357> ) ( Text 309 ) ( Text 310 ) 1986-08-09 23.36.39 Stefan Berg <216> Mottagare: Z80 Kommentar till text: 309 av Jinge Flücht <6744> Ärende: Z80 Rodnay Zaks "Programming the Z80" är en bra bok. Finns i svensk översättning oxo - men ofta tappar man mycket i översättningen. Finns t ex på bokakademin. ISBN 0-89588-069-5 (amerikanska utgåvan). Rekommenderas! ( Kommentar i text 500 av Jens Carlberg <6640> ) ( Text 310 ) ( Text 311 ) 1986-08-10 11.13.14 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 308 av Stefan Berg <216> Ärende: Z80MU Simulerar Z80 och CP/M 2.2 under ms-dos ( Kommentar i text 318 av Curt Rehnborg <1121> ) ( Text 311 ) ( Text 312 ) 1986-08-10 11.59.02 Gunnar Forssell <1631> Mottagare: Z80 Ärende: Z80000 och Z8000? Någon som vet något om dessa? Finns de för försäljning, eller är de nedlagda? Prestanda? ( Kommentar i text 313 av Bo Kullmar SYSOP <1789> ) ( Text 312 ) ( Text 313 ) 1986-08-10 12.05.58 Bo Kullmar SYSOP <1789> Mottagare: Z80 Kommentar till text: 312 av Gunnar Forssell <1631> Ärende: Z80000 och Z8000? Jag tror att de finns för försäljning. Jag har till och med sett någon UNIX maskin med en av dessa processorer. Sen är det en annan sak att de inte alls har blivit någon försäljningssuccé. ( Kommentar i text 314 av Per Holmgren <5213> ) ( Text 313 ) ( Text 314 ) 1986-08-10 17.00.23 Per Holmgren <5213> Mottagare: Z80 Kommentar till text: 313 av Bo Kullmar SYSOP <1789> Ärende: Z80000 och Z8000? Z8000 har funnits i ett par år, i några olika versioner. Z8001 som kan adressera 48M, Z8002 som tar 384k, Z8003 och Z8004 som kan göra demand- page virtual memory adressing. Alla har tillverkats av Zilog, och Z8001 tom Z8003 har även gjorts av SGS. Z80000 är Zilogs 32 bittare, och den finns -vad jag vet- bara på datablad, än så länge. Både Zilog och SGS har gjort Unix maskiner med Z8000 kärror i, Zilogs heter System 8000 (körandes ZEUS, Zilog Enhaced Unix System), och SGS's heter Samson. SGS har oxo gjort en äldre maskin under namnet UX-16/11, som körde SUNIX (fniss..), SGS enhaced UNIX. Samson är baserad på Multibus kort, som även finns att tjacka separat. ( Kommentar i text 315 av Gunnar Forssell <1631> ) ( Text 314 ) ( Text 315 ) 1986-08-10 19.00.42 Gunnar Forssell <1631> Mottagare: Z80 Kommentar till text: 314 av Per Holmgren <5213> Ärende: Z80000 och Z8000? Någon som har datablad att sicka till mig? Jag skulle vilja kolla lite mer på dessa kretsar... Succe eller inte, det är Zilog, och bara det gör att de är intressanta... ( Kommentar i text 316 av Kent Berggren SYSOP <6019> ) ( Kommentar i text 344 av Per Holmgren <5213> ) ( Text 315 ) ( Text 316 ) 1986-08-10 20.17.31 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 315 av Gunnar Forssell <1631> Ärende: Z80000 och Z8000? Hur är det har inte metric hand om dem? ( Kommentar i text 317 av Bo Kullmar SYSOP <1789> ) ( Text 316 ) ( Text 317 ) 1986-08-10 21.23.59 Bo Kullmar SYSOP <1789> Mottagare: Z80 Kommentar till text: 316 av Kent Berggren SYSOP <6019> Ärende: Z80000 och Z8000? Jo, men Metric har sållt ut allt som hade med administrativ data- behandlig att göra så den nämnda datorn försvann också. Undrar om det inte var Carl Lamm som tog över, kommer inte riktigt ihåg. Metric hade kallat datorn för Metric 8000 men vid försäljningen av verksamheten fick datorn tillbaka sitt ursprunliga namn. För övrigt så är väl den dator det system som har sålt bäst som basdator inom stadsförvaltningen (ABC9000 får stryck av den!). ( Kommentar i text 319 av Curt Rehnborg <1121> ) ( Text 317 ) ( Text 318 ) 1986-08-10 21.51.02 Curt Rehnborg <1121> Mottagare: Z80 Kommentar till text: 311 av Kent Berggren SYSOP <6019> Ärende: Z80MU Var hittar man den .... ( Kommentar i text 320 av Mikael Hovmöller <4688> ) ( Text 318 ) ( Text 319 ) 1986-08-10 21.53.04 Curt Rehnborg <1121> Mottagare: Z80 Kommentar till text: 317 av Bo Kullmar SYSOP <1789> Ärende: Z80000 och Z8000? Zilog-maskiner säljes av Carl Lamm ( Text 319 ) ( Text 320 ) 1986-08-10 22.19.18 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 318 av Curt Rehnborg <1121> Ärende: Z80MU Find(,d)!!! MSDOS. M.v.h. Micke ( Text 320 ) ( Text 321 ) 1986-08-10 22.20.41 Jinge Flücht <6744> Mottagare: Z80 Ärende: Okunnig Förlåt en totalt okunnig !! Jag skall skaffa Zaks bok om Z80 på svenska. Jag vill nämligen veta VAD maskinkodsprogrammering är för något. Jag gjorde en textfil: LD HL,TEXT LD BL,4 CALL 11 RET TEXT "Hej!" Sen körde jag asmz och estab. Jag kallade filen för "T". Efter assembleringen accepterades "T" i DOS, men inte ngn annan bokstav. Men som jag fattat det så skulle det oxo resulterat i en utskrift "Hej!" Men kanske om jag anropar T.ABS från Basic ?? Skratta inte ihjäl Er nu! Och jag förstår att jag måste kolla i boken. (Mötet kan ju inte bli ngn assemblerkurs...) Men var det fel på koden? Med vänliga hälsningar < Jinge > ( Kommentar i text 322 av Mikael Hovmöller <4688> ) ( Kommentar i text 323 av Kjell Enblom <5575> ) ( Kommentar i text 325 av L-G Göransson SYSOP <495> ) ( Text 321 ) ( Text 322 ) 1986-08-10 22.39.41 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 321 av Jinge Flücht <6744> Ärende: Okunnig Det heter BC, inte BL. Konstigt att inte ASMZ säger ifrån... Registerna (som vanligen används, IX, IY, I och R mfl är inget för nybörjare...) är: A(ckumulator) Det är det register som används vid jämförelser etc. BC (BitCounter) Används ofta som 'räknare'. I ditt exempel tex som räknare på antalet tecken som ska skrivas ut HL (HighLow (används som minnesregel på vilken byte som är high och vilken som är låg)) Används ofta som pekare. I ditt fall på var texten som ska skrivas ut ligger. Anvvänds även som '16-bitars ackumaulator'. DE (DEstination (används vid LDIR etc)) Har inte samma 'förutbestämda' funktion som HL, BC och A, utan kan användas lite mer 'fritt'. Används dock som indata till vissa funktioner i tolken. Alla register är på 8 bitar (0-255), men HL, BC och DE kan 'sättas ihop', till 16 bitar (0-65535). Detta var tänkt som en minnesregel för nybörjare, sem jag lärde mig ovanstående definitioner, har jag aldrig förväxlat dem! Dock ska det väl påpekas att man kan glömma att lära sig assembler utan en bok typ Zaks och disassemblern/bit för bit! Varför inte en studiecirkel med tex Zaks bok som utgångspunkt? Det vore nog lärorikt för många! Dessutom skulle det kanske kunna bli en bra artikel i Bladet! M.v.h. Micke ( Kommentar i text 324 av Stefan Berg <216> ) ( Kommentar i text 346 av Curt Rehnborg <1121> ) ( Text 322 ) ( Text 323 ) 1986-08-10 23.30.07 Kjell Enblom <5575> Mottagare: Z80 Kommentar till text: 321 av Jinge Flücht <6744> Ärende: Okunnig Det är lämpligt att inleda programmet med: title programnamn . Därefter så talar man om för vilken startadress som programmet ska assembleras genom att skriva org adressH , där 'H' står för att det är ett hexadecimalt tal. Mellan 'title' och 'org' så kan du definiera konstanter: aaa equ 001 dvs aaa=1 wboot equ 000 wboot =0 osv inne i programmet kan man skriva: label defb 'A' ; lägger 'A' i en minesscell på platsen 'label' label defw 12000 ; lägger ett 'word' i minesseccellerna (2 st) på platsen label, och detta word innehåller talet 12000. label defs nn ; reserverar n bytes i minnet, innehållet är odefinierat. label defm 'HEJSAN' ; reserverar ett utrymme där 'HEJSAN' läggs. Obs ! texten efter defm får vara max 255 tkn. Genom att skriva ; så talar man om att resterande text på raden är en kommentar. Programmet avslutas med END . Ett litet exempel: title testprogram wboot equ 00 tkn equ 'A' visatext equ ------- ; byt ut ------- mot adressen för visa text org 49152 ; decimal adress start: ld a,tkn add a,1 ; 'A'+1 = 'B' ld hl,label jp visatext jp wboot label defm 'HEJSAN' end Det var en liten snabbkurs i hur man skriver assembler koden. Mvh Kjell-E ( Text 323 ) ( Text 324 ) 1986-08-11 00.23.59 Stefan Berg <216> Mottagare: Z80 Kommentar till text: 322 av Mikael Hovmöller <4688> Ärende: Okunnig (Du glömde AF - ännu ett 16-bitsregister.) ( Kommentar i text 326 av Mikael Hovmöller <4688> ) ( Text 324 ) ( Text 325 ) 1986-08-11 09.44.43 L-G Göransson SYSOP <495> Mottagare: Z80 Kommentar till text: 321 av Jinge Flücht <6744> Ärende: Asmz Du måste inleda programet med: modulnamn ZPROG fri text eller modulnamn PROG fri text ZPROG betyder att man använer zilog kod och PROG betyter att man använder Interdata kod. Du skall altså skriva ZPROG med minst ett space framför Du behöver inte ha med modulnamn och fri text om du inte vill. Sedan är det lämpligt att skriva ett ORG statment för att tala om var i minnet programet ska ligga. Du måste också namnge den position som du vill att programet skall start i från och i länkaren (ESTAB) ange att programet skall starta från den labeln. M.v.h. L-G ( Kommentar i text 327 av Jinge Flücht <6744> ) ( Text 325 ) ( Text 326 ) 1986-08-11 12.00.00 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 324 av Stefan Berg <216> Ärende: Okunnig Men F fungerar inte riktigt på samma sätt som de andra 8-bitarna, och därför tog jag inte med det! Enda gången det torde användas är vid PUSH och POP... M.v.h. Micke ( Kommentar i text 396 av L-G Göransson SYSOP <495> ) ( Text 326 ) ( Text 327 ) 1986-08-11 14.01.12 Jinge Flücht <6744> Mottagare: Z80 Kommentar till text: 325 av L-G Göransson SYSOP <495> Ärende: Asmz Det är nog bäst att jag fixar ett ex av Zaks bums !! mvh / Jinge ( Kommentar i text 397 av L-G Göransson SYSOP <495> ) ( Text 327 ) ( Text 328 ) 1986-08-11 15.37.20 Jinge Flücht <6744> Mottagare: Z80 Ärende: Kurs Skulle man inte kunna ha en liten kurs i maskinspråks- programmering i monitorn ? Det som behövs är ett möte plus ett par tålmodiga lärare. Assembler 800 och Zaks bok är väl oxo nödvändiga. Jag inbillar mig att det skulle bli en väldig rusch på intresserade. Men det är kanske inte meningen att klubbens monitor skall användas till sånt ? mvh / Jinge ( Kommentar i text 329 av Mikael Hovmöller <4688> ) ( Kommentar i text 334 av Stefan Berg <216> ) ( Text 328 ) ( Text 329 ) 1986-08-11 15.58.49 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 328 av Jinge Flücht <6744> Ärende: Kurs Det tycker jag absolut! Monitorn (eller snarare MSG) är till för att lära ut saker och ting, och en studiecirkel gör det i allra högsta grad! Finns det då någon som vill vara lärare? Och elev? M.v.h. Micke ( Kommentar i text 330 av Stefan de Luca <2088> ) ( Text 329 ) ( Text 330 ) 1986-08-11 16.24.43 Stefan de Luca <2088> Mottagare: Z80 Kommentar till text: 329 av Mikael Hovmöller <4688> Ärende: Kurs. Jag anmäler mig som elev... ( Kommentar i text 331 av Mikael Lidén <5651> ) ( Text 330 ) ( Text 331 ) 1986-08-11 17.26.00 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 330 av Stefan de Luca <2088> Ärende: Kurs. Det var en mycket intressant idé att hålla studiecirklar i MSG, kanske C och Z80 assembler är aktuellt till att börja med. ( Kommentar i text 332 av Stefan de Luca <2088> ) ( Text 331 ) ( Text 332 ) 1986-08-11 17.36.32 Stefan de Luca <2088> Mottagare: Z80 Kommentar till text: 331 av Mikael Lidén <5651> Ärende: Kurs. Ja, assembler är i alla fall jag intresserad av att lära mig... ( Kommentar i text 333 av Jinge Flücht <6744> ) ( Kommentar i text 398 av L-G Göransson SYSOP <495> ) ( Text 332 ) ( Text 333 ) 1986-08-11 18.02.55 Jinge Flücht <6744> Mottagare: Z80 Kommentar till text: 332 av Stefan de Luca <2088> Ärende: Kurs. Ja det blev respons direkt! Kul! (Jag kommer just från stan. Har köpt ZAKS bok. 390 kr (!!) ) Bit för Bit har jag sedan tidigare. Men: OM vi skulle försöka oss på en kurs i assemblering via detta media, bör det inte i så fall vara ett speciellt möte? De som är duktiga på asm tycker nog att det är ytterst plågsamt att behöva läsa frågor typ mina. CTRL-O finns ju, men risken är ju stor att det blir MYCKET in- lägg. Och jag är inte så säker på att det finns utrymme för ett nytt möte i systemet. Det vet nog bara Sysop:s. Den naturliga frågan blir väl oxo. Om det finns en "korrespondenskurs" i assembler, varför kan vi inte då öppna en kurs i pascal... (Jag har iofs utrymme för ett sådant möte i mitt system, men det fungerar bara med 1 nod för närvarande, och bara 300/300 oxo det för närvarande... Så det kan vi glömma) Men två mycket intressanta frågor har kommit upp här: 1 Finns det möjlighet att få ett "tillfälligt" möte t.e.x. för att prova om vi kan köra en studiecirkel i assembler på klubbens system ? 2 Finns det någon av de duktiga som orkar/vill/står ut med en bunt gröngölingar som frågar och frågar och fattar långsamt? Om dessa frågor besvaras med ja så anmäler jag mig oxo till denna eventuella kurs. (Nu skall jag börja titta i boken! Den är skrämmande tjock!) :-) mvh / Jinge ( Kommentar i text 335 av Bo Kullmar SYSOP <1789> ) ( Kommentar i text 345 av Peter Öhlén <4659> ) ( Text 333 ) ( Text 334 ) 1986-08-11 18.07.02 Stefan Berg <216> Mottagare: Z80 Kommentar till text: 328 av Jinge Flücht <6744> Ärende: Kurs Frågan är väl om det går att organisera en MSG-kurs på vettigt sätt. Men idén är god. ( Text 334 ) ( Text 335 ) 1986-08-11 18.18.42 Bo Kullmar SYSOP <1789> Mottagare: Z80 Kommentar till text: 333 av Jinge Flücht <6744> Ärende: Kurs Nej, detta system är gjort för 25 möten och det finns 25 möten så det går dock inte. Dock har det inte varit så stor aktivitet i detta möte så ni kan väl skriva lite här, fast jag är inte säker på att ett sådant är medium är effektivt för en kurs. Noteras kan att ABC-Sthlm faktiskt har haft en assemblerkurs tidigare. ( Kommentar i text 336 av Jörgen Hansen <5844> ) ( Text 335 ) ( Text 336 ) 1986-08-11 18.52.11 Jörgen Hansen <5844> Mottagare: Z80 Kommentar till text: 335 av Bo Kullmar SYSOP <1789> Ärende: Kurs Jag är också intresserad av att få lära mig! Jag har tillgång till Assembler 800 men inte Zaks bok. Ifall en studiecirkel kommer igång däremot så köper jag den. Kanske skulle en lärare (=assemblerguru) skriva ett saftigt lektionsinlägg i detta möte en gång i veckan, och frågorna som uppkommer besvaras av honom samt av andra som redan kann assembler. Enkät-mötet är ju ganska dött just nu... Och det var ju ett temporärt möte? Och inget nytt har skrivits där sedan början av sommaren förutom Stefan Bergs förfrågningar om det har hänt något... ( Kommentar i text 337 av Jinge Flücht <6744> ) ( Text 336 ) ( Text 337 ) 1986-08-11 19.50.27 Jinge Flücht <6744> Mottagare: Z80 Kommentar till text: 336 av Jörgen Hansen <5844> Ärende: Kurs Vi tar väl Bo på orden !? Vi sätter igång en kurs i assembler för Z80. Och vi gör det i detta mötet om inte någon protesterar. Således: 1 Kursen startar om en vecka här i detta mötet! 2 Vem/vilka kan hjälpa oss att ta oss igenom Zaks bok? -Jag tycker att vi tar Zaks på allvar och tar den kapitelvis med start på sidan ett. Men herrar gurus! Känner Ni Er manade att få ett koppel lärjungar? mvh / Jinge ( Kommentar i text 339 av Jörgen Hansen <5844> ) ( Kommentar i text 363 av Mikael Lidén <5651> ) ( Text 337 ) ( Text 338 ) 1986-08-11 19.53.28 Jinge Flücht <6744> Mottagare: Z80 Ärende: Rodnay Zaks 'Programmera Z80' Finns bla på Fritzes på regeringsgatan. 390 pix skrev jag tidigare. Men jag har inte upptäckt något facit till övningsuppgifterna ! Finns det inte något sådant ?? mvh / Jinge ( Kommentar i text 364 av Mikael Lidén <5651> ) ( Text 338 ) ( Text 339 ) 1986-08-11 19.59.05 Jörgen Hansen <5844> Mottagare: Z80 Kommentar till text: 337 av Jinge Flücht <6744> Ärende: Kurs Jodå jag tog honom på orden men frågade samtidigt försiktigt ifall man inte kunde använda sig av Enkätmötet eftersom det inte har skrivits något där.. Först måste en guru komma fram... David Andersson? Anders Franzén? Mikael Lidén? Dessa programmar mycket i assembler har jag för mig... ( Kommentar i text 341 av Mikael Hovmöller <4688> ) ( Text 339 ) ( Text 340 ) 1986-08-11 20.08.39 Mikael Hovmöller <4688> Mottagare: Z80 Ärende: Kursen mm Jag kan anmäla mig som lärare. (. Åtminstone första veckan, sen får jag väl bli elev... .) Zaks bok fanns tidigare att köpa på Stor&Liten för ca 250 kr! (Blåst, Jinge! :-) Det finns inte svar till övningsuppgifterna. Detta står det något om någonstans. Jag vet att Peter Öhlén har tänkt att skriva en artikel i Bladet om hur man börjar, kanske det kan vara lektion ett? Sen krävs det nog en lärare till '800 också, om det ska bli nått. Frivilliga? M.v.h. Micke ( Kommentar i text 342 av Bo Kullmar SYSOP <1789> ) ( Kommentar i text 349 av Peter Öhlén <4659> ) ( Text 340 ) ( Text 341 ) 1986-08-11 20.10.15 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 339 av Jörgen Hansen <5844> Ärende: Kurs Enkätmötet ska det bli fart på igen! (Eller hur, Stefan?) Det stannade olyckligtvis av pga att vi tog semester alla tre på samma gång... M.v.h. Micke ( Text 341 ) ( Text 342 ) 1986-08-11 21.05.58 Bo Kullmar SYSOP <1789> Mottagare: Z80 Kommentar till text: 340 av Mikael Hovmöller <4688> Ärende: Kursen mm Det gäller att inte skriva för mycket inlägg för då spårar det hela ur tror jag. Det kan vara svårt att ha en sådan kurs här, men ni kan ju försöka. Sen är det en annan sak att jag inte fattar att folk vill lära sig ett lågnivåspråk när det till och med finns C, som brukar kallas för hackerns favoritspråk! ( Kommentar i text 343 av Mikael Hovmöller <4688> ) ( Text 342 ) ( Text 343 ) 1986-08-11 21.11.42 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 342 av Bo Kullmar SYSOP <1789> Ärende: Kursen mm C finns inte på 80!!! (Förutom versionen för CP/M...) Fast jag håller med om att C är roligare! Varför inte en studiecirkel i det också? M.v.h. Micke ( Text 343 ) ( Text 344 ) 1986-08-11 22.18.25 Per Holmgren <5213> Mottagare: Z80 Kommentar till text: 315 av Gunnar Forssell <1631> Ärende: Z80000 och Z8000 Får jag din adress så skickar jag info på Z8000. Vill du veta mera om Z80000 så föreslår jag att du pratar med Nordquist & Berg (690400) och ber att få Zilog components data book, alternativt datablad på just den. ( Kommentar i text 362 av Gunnar Forssell <1631> ) ( Text 344 ) ( Text 345 ) 1986-08-11 23.59.55 Peter Öhlén <4659> Mottagare: Z80 Kommentar till text: 333 av Jinge Flücht <6744> Ärende: Kurs. Lämplig (?) övning: ett program som skriver 'Hipp hurra' 20 ggr. med radmatning emellan. 'Utveckla' sedan detta så att man skriver in en sak som sedan programmet skriver ut 20 ggr. En klass på (hittills) 3 elever utan lärare. Det blir nog ganska mycket snack på timmarna...... ( Kommentar i text 347 av Mikael Hovmöller <4688> ) ( Text 345 ) ( Text 346 ) 1986-08-12 00.00.00 Curt Rehnborg <1121> Mottagare: Z80 Kommentar till text: 322 av Mikael Hovmöller <4688> Ärende: Okunnig Varför inte använda ett möte som kurs i Assembler, där det finns möjlighet med både frågor och svar samt uppgifter att lösa ( Kommentar i text 348 av Mikael Hovmöller <4688> ) ( Text 346 ) ( Text 347 ) 1986-08-12 00.03.04 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 345 av Peter Öhlén <4659> Ärende: Kurs. Lämplig övning för folk som inte ens har tittat i Zaks bok? Jag skulle snarare vilj påstå att en lämplig övning är att få ett program, vilket som helst, att fungera! Vaddå ingen lärare, du och jag är två! :-) M.v.h. Micke ( Kommentar i text 350 av Peter Öhlén <4659> ) ( Text 347 ) ( Text 348 ) 1986-08-12 00.04.41 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 346 av Curt Rehnborg <1121> Ärende: Okunnig Det är det som detta möte ska användas till! De övriga frågor som skrivs i detta möte är ändå så få... Vill du bli lärare eller elev? Det finns inte plats för fler möten, varför inte ett särskilt möte kan skapas. M.v.h. Micke ( Text 348 ) ( Text 349 ) 1986-08-12 00.06.45 Peter Öhlén <4659> Mottagare: Z80 Kommentar till text: 340 av Mikael Hovmöller <4688> Ärende: Kursen mm Ehh... Artikel. Hmm... Jo. Jag har första delen klar. Det verkar finnas intresse, så jag skickar väl in den. Sedan blir det lite krångligare med del två. Vad ska man ta så att det inte blir för mycket etc. etc. ( Text 349 ) ( Text 350 ) 1986-08-12 00.09.04 Peter Öhlén <4659> Mottagare: Z80 Kommentar till text: 347 av Mikael Hovmöller <4688> Ärende: Kurs. Jag tänkte snarast på Jinge som lyckats skriva ut en text. ( Kommentar i text 351 av Mikael Hovmöller <4688> ) ( Kommentar i text 353 av Jinge Flücht <6744> ) ( Text 350 ) ( Text 351 ) 1986-08-12 00.11.50 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 350 av Peter Öhlén <4659> Ärende: Kurs. 1. Han hade plankat proget! 2. Han lyckades INTE skriva ut den, det var därför han frågade! Du ställer väl upp som lärare? Efter lektion 3 behöver jag nog asistans... M.v.h. Micke ( Kommentar i text 352 av Peter Öhlén <4659> ) ( Text 351 ) ( Text 352 ) 1986-08-12 00.22.50 Peter Öhlén <4659> Mottagare: Z80 Kommentar till text: 351 av Mikael Hovmöller <4688> Ärende: Kurs. Jag kan nog ställa upp som lärare, beror på hur mycket man får att göra fram emot hösten... ( Kommentar i text 354 av Jinge Flücht <6744> ) ( Text 352 ) ( Text 353 ) 1986-08-12 00.59.51 Jinge Flücht <6744> Mottagare: Z80 Kommentar till text: 350 av Peter Öhlén <4659> Ärende: Kurs. Nej jag har inte lyckats skriva ut någon text!! Elakt förtal! Jag undrar fortfarande hur man anropar sk-en från ett Basic- program. Uffe, TCP, hävdade att jag nog kunde få det att snurra med hjälp av RUNABS. Och det skall jag prova. Men just nu är jag på de första sidorna i Zaks... En uppgift är att man skall visa hur 257 ser ut i binär form. Men det går väl inte med 8 bitar!? Annars så skulle jag få det till 11111111 01000000 ! Och då förstår Ni vilken nivå jag befinner mig på... mvh / Jinge ( Kommentar i text 365 av Stefan Berg <216> ) ( Text 353 ) ( Text 354 ) 1986-08-12 01.05.46 Jinge Flücht <6744> Mottagare: Z80 Kommentar till text: 352 av Peter Öhlén <4659> Ärende: Kurs. Läckert! Nu har vi två lärare och tre elever. Jag förutsätter att de som ev inte har Zaks skaffar boken bums. Bit för Bit har väl de flesta? En bra grej kunde vara att få kolla övningsuppgifterna med våra lärare. Visst är 11111100 = 63 tex ? Jag vet ju inte på vilken nivå de övriga eleverna står, men jag kan absolut ingenting. Lite Basic kan jag förstås, men det är ju först lite senare man kan behöva det. Feedback från övriga "elever" ?? mvh / Jinge ( Kommentar i text 356 av Arne Hartelius SYSOP <2731> ) ( Kommentar i text 357 av David Andersson <5201> ) ( Kommentar i text 360 av Curt Rehnborg <1121> ) ( Text 354 ) ( Text 355 ) 1986-08-12 02.17.24 Kristoffer Eriksson SYSOP <5357> Mottagare: Z80 Kommentar till text: 309 av Jinge Flücht <6744> Ärende: Z80 BOK!? När du har oss! Det enda vettiga sättet att lära sig assembler eller programspråk över huvud taget, är att läsa program som kunnigare folk skrivit (och även skrivit kommetarer i, för all del), och fösöka lista ut hur det kan fungera. Det finns en del material i program- banken... Ev kan man ha en lärobok som bredvidläsning... Till sist gäller det förstås ocks att öva, öva, och öva. (. För övrigt bör man inte använda en assemblator till att börja med. Det är fusk, förslöar hjärnan, och fjärmar programmeraren från maskinen och Den Sanna Kunskapen. Nej, man ska koda för hand, och då hellst i hex(-adecimalt) eller oktalt, så man fatta vad som händer. Sen ska man inte skriva in detta i något laddningsprogram. Sådant är också fusk. I stället gäller det att "vippa" in det med ett antal (vanligen 16 + 8 eller 16 + 16) vippomkopplare kopplade direkt till datorns systembuss. Sen får man följa det roliga resultatet på lysdioderna som är inkopplade på samm sätt. En gammal teletype kan möjligen tillåtas också. Har man inga dylika switchar, får man väl bygga till! .) ( Kommentar i text 358 av David Andersson <5201> ) ( Kommentar i text 359 av Kjell Enblom <5575> ) ( Kommentar i text 361 av Curt Rehnborg <1121> ) ( Kommentar i text 375 av Kent Ivarsson <612> ) ( Text 355 ) ( Text 356 ) 1986-08-12 02.31.12 Arne Hartelius SYSOP <2731> Mottagare: Z80 Kommentar till text: 354 av Jinge Flücht <6744> Ärende: Kurs Z80-assembler När du skriver att 'Bit för Bit har väl alla' så förutsätter du att exemple ska anpassas för 800:an. Jag är lika intresserad som du av att nån sorts 'kurs' dras igång, men inte om 800-innehav förutsätts. ( Kommentar i text 367 av Jinge Flücht <6744> ) ( Text 356 ) ( Text 357 ) 1986-08-12 03.20.59 David Andersson <5201> Mottagare: Z80 Kommentar till text: 354 av Jinge Flücht <6744> Ärende: Kurs. Bra idé med en kurs. Jag kan ställa upp som någon slags deltidslärare (kommer inte att köra MSG så ofta). För att inte lasta ner mötet onödigt mycket kan vi ju göra så att längre texter med övningsuppgifter,facit,program- listningar och sådant läggs i ett biblotek i programbanken. T ex TEXT/ASMKURS kunde det heta. (Vänta med att skapa bibloteket tills namnet och behovet är mera utrett) Till sist: 63 binärt är inte riktigt 11111100 det är snarare 00111111. (högsta signifikanta siffran till vänster och minst signifikanta (ental) till höger, precis som vid decimaltal) I assembly kan man skriva 63 på olika sätt. Sista bokstaven anger vilket talsystem som används, default är decimalt. SEXTITRE EQU 63D ;decimalt SEXTITRE EQU 63 ;också decimalt SEXTITRE EQU 00111111B ;binärt SEXTITRE EQU 3FH ;hexadecimalt SEXTITRE EQU 077o ;oktalt, används nästan aldrig, (även 077Q) ( Kommentar i text 368 av Jinge Flücht <6744> ) ( Text 357 ) ( Text 358 ) 1986-08-12 03.46.15 David Andersson <5201> Mottagare: Z80 Kommentar till text: 355 av Kristoffer Eriksson SYSOP <5357> Ärende: Hand-assemblera Det ligger nånting i det. Om man alltid litar till en assemblator och aldrig har hand-assemblerat så kan man nog inte förstå hur det fungerar, egentligen. Man kan ju öva sig med att hand-assemblera ett program. Följande övningsexempel är en bra början, möjligtvis lite för enkel: START EQU xxxxx ;ledigt minne i datorn ORG START ;där börjar vårt program RET ;vårt program, bara en instruktion! END ;slut på filen Värdet på xxxxx borde kunna vara 49152 på ABC800 och 65408 på ABC80. Den första raden gör att assemblern (du) vet vad labeln START ska ha för värde. Den andra raden (ORG START) gör att assembler vet på vilken adress efterföljande program ska ligga. I detta fall blir det adress xxxxx. Den 4:e raden (END) talar om att filen är slut så att assemblern (du) inte försöker läsa förbi filslut (som ger ERR 34). Den enda instruktion i detta program som så att säga blir nånting är RET. Och den betyder RETURN. Om brogrammet anropas som en subrutin med CALL så gör den ingenting, den gör bara RETURN. När du laddat detta program ska alltså maskininstruktionen RET (som är en byte stor) ligga på adressen xxxxx. Lämpligen laddas programmet på en ABC-maskin med kommandot POKE xxxxx,instruktionskod Sedan testkör man programmet med kommandot Z=CALL(xxxxx) Om inget händer så fungerar programmet. Blir det reset eller nåt annat lustigt så får man försöka igen. ( Kommentar i text 366 av Lennart Bratt <5850> ) ( Text 358 ) ( Text 359 ) 1986-08-12 03.53.59 Kjell Enblom <5575> Mottagare: Z80 Kommentar till text: 355 av Kristoffer Eriksson SYSOP <5357> Ärende: Z80 Det där med att handassemblera program och sedan mata in dem genom att ställa vippomkopplare, gjorde jag en gång i tiden för ca 2 år sedan på ASEA. CPUn i dator var uppbyggd av TTL kretsar och minnet bestod av ett kärnminne. Programmen var testprogram för att testa diskstationer som ASEA reparerade och rengjorde. ( Text 359 ) ( Text 360 ) 1986-08-12 16.18.03 Curt Rehnborg <1121> Mottagare: Z80 Kommentar till text: 354 av Jinge Flücht <6744> Ärende: Kurs. Undertecknad som är BASIC-programmerare blir gärna elev för att lära även ASSEMBLER, sedan kan vi fortsätta med C, det verkar inte heller att vara något språk, utan en spridd samling tecken .... ( Text 360 ) ( Text 361 ) 1986-08-12 16.19.36 Curt Rehnborg <1121> Mottagare: Z80 Kommentar till text: 355 av Kristoffer Eriksson SYSOP <5357> Ärende: Z80 Duuuuu, ta det luuugnt .... ( Text 361 ) ( Text 362 ) 1986-08-12 17.17.30 Gunnar Forssell <1631> Mottagare: Z80 Kommentar till text: 344 av Per Holmgren <5213> Ärende: Z80000 och Z8000 Norrstigen 42 181 31 Lidingö ( Text 362 ) ( Text 363 ) 1986-08-12 17.57.10 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 337 av Jinge Flücht <6744> Ärende: Kurs Tja jag kan väl ställa upp och hjälpa till med uppläggningen kursen det största problemet är kanske att många är på olika nivå, då gäller det verkligen att ställa upp även på de saker man redan kan. Vi kan utgå från Zaks + diverse tillägg. Vi bör innan vi går in på själva Z80 programmering attackera en del grundläggande kunskap inom binär aritmetik och logik, vi bör dessutom gå en bit på digitalelektronik sidan för att förstå hur CPU:n jobbar tillsammans med övriga kretsar. Jag skall försöka skriva ihop en studieplan, skall kolla på några gamla för ett par kurser i Z80-assembler som jag har haft. Är det OK, om vi startar på måndag nästa vecka ? Hur många är vi ? Har alla Zaks bok ? ( Kommentar i text 369 av Jörgen Hansen <5844> ) ( Kommentar i text 371 av Jinge Flücht <6744> ) ( Kommentar i text 386 av Jaan Tombach <4283> ) ( Text 363 ) ( Text 364 ) 1986-08-12 17.58.35 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 338 av Jinge Flücht <6744> Ärende: Rodnay Zaks 'Programmera Z80'' FACIT finns inte, dock tycker jag att priset 390:- är dyrt, skall se vad jag kan göra men över 250:- skall man väl inte betala ?? ( Text 364 ) ( Text 365 ) 1986-08-12 18.00.00 Stefan Berg <216> Mottagare: Z80 Kommentar till text: 353 av Jinge Flücht <6744> Ärende: Kurs. Kulturskymning! 257 = 100000001. Du har klämt till med 65344, tycker jag det ser ut som. /Biten av maskinkod? ( Text 365 ) ( Text 366 ) 1986-08-12 18.02.36 Lennart Bratt <5850> Mottagare: Z80 Kommentar till text: 358 av David Andersson <5201> Ärende: Hand-assemblera Fantastiskt ! Detta var första gången jag överhuvudtaget har fattat hur det fungerar. Tänk om den ev. kursen kunde hållas på den här nivån (i början) då skulle t.o.m jag min arme krake faktiskt försöka att verkligen lara mig detta. På tal om lärare visar inte detta inlägg (358) på en synnerligen lämplig sådan ! Ps / Jag fick faktiskt snutten att fungera,bra för självförtroendet /ds ( Text 366 ) ( Text 367 ) 1986-08-12 20.04.03 Jinge Flücht <6744> Mottagare: Z80 Kommentar till text: 356 av Arne Hartelius SYSOP <2731> Ärende: Kurs Z80-assembler Nejdå Arne! Visst skall det gälla 80:or oxo. Tänkte kort bara. Men vet inte heller vad 80:ans motsvarighet till Bit för Bit är. mvh / Jinge ( Kommentar i text 379 av Arne Hartelius SYSOP <2731> ) ( Text 367 ) ( Text 368 ) 1986-08-12 20.11.47 Jinge Flücht <6744> Mottagare: Z80 Kommentar till text: 357 av David Andersson <5201> Ärende: AHA ! 0011111111 = 63 Men är jag försökte omvandla 19 till binärkod så blev det: 00010011 Men är jag skulle gå andra vägen så blev det: 19:2=8 rest 1 ->1 8:2=4 rest 4 ->1 4:2=2 rest 0 osv... Det blir ju 00000011 ?? mvh / Jinge ( Kommentar i text 370 av Harald Nautsch <4479> ) ( Kommentar i text 382 av Peter Öhlén <4659> ) ( Kommentar i text 385 av Kristoffer Eriksson SYSOP <5357> ) ( Text 368 ) ( Text 369 ) 1986-08-12 20.15.08 Jörgen Hansen <5844> Mottagare: Z80 Kommentar till text: 363 av Mikael Lidén <5651> Ärende: Kurs För mig är det OK med start på måndag. Då skall jag köpa Zaks bok innan dess. Tja, vi är väl 4-5 elever nu och säkert ännu fler som inte har hört av sig ännu... ( Kommentar i text 373 av Mikael Lidén <5651> ) ( Text 369 ) ( Text 370 ) 1986-08-12 20.15.54 Harald Nautsch <4479> Mottagare: Z80 Kommentar till text: 368 av Jinge Flücht <6744> Ärende: AHA ! Det var ett mystiskt sätt att omvandla på. Var har du fått det ifrån? ( Text 370 ) ( Text 371 ) 1986-08-12 20.20.28 Jinge Flücht <6744> Mottagare: Z80 Kommentar till text: 363 av Mikael Lidén <5651> Ärende: Kurs Jag är med och har Zaks! Men som någon föreslog ; borde vi inte lägga in tex en lektion med vissa övningsuppgifter som en textfil ?? Sen kan vi ju fråga och kommentera i mötet. Måndag är ok för mig. Oxo uppläggningen av en genomgång av de grundläggande begreppen. Som synes av tidigare inlägg av mig så är det lite klent med den logiska förmågan... (Fungerar annars hyfsat, tror jag... :-) Men jag har kommit på att 256 måste vara två bytes som ser ut: 11111111 00000001 (Är det inte så då är det nog ingen idé med nån kurs för min del... :-) mvh / Jinge ( Kommentar i text 376 av Mikael Lidén <5651> ) ( Kommentar i text 392 av Kristoffer Eriksson SYSOP <5357> ) ( Text 371 ) ( Text 372 ) 1986-08-12 20.23.57 Jinge Flücht <6744> Mottagare: Z80 Ärende: Fritt Borde vi kanske berätta om våra planer i Fritt för att locka fler deltagare ? mvh / Jinge ( Text 372 ) ( Text 373 ) 1986-08-12 20.25.51 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 369 av Jörgen Hansen <5844> Ärende: Kurs Är det ok att börjar med binär aritmetik, dvs lära oss att behärska det binära talsystemet och vissa logiska funktioner ? Man önskar att man kunde rita & beskriva i MSG. ( Kommentar i text 374 av Jörgen Hansen <5844> ) ( Text 373 ) ( Text 374 ) 1986-08-12 20.38.24 Jörgen Hansen <5844> Mottagare: Z80 Kommentar till text: 373 av Mikael Lidén <5651> Ärende: Kurs För mig är det OK. Finns det inget prog där endast en datafil behövs? TÄnkt mig liksom ifall du behövde rita och beskriva så kunde du skicka in datafilen och hänvisa till den i kursen, så kan vi ladda in den och studera den i lugn och ro hemma... Om nu proget i fråga skall vara för ABC80 eller 80X spelar ingen roll för mig personligen. Jag har ABC80 och 806. ( Text 374 ) ( Text 375 ) 1986-08-12 20.41.16 Kent Ivarsson <612> Mottagare: Z80 Kommentar till text: 355 av Kristoffer Eriksson SYSOP <5357> Ärende: Z80 Dessutom är det fusk med Z80 och dylika nya CPUér en gammal DIGITAL PDP 8 ( har färdiga "vippomkopplare" och lampor "inte lysdioder" ) 12 bitars ordlängd, kärnminne osv osv *det är grejor* ( Text 375 ) ( Text 376 ) 1986-08-12 21.08.05 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 371 av Jinge Flücht <6744> Liten lektion i binära talsystemet Vanligtvis kan vi ta våra fingrar och räkna dem 1,2,3,4...9,10 antag att vi börjar räkna på noll dvs vi får 0,1,2,3,4...8,9 då får vi fram alla de olika siffror vi brukar använda, de är tio stycken (deci=10). Hur bär vi oss åt om vi vill räkna längre än till 10, tja vi kan ta till tårna också, men det räcker bara till 20, om vi tittar romarna så hade de olika tecken som betydde olika mycket tex I=1, V=5, X=10, tex är VI=6, de använde sig av vad man kan kalla för något av ett symbol system för att representera tal (vi använder iofs också symboler), som var tämligen svårt att hantera tänk bara på att dra roten ur XII. Vi använder oss av ett positionssystem där varje position kan innehålla 10 olika symboler (0,1,2,3,4,5,6,7,8,9), antag att vi har talet nio (9) och lägger till ett (1) då får vi talet 10 som består av två symboler på olika positioner där den en symbol till vänster om en annan symbol är värd 10 gånger mer än den till höger (lika många gånger som antalet symboler). Tag talet 6534 = 6*1000 + 5*100 + 3*10 + 4. I det binära talsystemet har vi bara tillgång till två olika symboler 0 och 1, det binära talsystemet är också ett positionssystem. Vi har ett binärt tal som ser ut på följande sätt 1010 vad har det för motsvarighet i vårt vanliga decimalatalsystem ? Decimalt Binärt 0 0 ; Enkelt det ser likadant ut 1 1 ; -"- 2 10 ; Men vad händer nu ?, vi kan inte räkna ; längre än till 1 med binära siffror så ; vi måste ta en position till i anspråk. 3 11 ; Logiskt enligt ovan eller hur ? 4 100 ; 11+1 måste bli 100 eller hur ? 5 101 6 110 7 111 Vad blir '101' + '101' ? 101 101 ========== 1010 1+1=0 och en etta i minne dvs nästa kolumn 1+0+0=1, (man går från vänster-höger) 1+1=0 och nästa 0+0+1=1 svar 1010. Då vi enligt ovan vet att 101 är 5 så vet vi att '101' + '101' bör bli 10 (=5+5) kontroll: Vi vet att den högersta binära siffran kan vara värd antingen 0 el. 1 och vi vet att en siffra till vänster om en är värd (antalet symboler i talsystemet) * (den högra siffrans värde), då vet vi att den näst högersta kan vara värd antingen 0 el. 2, och den tredje från höger kan vara värd 0 el. 4 och den 4:e 0 el. 8 För att underlätta förståelsen om vilken position vi talar om så numrerar vi dem från höger med Nr: 0 på den högersta positionen, vi kan även kalla en position i det binäratalsystemet för bit. Vilka två värden i det decimalatalsystemet kan bit 2 anta ? - bit 2 = den 3 positionen från höger alltså 0 el. 4. För att återgå till 1010 1*8 + 0*4 + 1*2 + 0*1 = 10 det stämmer ! Vad är då det här talet decimalt 101001 ? jo det är 1*32 + 0*16 + 1*8 + 0*4 + 0*2 + 0*1 = 41 Vad är det här för ett tal 11111111 ? - Svar 255. Här får du själv fundera ut hur vi kom fram till svaret. Vad händer om vi lägger till 1 till talet ovan ? 11111111 00000001 ============== 100000000 (=256) Nu ska vi lära oss lite om tal skrivna i potensform ! 5 Talet 10 = 10*10*10*10*10 = 100 000. Den lilla 5:an ovanför 10 betyder att talet 10 skall multipliceras med sig självt 5 gånger. exp bas bas är det tal som skall multiplicera sig självt exp gånger (exponent). 4 Vad är 2 ? Jo 2*2*2*2=16. Vad är bit 5 värd ? - Den kan vara värd 0 el 2*2*2*2*2. Nu kan den som har hängt med klura ut varför man numrerar positionerna ( Kommentar i text 377 av Mikael Lidén <5651> ) ( Text 376 ) ( Text 377 ) 1986-08-12 21.09.22 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 376 av Mikael Lidén <5651> Liten lektion i binära talsystemet (bitarna) från noll och inte från ett. Kom med svar här i mötet. ( Kommentar i text 378 av Mikael Lidén <5651> ) ( Text 377 ) ( Text 378 ) 1986-08-12 21.11.22 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 377 av Mikael Lidén <5651> Liten lektion i binära talsystemet Hoppas att det jag har skrivit reder ut det hela lite, det är inte speciellt strukturerat (skrivet on-line), i fortsättning skall jag komma mde lite mer genomtänkta "lektioner", men först som sagt så skall jag fixa en kursplan. Mikael ( Kommentar i text 380 av Jinge Flücht <6744> ) ( Text 378 ) ( Text 379 ) 1986-08-12 21.45.20 Arne Hartelius SYSOP <2731> Mottagare: Z80 Kommentar till text: 367 av Jinge Flücht <6744> Ärende: Kurs Z80-assembler Mostsvarigheten heter 'Disassemblering av programvaran i ABC80', även känd som Rapport 1, utgiven av ABC-Klubben. Det går nog att komma förbi de flesta problemen genom att använda sig av Lablar typ Utskrift, Getline osv och en gång för alla redovisa vilka olika adresser dessa har i de olika maskinerna. ( Kommentar i text 390 av Bo Kullmar SYSOP <1789> ) ( Text 379 ) ( Text 380 ) 1986-08-12 21.47.20 Jinge Flücht <6744> Mottagare: Z80 Kommentar till text: 378 av Mikael Lidén <5651> Liten lektion i binära talsystemet Ja det var lite svåröverskådligt. Jag har just börjat med två- komplement. Nu förstår jag lite bättre. Men jag tycker inte att något är självklart... Enligt den tabellen är 11111111 (-1). Men jag tror att jag har mest nytta av att gå igenom Zaks 3-4 gånger i detta avsnitt... Men som ngn sade, en textfil med förklaring / lektion vore inte så dumt. Och nu har Bo "annonserat" i nyhetsmötet oxo så det kan nog bli några stycken deltagare. Jag tar tillbaka allt vad jag skrivit om binär kod... :-) mvh / Jinge ( Text 380 ) ( Text 381 ) 1986-08-12 22.00.51 Anders Franzén <5258> Mottagare: Z80 Ärende: kursen När man har lärt sig de grundläggande instruktionerna i assembler så blir antagligen behovet av att känna till den dator man jobbar med stort. Ett program behöver ju kommunicera med yttervärlden för att hämta och lämna data. Filhantering, användande av bildskärmen, ljud, tangentbordet, V24-porten mm är saker som man kanske vill använda. Tyvärr funkar dessa prylar lite olika på ABC80 och ABC80x så kanske måste man specialisera sig. Det är mycket praktiskt att anropa färdiga rutiner i BASIC-tolken för att åstadkomma vissa saker. Det finns olika checksummor för ABC80 men det kan man lätt komma över. Jag vet inte ett dyft om ABC80x, som ni vet, men är det någon som undrar över hur man mjukvarumässigt utnyttjar ovanstående beskrivna saker på en ABC80 så kan jag försöka svara här i MSG. Det blir mitt strå till kursen. När det gäller programmeringsmetoder och instruktioner osv så har väl eliten på dessa områden redan hostat till i tidigare inlägg. ( Kommentar i text 389 av David Andersson <5201> ) ( Text 381 ) ( Text 382 ) 1986-08-12 22.56.50 Peter Öhlén <4659> Mottagare: Z80 Kommentar till text: 368 av Jinge Flücht <6744> Ärende: AHA ! Följande program omvandlar från decimalt till binärt: 10 ;'Decimalt'; : input d 20 x=128 30 ;'76543210' 40 if d>=x ;'1'; : d=d-x else ;'0'; 50 x=x/2 60 if x>=1 then 40 70 goto 10 ( Kommentar i text 415 av Kristoffer Eriksson SYSOP <5357> ) ( Text 382 ) ( Text 383 ) 1986-08-13 00.36.26 Mikael Hovmöller <4688> Mottagare: Z80 Ärende: Kursen/Sammanfattning Lärare: Peter Öhlén <4659> David Andersson <5201> Mikael Lidén Jag <4688> Elever (hittils): Jinge Flücht <6744> Jörgen Hansen <5844> Stefan de Luca <2088> Curt Rehnborg <1121> Lennart Bratt (Det blir nog fler efter texten i Nyheter!) Utrustning: Zaks bok Assemblator (80: Scandia Metrics (nu släppt!) ASMZ (finns egentligen inte...) ASS (32k, finns i banken Den klubben har. (Vilken?) ) (800:ASMZ Assembler II Har klubben nån? ) 'Maskinbok' (80: Disassemblern, 100kr från klubben) (800:Bit för Bit med 800 (från återförsäljare)) Det är nog allt som behövs. Observera att vissa assemblatorer kräver 'kringfiler'! SM's kräver tex en laddare. Alla borde prova följande program, och säkert få det att funka: WRTLINE EQU 11 ORG xxxx START LD HL,TEXT LD BC,STOP-TEXT CALL WRTLINE RET TEXT DEFM 'Hurra!!!' STOP ; END (Vad proget gör är en senare fråga, jag vill bara att alla ska få igång sin assemblator.) Detta program är tänkt att funka på alla assemblatorer, vilket gör att flera kräver div ändringar. Tex kräver ASMZ en rad som deklarerar vilken typ av kod det är som används. (Någon med AMSZ får förklara) Jag tror dessutom inte att klubbens assemblator klarar 'STOP-TEXT', byt då till '8'! (LD BC,8). Om det inte går: prova, det MÅSTE man! (Jag hoppas att proget funkar, skrev det online...) Slutligen kanske en god portion tålamod behövs... Sen vill jag bara tillägga att jag deltagit i en liknande cirkel i FORTH i CT, och lärde mig hyfsat ända tills läraren slutade för att jobba med freden istället... M.v.h. Micke ( Kommentar i text 384 av Mikael Hovmöller <4688> ) ( Kommentar i text 388 av David Andersson <5201> ) ( Kommentar i text 393 av Kristoffer Eriksson SYSOP <5357> ) ( Kommentar i text 442 av Curt Sederlin <1188> ) ( Text 383 ) ( Text 384 ) 1986-08-13 00.39.47 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 383 av Mikael Hovmöller <4688> Ärende: Kursen/Sammanfattning Medlemsnumren: Mikael Lidén <5651> Lennart Bratt <5850> Sist: att bestämma formerna för kursen direkt inbillar jag mig är dumt! Låt istället tiden utvisa! (Dvs vänta i någon lektion och bestäm sen!) M.v.h. Micke ( Kommentar i text 394 av Mikael Lidén <5651> ) ( Text 384 ) ( Text 385 ) 1986-08-13 00.55.58 Kristoffer Eriksson SYSOP <5357> Mottagare: Z80 Kommentar till text: 368 av Jinge Flücht <6744> Ärende: AHA ! Du glömde ju att dividera med 16! Du måste börja med den största tvåpotens som går in i ditt tal. Det duger inte att börja var som hellst. Memorera nu den här listan: 1 - 2 - 4 - 8 - 16 - 32 - 64 - 128 - 256 - 512 - 1024 - 2048 - 4096 - - 8192 - 16384 - 32768 - 65536 - 131072 - 262144 - 524288 - 1048576 så klarar du dig upp till 1M (t ex 1MB) i alla fall. Sen får du fortsätta en bit till när du får DS90:n, för den kan du väl inte ha mindre än 2MB i, och du vill väl kunna adressera alla bytes? Har ni för övrigt lagt märke till en liten kuriositet, som även är bra för minnet: 2**1 = 1 2**10 ca= 1000 (1024, eller 1K) 2**20 ca= 1E+6 (1048576, eller 1M) 2**30 ca= 1E+9 (1073741824, eller 1G) 2**40 ca= 1E+12 (1099511627776, eller 1T(?)) ( Kommentar i text 387 av David Andersson <5201> ) ( Text 385 ) ( Text 386 ) 1986-08-13 01.26.55 Jaan Tombach <4283> Mottagare: Z80 Kommentar till text: 363 av Mikael Lidén <5651> Ärende: Kurs För mig är det oxo OK på måndag. Blir spännande att se hur det kommer att fungera. Mvh Janne ( Text 386 ) ( Text 387 ) 1986-08-13 04.12.22 David Andersson <5201> Mottagare: Z80 Kommentar till text: 385 av Kristoffer Eriksson SYSOP <5357> Ärende: Talsystem Jag tycker inte man ska behöva lära sig så många binära exponenter utantill. Själv har jag bara lärt mig dem upp till 4096 ungefär. (Du kan dem inte själv, 2**1 = 2 ,inte 1) 2Ü0 = 1 2Ü1 = 2 2Ü2 = 4 2Ü3 = 8 2Ü4 = 16 2Ü5 = 32 2Ü6 = 64 2Ü7 = 128 2Ü8 = 256 Och så bör man veta att 1K = 1024. Det är de här värdena som är viktiga i assembler-sammanhang. Om man kan ungefär vartannat värde så kan man lätt räkna ut mellanliggande värden om det skulle behövas. ( Kommentar i text 391 av Kristoffer Eriksson SYSOP <5357> ) ( Text 387 ) ( Text 388 ) 1986-08-13 04.19.24 David Andersson <5201> Mottagare: Z80 Kommentar till text: 383 av Mikael Hovmöller <4688> Ärende: Kursen/Assemblatorer Om man anger en switch Z till ASMZ så behöver man inte ha direktivet ZPROG i början av källkodsfilen. Exempel. ASMZ,Z TEST.ASM Om de som har ASMZ använder den switchen så kan källkoderna skrivas i standard Zilog-mnemonic. (Borde vara så iallafall). Har inte klubben flera assemblatorer, så att vi kan välja en som verkligen klarar en sats av typen LD BC,TEXT-STOP ? ( Kommentar i text 400 av Mikael Hovmöller <4688> ) ( Text 388 ) ( Text 389 ) 1986-08-13 04.33.12 David Andersson <5201> Mottagare: Z80 Kommentar till text: 381 av Anders Franzén <5258> Ärende: kursen/skillnader 80 - 800 En del viktiga rutiner i tolken har som väl är samma adress i ABC80 och ABC80x. Det gäller utskrift på skärmen samt input och get från tangentbordet och troligtvis felutskrifter och grundläggande filhantering. (Det kan nog gå så långt att eleverna kan utveckla var sin C-kompilator i assembler utan att skillnaden mellan maskinerna ska behöva märkas. :-) Ett problem bara, finns det någon bra poke-area i ABC80x ? ( Kommentar i text 414 av Kristoffer Eriksson SYSOP <5357> ) ( Text 389 ) ( Text 390 ) 1986-08-13 07.33.15 Bo Kullmar SYSOP <1789> Mottagare: Z80 Kommentar till text: 379 av Arne Hartelius SYSOP <2731> Ärende: Bit för Bit med ABC80 Jag måste protestera mot att du tycker att 'Bit för Bit' är 800:ans motsvarighet till 'Disassemblering av programvaran i ABC80! 'Bit för Bit' är ingen disassemblering, men en sådan för ABC800 har Blackebergs Dataförening givit ut en gång som bekant. Jag vet inte om man alls kan säga att den finns en motsvarighet för 'Bit för Bit' för ABC80. Finns det en sådan motsvarighet så skulle jag säga att det är boken "Avancerad programmering på ABC80". (Förlag Studentlitteratur, förattare Anders Isaksson, Örjan Kärrsgård 1980. ISBN 91-44-17451-9.) ( Kommentar i text 395 av Mikael Lidén <5651> ) ( Text 390 ) ( Text 391 ) 1986-08-13 11.25.48 Kristoffer Eriksson SYSOP <5357> Mottagare: Z80 Kommentar till text: 387 av David Andersson <5201> Ärende: Talsystem Sjutton också... Jag menade förstås att 2**0 = 1, annars passar det ju inte in i serien. Numera kan jag upp till 65536 utantill, och det beror enbart på innötning genom ideligt användande. Min kommentar om att Jinge inte delat med 16, är helt åt skogen ser jag efter en riktig genomläsning. Jag ser också hur det egentligen ska vara: 19:2 = 9 rest 1 (inte 8, hur räknar du Jinge?) 9:2 = 4 rest 1 4:2 = 2 rest 0 2:2 = 1 rest 0 1:2 = 0 rest 1 Som frmgår av högerspalten blir 19 binärt 10011 (läst nedifrån). Det hela kan även skrivas som 19 = ((((0 + 1) * 2 + 0) * 2 + 0) * 2 + 1) * 2 + 1 binärt 1 0 0 1 1 Det här är ett sätt att slippa kunna 2-potenserna. ( Kommentar i text 401 av Mikael Hovmöller <4688> ) ( Text 391 ) ( Text 392 ) 1986-08-13 11.27.42 Kristoffer Eriksson SYSOP <5357> Mottagare: Z80 Kommentar till text: 371 av Jinge Flücht <6744> Ärende: Kurs 11111111 00000001 (binärt) = 65281 (decimalt) eller -255 med 2-komplement. Försök igen. 256 binärt är ganska enkelt... ( Text 392 ) ( Text 393 ) 1986-08-13 11.31.13 Kristoffer Eriksson SYSOP <5357> Mottagare: Z80 Kommentar till text: 383 av Mikael Hovmöller <4688> Ärende: Kursen/Sammanfattning För ABC800 finns den enkla kompilaton ABC800/ASM/ASSEMBLE.BAS. Jag tror inte den klarar uttyck som STOP-TEXT. För nybörjarna bör man nog klargöra att uttrycket STOP-TEXT beräknas omedelbart av kompilatorn innan resultatet kompileras in i det färdiga programmet, och inte på något sätt beräknas vid exekveringen av detsamma. Det brukar kunna åstadkomma en del förvirring... ( Text 393 ) ( Text 394 ) 1986-08-13 11.35.26 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 384 av Mikael Hovmöller <4688> Ärende: Kursen/Sammanfattning En studieplan bör skrivas ganska direkt, skall försöka få ihop ett förslag så fort som möjligt, det behövs då det är viktigt att alla läser samma sak samtidigt, samt att man vet vad nästa steg är. ( Kommentar i text 402 av Mikael Hovmöller <4688> ) ( Text 394 ) ( Text 395 ) 1986-08-13 11.40.01 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 390 av Bo Kullmar SYSOP <1789> Ärende: Avancerad programmering på ABC80 Om någon är ibehov av den boken så har jag ett antal överblivna ex till salu - priset meddelas personligen via brev. ( Text 395 ) ( Text 396 ) 1986-08-13 13.09.55 L-G Göransson SYSOP <495> Mottagare: Z80 Kommentar till text: 326 av Mikael Hovmöller <4688> Ärende: Okunnig Det fins flera till fällen. Ett exempel är om jag vill sätta flaggorna till ett specifikt värde (det kan göras genom att pusha ett annat reg och sedan göra pop på AF). Användbart i en debugger till exempel. M.v.h. L-G ( Text 396 ) ( Text 397 ) 1986-08-13 13.13.46 L-G Göransson SYSOP <495> Mottagare: Z80 Kommentar till text: 327 av Jinge Flücht <6744> Ärende: Asmz Läs asmz manulalen nogrant ZPROG & PROG fins nämligen bara i den. Om man kör i interdata mod så fins det mycket bra instruktioner för att hantera modulär program skrivning. För sök att komma över manualen för 4680 där fins interdata mod beskrivet. En del funktioner som page eject osv. ser lite anorlunda ut än i standard ZILOG asambler. M.v.h. L-G ( Text 397 ) ( Text 398 ) 1986-08-13 13.17.08 L-G Göransson SYSOP <495> Mottagare: Z80 Kommentar till text: 332 av Stefan de Luca <2088> Ärende: Kurs. Jag kan täka mig att ställa upp som cirkel ledare. Även om vi sköter det hela vi msg så vore det vettigt att träffas varannan eller var tredje vecka för att få ställa frågor anskite mot ansikte. Jag kommer dock inte att orka driva en kurs i igentlig mening men svara gärna på frågor. M.v.h. L-G ( Kommentar i text 399 av Kent Berggren SYSOP <6019> ) ( Text 398 ) ( Text 399 ) 1986-08-13 13.35.48 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 398 av L-G Göransson SYSOP <495> Ärende: Kurs. Om ni skall vara i lokalen i Stockholm kan ni inte ta vilken måndag som hälst efter som både progred och styrelsen har den på måndagar. Fast det voru ju lämpligt att ha den i lokalen i Alvik. Kolla oxo med Stockholmavdelningen. Det är Riksföreningslokal har jag för mig så allt skall väll vara okey vad jag kan se. ( Kommentar i text 403 av Mikael Hovmöller <4688> ) ( Text 399 ) ( Text 400 ) 1986-08-13 15.55.12 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 388 av David Andersson <5201> Ärende: Kursen/Assemblatorer Vet att Scandia Metrics riktiga nu är släppt till klubben. Jag tror dock inte att den finns i banken. Den har tre fördelar: 1. Den klarar 16k. 2. Den klarar tex 'TEXT-STOP' 3. Den klarar många lablar. Dessa tre krav är den ensam om, tror jag. Däremot klarar den inte tex 'DEFM 128,"HJÄLP"' (i STRSCAN-tabell mm). Torde vara enda nackdelen i små till halvstora program. Tyvärr lite långsam i stora program. M.v.h. Micke ( Kommentar i text 405 av Kent Berggren SYSOP <6019> ) ( Text 400 ) ( Text 401 ) 1986-08-13 15.58.12 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 391 av Kristoffer Eriksson SYSOP <5357> Ärende: Talsystem Övning ett för kursdeltagare: lär er '1 2 4 8 16 32 64 128 256 512 1024' HELT utantill! Kan man inte fortsätta gör det inte så mycket... M.v.h. Micke ( Text 401 ) ( Text 402 ) 1986-08-13 16.01.09 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 394 av Mikael Lidén <5651> Ärende: Kursen/Sammanfattning Hmm, jag skilde inte på 'studieplan' och 'utlärningssätt' tillräckligt. Vad jag menar är att exakt hur inlärningen ska gå till, dvs om det ska ske med brev, här, i inlådan, etc, DET kan framtiden utvisa! Däremot behövs naturligtvis en studieplan innan man sätter igång! M.v.h. Micke ( Text 402 ) ( Text 403 ) 1986-08-13 16.05.08 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 399 av Kent Berggren SYSOP <6019> Ärende: Kurs. Måndag??? På måndagar är det Progredmöten (varannan) och Styrelsemöten (varannan). Dessutom är ABC-Stockholm där på tisdagar (är det inte det du menar?). Slutligen har ABC-Stockholm styrelsemöten vissa onsdagar. Är inte helger bäst? Varannan helg vore väl lagom? M.v.h. Micke ( Kommentar i text 404 av Mikael Hovmöller <4688> ) ( Kommentar i text 416 av David Andersson <5201> ) ( Text 403 ) ( Text 404 ) 1986-08-13 16.08.47 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 403 av Mikael Hovmöller <4688> Ärende: Kurs. Ursäkta!!! Jag läste ditt inlägg (. en (. liten .) aning .) för fort! Som tur är står det i alla fall rätt i båda inläggen... :-) Är inte Söndagar bäst? M.v.h. Micke Ps. För att inte ta upp plats i detta möte (här skrivs tillräckligt ändå!) gör 'pers' och meddela mig om ni vill bli elever. Sen skriver jag på måndag vilka som anmält sig. Ok? Ds. ( Text 404 ) ( Text 405 ) 1986-08-13 18.01.03 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 400 av Mikael Hovmöller <4688> Ärende: Kursen/Assemblatorer Metric asbler finns kanske i Progred biblioteket. Vill ni ha den till detta enda mål får ni höra med TOM att det är okey att släppa den . Jag har en fri kopia om det fattas någon. Den är reolokerbar. 16 och 32K ( Kommentar i text 409 av Mikael Hovmöller <4688> ) ( Kommentar i text 411 av Gunnar Faith-Ell SYSOP <2733> ) ( Text 405 ) ( Text 406 ) 1986-08-13 20.56.13 Lennart Anderson <6582> Mottagare: Z80 Ärende: Kursen Kursidén låter mycket intressant och jag har taxamt tagit chansen att anmäla mig som deltagare/elev. En liten fundering: Med den planerade uppläggningen som studiecirkel och med en genomtänkt studieplan borde väl finnas möjlighet för klubben att få bidrag. Kanske kan vara idé att höra med ABF eller TBV eller vad de nu heter allihop. Mvh - Lennart PS. Har köpt ZAKS bok för pund 9.95 i London. DS ( Kommentar i text 407 av Mikael Lidén <5651> ) ( Text 406 ) ( Text 407 ) 1986-08-13 21.32.45 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 406 av Lennart Anderson <6582> Ärende: Kursen Det går inte att få bidrag utan formella sammankomster, men annars går det bra, jag har visst någon godkänd studieplan som skrev för ett tag sedan. ( Kommentar i text 408 av Jinge Flücht <6744> ) ( Text 407 ) ( Text 408 ) 1986-08-13 21.43.57 Jinge Flücht <6744> Mottagare: Z80 Kommentar till text: 407 av Mikael Lidén <5651> Ärende: Kursen En del av vitsen med detta var ju att försöka att ta reda på om detta går att genomföra via MSG. Om jag haft tid att gå en kurs hade jag gjort det för länge sedan. Till klubbens system kan jag ringa när -jag- har tid. Inte när det är kursdax !! mvh / Jinge ( Text 408 ) ( Text 409 ) 1986-08-13 22.20.15 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 405 av Kent Berggren SYSOP <6019> Ärende: Kursen/Assemblatorer Relokerbar? BASIC... (En hel del, i alla fall...) Prata med Tom, för 80 med 16k är det enda (realistiska) alternativet. M.v.h. Micke ( Text 409 ) ( Text 410 ) 1986-08-13 22.25.06 Mikael Hovmöller <4688> Mottagare: Z80 Ärende: På förekommen anledning... vill jag bara påpeka att kursen är helt gratis! (Zaks bok etc får man skaffa själv, men annars...) Dessutom har någon påpekat att det vore smart för de som bor ute i lande att samåka. Alltså: är ni elever i landet, skriv till mig (så tar vi inte plats i det redan översvämmde mötet), och meddela var ni bor. Bor någon i närheten, så meddelar jag, så att ni kan komma överens! Nu verkar det som om jag har fått rollen som 'administratör'. Har någon något att invända mot det? Glöm inte att anmäla er! 'Pers'! 9 elever redan... M.v.h. Micke ( Kommentar i text 413 av Kent-Åke Sohlberg <6384> ) ( Kommentar i text 418 av Kent Berggren SYSOP <6019> ) ( Text 410 ) ( Text 411 ) 1986-08-13 22.52.31 Gunnar Faith-Ell SYSOP <2733> Mottagare: Z80 Kommentar till text: 405 av Kent Berggren SYSOP <6019> Ärende: Kursen/Assemblatorer Metrics assembler har gått ut på kassett så den ska ligga i något av kassettbiblioteken. Den heter nog ASM.BAS och läser in ASMCON. Jag har för mig att den var ganska lätt att göra om till ABC800, det var lite input-satser som man måste sära på och lite andra små detaljer. ( Kommentar i text 412 av Mikael Hovmöller <4688> ) ( Text 411 ) ( Text 412 ) 1986-08-13 22.58.29 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 411 av Gunnar Faith-Ell SYSOP <2733> Ärende: Kursen/Assemblatorer Men var det inte Metrics 'riktiga' som var släppt? Klubbens är dassig... Peter: vad heter den jag menar? M.v.h. Micke ( Kommentar i text 419 av Kent Berggren SYSOP <6019> ) ( Text 412 ) ( Text 413 ) 1986-08-13 23.20.13 Kent-Åke Sohlberg <6384> Mottagare: Z80 Kommentar till text: 410 av Mikael Hovmöller <4688> Ärende: På förekommen anledning... Det är bara bra om någon tar på sig rollen som administratör så att vi får igång kursen snart. Fortsätt på det viset Micke M v h Kent-Åke ( Text 413 ) ( Text 414 ) 1986-08-14 01.24.29 Kristoffer Eriksson SYSOP <5357> Mottagare: Z80 Kommentar till text: 389 av David Andersson <5201> Ärende: kursen/skillnader 80 - 800 Som POKE-area kan man använda DOS-buffertarna, eller strängar. Något speciellt utrymme finns inte reserverat. ( Text 414 ) ( Text 415 ) 1986-08-14 01.45.30 Kristoffer Eriksson SYSOP <5357> Mottagare: Z80 Kommentar till text: 382 av Peter Öhlén <4659> Ärende: Talomvandling Detgår att göra lite mer generella talomvandligsrutiner. Lägg även märke till den annorlunda metoden att göra själva omvandlingen. Det är samma som Jinge försökte sig på i ett tidigare inlägg. (Därmed inte sagt att han skulle ha förtjänsten av denna rutin) 20 DEF FNNumber¤(N,Radix) LOCAL Result¤=80 30 ! Formar ett positivt tal i godtycklig bas (Radix) > 1. 40 ! 50 Dig¤="0123456789ABCDEF" ! ... gärna ytterligare siffror 60 WHILE N<>0 70 Result¤=MID¤(Dig¤,MOD(N,Radix)+1,1)+Result¤ 80 N=N/Radix 90 WEND 100 RETURN Result¤ 110 FNEND 120 ! Om N är flyttal bör det vara 80 N=INT(N/Radix) 130 ! MOD(N,Radix) är detsamma som N-INT(N/Radix)*Radix 140 ! 150 DEF FNSnumber¤(N,Radix) 160 ! Formar både positiva och negativa (med tecken) tal i valfri bas. 170 ! 180 IF N<0 THEN RETURN "-"+FNNumber¤(-N,Radix) 190 RETURN FNNumber¤(N,Radix) 200 FNEND 210 ! 220 DEF FNC2number¤(N) 230 ! Formar positiva och negativa tal som binärt tvåkomplement 240 ! 250 Maxnum=32767 260 IF N<0 THEN N=Maxnum+1+N 270 IF N<0 OR N>Maxnum THEN ; "För stort/litet tal." : RETURN "" 280 RETURN FNNumber¤(N,2) 290 FNEND 300 ! Maxnum ska ange någon positiv (2-potens - 1), gärna den största 310 ! Basicen klarar av att hantera som positiv. 320 ! Decimalt 10-komplement åstadkoms lätt med t ex Maxnum=9999, 330 ! och FNNumber¤(N,10). ( Text 415 ) ( Text 416 ) 1986-08-14 04.30.37 David Andersson <5201> Mottagare: Z80 Kommentar till text: 403 av Mikael Hovmöller <4688> Ärende: Kurs. Träffar? Ska vi inte försöka utforma kursen så att deltagande i dessa träffar inte är nödvändigt för att vara med i kursen. Det blir rätt långt att resa för somliga. ( Text 416 ) ( Text 417 ) 1986-08-14 04.39.10 David Andersson <5201> Mottagare: Z80 Ärende: Kursen. Bladet. Om nu kursen använder MSG som medium mellan deltagarna och lärarna så dokumenteras varenda litet problem och de allra trivialaste frågorna har svar i skrift. En genomgång och sammanställning av inläggen (och breven?) borde ge viktig information vad som är svårt att förstå, vad som måste läras ut noggrant, vilka övningar som kan ge bra resultat osv. Det kan sedan bilda underlag till en artikel eller artikelserie i bladet om assemblerprogrammering. ( Text 417 ) ( Text 418 ) 1986-08-14 08.14.04 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 410 av Mikael Hovmöller <4688> Ärende: På förekommen anledning.../böcker Vänta med att skaffa böcker så skall jag kolla om vi kan få ett bra pris på en svensk Z80 bok. Mikael kan skriva i progred och kolla om vi kan få loss ASMbler ABC80 till detta ändamål. Jag kommer inte ihåg om den fanns på Mats lista över "befriade" program. (Orkar inte backa) ( Kommentar i text 420 av Mikael Hovmöller <4688> ) ( Text 418 ) ( Text 419 ) 1986-08-14 08.20.21 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 412 av Mikael Hovmöller <4688> Ärende: Kursen/Assemblatorer Den heter Asmbler II Se inlägg 2535 i progred. De är alltså fri men vi skall bara ha ett tilstånd att använda den. Förslag är att vi lägger ut den på nästa cassette. ( Kommentar i text 421 av Mikael Hovmöller <4688> ) ( Text 419 ) ( Text 420 ) 1986-08-14 09.41.27 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 418 av Kent Berggren SYSOP <6019> Ärende: På förekommen anledning.../böcker Jag kommer ihåg att proget hette 'ASM II' eller 'Assembler II'. Däremot vet jag inte om det är den av mig efterlysta... (Den jag har av SM heter ASM och chainar in ASM1. Hjälper det?) M.v.h. Micke ( Text 420 ) ( Text 421 ) 1986-08-14 09.42.50 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 419 av Kent Berggren SYSOP <6019> Ärende: Kursen/Assemblatorer 'Fri men vi ska ha tillstånd att använda den'? Är den fri eller inte? Lägg den i första hand i banken, alla kursdeltagare har modem! M.v.h. Micke ( Text 421 ) ( Text 422 ) 1986-08-14 19.27.48 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 420 av Mikael Hovmöller <4688> Ärende: Program till ABC80 Jag har aprogrammet men vi får snacka med TOM Jag ringer honom och hör. ( Text 422 ) ( Text 423 ) 1986-08-14 19.28.58 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 421 av Mikael Hovmöller <4688> Ärende: Kursen/Assemblatorer Om det är en Kasasp vill jag höra med TOM först. Lungna dig till imorgon. ( Text 423 ) ( Text 424 ) 1986-08-14 20.58.58 Bo Michaelsson <913> Mottagare: Z80 Kommentar till text: 331 av Mikael Lidén <5651> Ärende: Kurs. Kanske man t o m kan få bidrag till böcker om man vänder sig till ett studieförbund. Problemet är väl i så fall deltagarredovisningen. Detta kan kanske lösas med en fil innehållande deltagarnas inläggstider. ( Kommentar i text 434 av Mikael Lidén <5651> ) ( Text 424 ) ( Text 425 ) 1986-08-14 21.37.22 Bo Michaelsson <913> Mottagare: Z80 Kommentar till text: 417 av David Andersson <5201> Ärende: Kursen. Bladet. En utmärkt tanke. Genom att kursen använder MSG kan man följa sin egen takt och fråga när ens eget problem blir akut. En sammanställd text blir en guldgruva i framtiden. Så har det alltid varit i klubben: Man minns att man har sett en fråga belyst tidigare och letar eller frågar sig fram till de klarläggande inläggen. ( Text 425 ) ( Text 426 ) 1986-08-14 21.52.49 Kristoffer Eriksson SYSOP <5357> Mottagare: Z80 Kommentar till text: 397 av L-G Göransson SYSOP <495> Ärende: Asmz Varför kunde man inte ha kombinerat de bra kompilatordirektiven från interdatamode med Zilog-mnemonic-arna också? Jag gillar Zilogs variant. Jag tycker det är av ganska lite intresse för programmeraren att modi- fiera namnet på en instruktion (LD t ex) beroende på vilken adresserings- metod som används, om det ändå går lätt att avgöra. ( Kommentar i text 432 av L-G Göransson SYSOP <495> ) ( Text 426 ) ( Text 427 ) 1986-08-14 21.55.57 Kristoffer Eriksson SYSOP <5357> Mottagare: Z80 Kommentar till text: 401 av Mikael Hovmöller <4688> Ärende: Talsystem Och efter den övningen, går vi över till det hexaecimala systemet. Då gäller det att lära sig att värdet på siffrorna A, B, C, D, E och F är 10, 11, 12, 13, 14 resp 15. I gengäld kan man reducera talserien till 16-potenserna 1, 16, 256 och 4096. (Att använda en miniräknare med hex-omvandling är förstås diskvalificerande.) ( Text 427 ) ( Text 428 ) 1986-08-14 23.36.04 David Andersson <5201> Mottagare: Z80 Kommentar till text: 420 av Mikael Hovmöller <4688> Ärende: Kursen/Assemblator Assemblern på ABC80 som startas med RUN ASM och chainar till ASM1 tycker jag är bra. Den följer Zilog-standard tillräckligt bra. Den klarar inte länkning av flera moduler, men det blir nog inte nödvändigt med sådant i denna kurs. För kursen är det viktigt att alla har assemblatorer som använder samma källkods-standard. En lista med 'godkända' assemblatorer vore bra att ha, eller också att vi prackar på deltagarna en assembler på cassett el diskett så att alla har samma. Vi kanske ska börja med en kravlista (ej komplett): - Zilog mnemonic. - Den ska tillåta operationerna +,- i uttryck. - Lägesnamn (labels) ska ha minst 6 teckens signifikanta tecken. (Krav på AND,OR i uttryck blir svårt då olika assemblatorer har olika notation för operationerna) ( Kommentar i text 429 av Jörgen Hansen <5844> ) ( Text 428 ) ( Text 429 ) 1986-08-15 00.14.31 Jörgen Hansen <5844> Mottagare: Z80 Kommentar till text: 428 av David Andersson <5201> Ärende: Kursen/Assemblator Vad heter det programmet och finns den i programbanken? Det prog som startas med ASM och gåt ill ASM1 alltså.. ( Kommentar i text 435 av Mikael Hovmöller <4688> ) ( Text 429 ) ( Text 430 ) 1986-08-15 02.25.44 Gunnar Faith-Ell SYSOP <2733> Mottagare: Z80 Kommentar till text: 421 av Mikael Hovmöller <4688> Ärende: Kursen/Assemblatorer Vi bör ha skriftliga tillstånd på fd kommersiell programvara så att det inte kan bli några missförstånd vid utskickandet (typ masken). ( Kommentar i text 436 av Mikael Hovmöller <4688> ) ( Kommentar i text 455 av Robert Svedjehammar <2350> ) ( Text 430 ) ( Text 431 ) 1986-08-15 03.28.54 David Andersson <5201> Mottagare: Z80 Ärende: Kursen Jag har lagt en del filer i INLÅDA/ÖVRIGA. Z80DA.INF är en kort förklaring. Z80BIN.DA1 är inte klar än, vill någon annan lärare ta sig an den eller ta bort den och skriva en ny. Z80HEX.DA1 handlar om hex-tal Z80HANDA.DA1 är mitt inlägg 358 Z80HANDA.DA2 och .DA3 är några andra små exempel som eleven ska poka in och call:a. Nu blir jag borta 2-3 veckor. Någon annan lärare kan väl se till att filerna inte inehåller för mycket fel innan eleverna ger sig an dem. Jag tror att det är viktigt att förstå det binära talsystemet för att rätt tillgodogöra sig texterna jag lagt in. hejdå! ( Text 431 ) ( Text 432 ) 1986-08-15 09.20.52 L-G Göransson SYSOP <495> Mottagare: Z80 Kommentar till text: 426 av Kristoffer Eriksson SYSOP <5357> Ärende: Asmz Därför att den som skrev Zilog mode (som inte fans från början) troligen inte orkade. Jag brukar altid själv skriva kod modulerna i Zilog och data modulerna i Interdata eftersom det är i dessa som man har ströst användning för de kraftulla STRUC och PLC komandona. M.v.h. L-G ( Kommentar i text 465 av Benny Löfgren SYSOP <2615> ) ( Text 432 ) ( Text 433 ) 1986-08-15 13.44.15 Kent Berggren SYSOP <6019> Mottagare: Z80 Ärende: ASM1 Vi har fått det programmet av Skandal metric. Ni kan använda det till kursen. Det ligge i TOM bibliotek. Alla ITH-filer till hör paketet. Även editorn men den tycker jag ni kan glömma. Det är bara att flytta den till ett lämpligt bibliotek. Tuta och kör. ( Kommentar i text 437 av Mikael Hovmöller <4688> ) ( Text 433 ) ( Text 434 ) 1986-08-15 20.12.46 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 424 av Bo Michaelsson <913> Ärende: Kurs. Det går inte att få bidrag om du inte har formella sammankomster där minst 4personer + ledare närvarar i minst två 45 minuters lektioner, dessutom skall studiecirkeln pågå i minst 15 timmar och minst 5 samman- komster, där man får ha max två sammankomster per vecka. Varje sammankomst får vara max 3x45 minuter. Studieplan skall vara godkänd på minst distriktsnivå i studieförbundet. Nya deltagare för inte ansluta sig efter 3:e sammankomsten, ivarje fall inte registreras. ( Text 434 ) ( Text 435 ) 1986-08-16 15.07.24 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 429 av Jörgen Hansen <5844> Ärende: Kursen/Assemblator Det är det Kent och jag diskuterar, och som han frågat Tom om. AsmII tror jag. Frisläppt i dagarna från SM men inte i banken. M.v.h. Micke ( Text 435 ) ( Text 436 ) 1986-08-16 15.08.13 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 430 av Gunnar Faith-Ell SYSOP <2733> Ärende: Kursen/Assemblatorer Masken? Problem? Berätta! M.v.h. Micke ( Text 436 ) ( Text 437 ) 1986-08-16 15.10.43 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 433 av Kent Berggren SYSOP <6019> Ärende: ASM1 Beställning: Någon remoteare med ADM3A: skapa ett ASMKURS-bibliotek och lägg det där. Var man lägger biblioteket spelar egentligen ingen roll. M.v.h. Micke ( Kommentar i text 438 av Bo Kullmar SYSOP <1789> ) ( Text 437 ) ( Text 438 ) 1986-08-16 15.12.15 Bo Kullmar SYSOP <1789> Mottagare: Z80 Kommentar till text: 437 av Mikael Hovmöller <4688> Ärende: ASM1 Jag skapar TEXT/ASMKURS då! (lokalt) ( Text 438 ) ( Text 439 ) 1986-08-16 15.33.31 Mikael Hovmöller <4688> Mottagare: Z80 Ärende: Elever hittils Namn/nr Maskin Jaan Tombach <4283> 800M Per-Eric Sten <6366> ??? Lennart Andersson <6582> 800M Kent-Åke Sohlberg <6384> 806 Jinge Flücht <6744> 802 Jörgen Hansen <5844> 806 Curt Rehnborg <1121> ??? Lennart Bratt <5850> ??? Kjell Svensson <5318> 80 Rainer Grieser <1917> ??? Bo Michaelsson <913> ??? Till er med frågetecken: gör 'pers', och skriv maskin om det inte redan är gjort! Om någon uppgift är felaktig: 'pers' då med! Eftersom det bara är en med 80, så skriver jag i ABC80 och försöker värva! M.v.h. Micke ( Kommentar i text 440 av Arne Hartelius SYSOP <2731> ) ( Text 439 ) ( Text 440 ) 1986-08-16 17.01.46 Arne Hartelius SYSOP <2731> Mottagare: Z80 Kommentar till text: 439 av Mikael Hovmöller <4688> Ärende: Elever hittils Vad är tanken med att anmäla sig till 'kursen' ? Går det inte lika bra att följa den ändå ? Jag tänkte själv spara lektionerna och inläggen på skiva och ta itu med det hela när jag får tid, vilket i och för sig kan bli omedelbart om det fallar sig så. Jag har som bekant ABC80. ( Kommentar i text 444 av Mikael Lidén <5651> ) ( Text 440 ) ( Text 441 ) 1986-08-16 23.50.58 Kent Berggren SYSOP <6019> Mottagare: Z80 Ärende: ASM1.bac Jag har lagt över det programmet till den öppna delen av programbanken. Den finns just nu i TEXT/ASMKURS. Jag vet inte var ni vill ha det men jag flyttar gärna om det. OBS det är ett program till ABC80 som passar till alla minesstorlekar.(reolokerbart)(!!) ( Kommentar i text 443 av Bo Kullmar SYSOP <1789> ) ( Text 441 ) ( Text 442 ) 1986-08-16 23.52.59 Curt Sederlin <1188> Mottagare: Z80 Kommentar till text: 383 av Mikael Hovmöller <4688> Ärende: Kursen/Sammanfattning/ NY elev Deltar gärna som elev M.v.h Curre ( Text 442 ) ( Text 443 ) 1986-08-17 08.53.39 Bo Kullmar SYSOP <1789> Mottagare: Z80 Kommentar till text: 441 av Kent Berggren SYSOP <6019> Ärende: ASM1.bac Du kan länka in en ny kopia någon annan stans, fast det vore bäst om den versionen som ligger i ASMKURS fick annat namn så som pekar på att det är ett program för ABC80. (Man kan i LUX-NET ha flera biblioteknamn på en och samma enhet som pekar på samma fysiska fil.) ( Kommentar i text 445 av Mikael Hovmöller <4688> ) ( Text 443 ) ( Text 444 ) 1986-08-17 11.52.32 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 440 av Arne Hartelius SYSOP <2731> Ärende: Elever hittils Kan vara bra om man skall skicka material, mellan kursdeltagare, inköp av litteratur mm. Så det vore bra om vi kunde få en lista med adress och tele Nr., vi lärare skall också ställa upp med tele Nr. så att elever kan ringa oss och fråga om saker. ( Text 444 ) ( Text 445 ) 1986-08-17 11.55.47 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 443 av Bo Kullmar SYSOP <1789> Ärende: ASM1.bac Framförallt borde ASM också ligga där. Det är det som är proget... M.v.h. Micke ( Text 445 ) ( Text 446 ) 1986-08-17 12.30.38 Mikael Lidén <5651> Mottagare: Z80 Ärende: KURSPLAN Jag kommer här med ett förslag till kursplan för Z80/assembler kursen, det kommer att bli en hel del inledande avsnitt att läsa/bearbeta innan vi börjar programmera på allvar. Jag har tittat lite på det hela och kommit fram till att det är alltid bra att ha en viss hårdvarumässig bakgrund när man börjar programmera i assembler, därför föreslår jag att vi kompleterar kursmaterialet med en svensk bok som heter Mikrodatorns ABC skriven av Gunnar Marksjö, den beskriver hur ABC80 är uppbyggd och fungerar hårdvarumässigt och till viss del mjukvarumässigt, dock innehåller den ett antal grundläggande kapitel som kan vara bra att läsa. Även viss annan referenslitteratur kan vara av värde SGS Technical Reference Manual Z80 Microprocessor Family, där finns beskrivet alla kringkretsar och hur man programmerar dessa PIO, SIO, DART, CTC, DMA och CPU:n, även BIT för BIT med ABC800 och avancerad programmering på ABC80 kan vara aktuella lite längre fram. När det gäller assemblator så är det inte så akut då de 4-5 första avsnitten inte kräver detta och sedan till en början så bör vi hand- assemblera för att greppa det hela på ett bra sätt. Kursplanen gör inte anspråk på att vara komplett utan bara som en upp- delning av kursen i avsnitt, därför har inte målplaner och syfte med varje avsnitt formulerats. Litteratur: Programming the Z80, Mikrodatorns ABC Ref.litt: Z80 Family Technical reference Manual, BIT för BIT med ABC800 Avancerad programmering på ABC80 När det gäller litteratur så skall vi försöka göra samköp för att få den till så bra priser som möjligt (Jag är själv åf. för vissa böcker så att jag skall försöka göra vad jag kan för att få till bra priser). KURSPLAN 1. Talsystem & Binäraritmetik - Lära sig binära,oktala,hexadecimala talsystemet, en-komplement, två-komplement, vissa enkla logiska funktioner - Kapitel 1 i Prog the Z80. 2. Grundläggande inledning till datorns funktion - Kapitel 1 i Mikro. ABC 3. Grundläggande (enkel) digitalteknink/ Elektroniska byggblock - Lära sig enkla grindar & vippor, lite om minnen ROM, RAM, sekvens- kretsar, minnesavkodning, addringskrets (half-adder) - Kapitel 2 i Mikro. ABC 4. Datorns funktion i princip - Lära sig lite mer om hur en dator fungerar, intern funktion hos en CPU. - Kapitel 3 i Mikro. ABC 5. Z80 - CPU hårdvarumässiga uppbyggnad - Lära sig: system arkitektur, register, flaggor, bussar, stack, instruktionscykel, vissa instruktioner, minne och I/O hantering. - Kapitel 2 i Prog the Z80. 6. Exempel på ett komplett system (för trafikljusstyrning), med vissa programmeringsexempel. - Lära sig hur ett mikrodatorsystem kan vara uppbyggt, lära sig hur utveckling av mjukvara går till assemblatorer mm. - Kapitel 4 i Mikro. ABC 7. Grundläggande programmering (enkla rutiner, handassemblering) - Lära sig skriva enkla små assemblerprogram, och handassemblera dessa och köra de på den egna maskinen. - Eget material designat av lärarna. 8. Grundläggande programmering med kännedom om assemblatorer - Lära sig skriva lite större program (ca 20 talet instruktioner), använda sig av assemblatorer. - Eget material från lärarna. 9. Aritmetiska program för multiplikation & division - Lära sig skriva lite större program (ca 50 instruk), skriva enkla program för heltalsmultiplikation och division. - Kapitel 3 i Prog the Z80 10. Z80 - Instruktionsset - Skaffa sig ett grepp om Z80:n instruktionsuppsättning. - Kapitel 4 i Prog the Z80 11. Programexempel I - Mål att lära sig fler instruktioner 12. Programexempel II - Mål att lära sig fler instruktioner 13. Genomgång av instruktion för instruktion - Mål att skummläsa instruktionsuppsättningen och bilda sig en djupare uppfattning om de olika instruktionerna, dvs lära sig ungefär vilka som finns och var. - Prog the Z80 "mittuppslaget" ( Kommentar i text 447 av Mikael Lidén <5651> ) ( Kommentar i text 450 av Peter Öhlén <4659> ) ( Text 446 ) ( Text 447 ) 1986-08-17 12.46.23 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 446 av Mikael Lidén <5651> Ärende: KURSPLAN 14. Adressrings teknik - Lära sig Z80:ns olika adresseringsmetoder - Kapitel 5 i Prog the Z80 15. Genomgång av INPUT/OUTPUT möjligheter - Att få en uppfattning om möjligheterna - Kapitel 6 i Prog the Z80 16. Genomgång av olika kringkretsar i Z80 familjen - Att lära sig känna de olika kringkretsarna och lite om dess programmering. - Kapitel 7 i Prog the Z80 + ref. litteratur. 17. Applikationsexempel / Programmering III - Skriva fler program på egen hand - Kapitel 8 i Prog the Z80 18. DATASTRUKTURER - Lära sig olika typer av datastrukturer, lära sig lite om länkade listor mm. - Kapitel 9 i Prog the Z80 19. Utvecklingshjälpmedel - Lära sig vad som finns - Kapitel 10 i Prog the Z80 20. Programmering IV - Eget material från lärarna 21. ABC80/ABC800 hårdvarumässiga uppbyggnad 22. ABC80/ABC800 mjukvarumässiga uppbyggnad 23. Rutiner att anropa i ABC80/ABC800 24. Interrupt hantering 25. Egna device 26. Egna instruktioner på ABC800 27. Filhantering 28. Multitasking 29. I/O enheter 30. Elektronik fördjupning ----- 31. Processor utveckling 32. Vad finns på marknaden 4/8/16/32 bit maskiner 33. I/O - kretsar 34. Assemblerspråk hos olika maskiner.. ------- -> Hårdvarukonstruktion -> Assemblerkonstruktion -> Kompilator teknik -> Datastrukturer -> Operativsystem -> 8086/80186/80286/(80386) assembler -> 68000 assembler -> Praktiskt hårdvarubygge Ovan några exempel på vad vi kan fortsätta med. ( Kommentar i text 448 av Mikael Hovmöller <4688> ) ( Kommentar i text 466 av Paul Pries <5322> ) ( Kommentar i text 530 av Ulf Sjöstrand <1208> ) ( Text 447 ) ( Text 448 ) 1986-08-17 19.36.53 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 447 av Mikael Lidén <5651> Ärende: KURSPLAN Låter mycket bra! Ang böcker: är det en bra idé att alla skriver till mig och beställer böcker, så att jag sedan kan sammanställa och räkna ut antal böcker etc, eller ska någon annan (Mikael som är åf.) göra det? Antal som kör på olika maskiner: 80 6st 80x 5st Annan 1st (en CPM-burk med en klart kul assemblator) Vad kostar Markesjös bok? Ska det vara en lektion/vecka eller så fort som eleverna lär sig? M.v.h. Micke ( Kommentar i text 449 av Kent Berggren SYSOP <6019> ) ( Text 448 ) ( Text 449 ) 1986-08-18 08.13.36 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 448 av Mikael Hovmöller <4688> Ärende: KURSPLAN En liten grej bara DART kretsarna tillverkas inte längre sägs det(?) Sedan tycker jag intrupt skulle komma tidigare i kursplanen. Specielt som man skall först lära sig kring utrustning och sedan interupt. Låter lite bakvänt. ( Kommentar i text 451 av Peter Öhlén <4659> ) ( Text 449 ) ( Text 450 ) 1986-08-18 10.47.36 Peter Öhlén <4659> Mottagare: Z80 Kommentar till text: 446 av Mikael Lidén <5651> Ärende: KURSPLAN/böcker Protest för att 'Avancerad programmering för ABC80' skulle vara lämplig! Det enda raka är: **************** *Dissassemblern* **************** ( Kommentar i text 452 av Mikael Lidén <5651> ) ( Kommentar i text 464 av Bo Kullmar SYSOP <1789> ) ( Text 450 ) ( Text 451 ) 1986-08-18 10.49.39 Peter Öhlén <4659> Mottagare: Z80 Kommentar till text: 449 av Kent Berggren SYSOP <6019> Ärende: KURSPLAN Interrupt tyckte jag var ganska krångligt, så jag tycker nog att det inte ska komma för tidigt. Jag tycker kursplanen var bra! ( Kommentar i text 453 av Mikael Lidén <5651> ) ( Text 451 ) ( Text 452 ) 1986-08-18 13.00.39 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 450 av Peter Öhlén <4659> Ärende: KURSPLAN/böcker Håller med dig, jag tänkte inte på den, dock finns vissa bitar i Avancerad prog som är mer lättsmälta för nybörjare. ( Text 452 ) ( Text 453 ) 1986-08-18 13.04.28 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 451 av Peter Öhlén <4659> Ärende: KURSPLAN När det gäller interrupt så tar man upp det i samband med kringkretsar, men man skriver inte några program som är interruptstyrda, då det förut- sätter att maskinerna är likvärdiga. SIO & CTC interrupt är tex mycket intressanta men, vad tycker ABC80 användaren om de exemplen när han inte kan testa dem. Vi borde kanske lite längre fram vira ihop en liten maskin med CPU SIO, CTC, PIO och med ett boot prom som kan läsa över kod från en värd, det bör inte bli dyrare än ett par tre hundra, använder vi sedan statiskt ram så blir det inte speciellt svårt heller. ( Kommentar i text 479 av Kristoffer Eriksson SYSOP <5357> ) ( Text 453 ) ( Text 454 ) 1986-08-18 15.43.06 Anders Johnson <4001> Mottagare: Z80 Ärende: Assemblerkurs Hur anmäler man sitt intresse för kursen? Har just kommit från semester och har ej läst igenom hela detta möte. ( Kommentar i text 456 av Mikael Hovmöller <4688> ) ( Text 454 ) ( Text 455 ) 1986-08-18 17.38.10 Robert Svedjehammar <2350> Mottagare: Z80 Kommentar till text: 430 av Gunnar Faith-Ell SYSOP <2733> Ärende: Kursen/Assemblatorer, Tillstånd att sprida Vi har fått skriftligt tillstånd av SM att inom klubben sprida ett antal namngivna program. Har inte listan på dessa här just nu. ( Text 455 ) ( Text 456 ) 1986-08-18 19.17.21 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 454 av Anders Johnson <4001> Ärende: Assemblerkurs Brev till mig. (Är nämligen administratör för kursen.) Skriv vilken maskin du tänker använda oxå! M.v.h. Micke ( Kommentar i text 458 av Kristoffer Eriksson SYSOP <5357> ) ( Text 456 ) ( Text 457 ) 1986-08-18 19.18.50 Mikael Hovmöller <4688> Mottagare: Z80 Ärende: Lättast av '80 och 80x? Vilken är lättast att lära sig på? Flera kan välja, och undrar. Någon med god erfarenhet från båda? M.v.h. Micke ( Kommentar i text 463 av Gunnar Faith-Ell SYSOP <2733> ) ( Text 457 ) ( Text 458 ) 1986-08-18 19.19.59 Kristoffer Eriksson SYSOP <5357> Mottagare: Z80 Kommentar till text: 456 av Mikael Hovmöller <4688> Ärende: Assemblerkurs Jag tycker det vimlar av självutnämnda adminstratöre, lärare, kursledare, och det ena med det andra här. Det är en enda villervalla. Kan ni inte göra upp om arbetsfördelningen, så folk kan vända sig till en enda person när det är något? ( Kommentar i text 460 av Mikael Hovmöller <4688> ) ( Text 458 ) ( Text 459 ) 1986-08-18 19.21.54 Mikael Hovmöller <4688> Mottagare: Z80 Ärende: Presentation Det vore kul om alla kursdeltagare samt lärare skulle vilja skriva en snutt i 'Pres'. Till er som redan gjort det: gör 'pers', så att jag kan anteckna nummer på inlägget och slipper läsa igenom hela mötet på nytt. Till er andra: några ord om utrustning samt adress räcker! Fast de som vill skriva lite om sig själva är mycket välkommna! Ni behöver då inte skriva till mig, det märker jag själv! M.v.h. Micke Ps. Läs igenom är Pres om den är gammal, och uppdatera! Ds. ( Kommentar i text 483 av Sven Wickberg <1384> ) ( Text 459 ) ( Text 460 ) 1986-08-18 19.23.27 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 458 av Kristoffer Eriksson SYSOP <5357> Ärende: Assemblerkurs Kursledare: Mikael Lidén Lärare: Peter Öhlén, David Andersson och L-G Administratör: jag (. Tror jag... .) M.v.h. Micke ( Kommentar i text 461 av Stefan Berg <216> ) ( Text 460 ) ( Text 461 ) 1986-08-18 19.29.48 Stefan Berg <216> Mottagare: Z80 Kommentar till text: 460 av Mikael Hovmöller <4688> Ärende: Assemblerkurs Ursäkta en dum fråga, men vilka uppgifter har en kursledare respektive en administratör? Vad en lärare har för sig kan jag nog lista ut själv... ( Kommentar i text 462 av Peter Öhlén <4659> ) ( Text 461 ) ( Text 462 ) 1986-08-18 20.15.15 Peter Öhlén <4659> Mottagare: Z80 Kommentar till text: 461 av Stefan Berg <216> Ärende: Assemblerkurs (-: (-: Kursledaren lägger upp kursen, tar åt sig halvan äran. Administratören för lista på vilka som är med, vad de har för utrustning etc. etc. Tar åt sig andra halvan av äran. Lärarna försöker genomföra vad kursledaren har sagt och svara på alla (dumma?) frågor och kämpar för att lära alla elever assembler... :-) :-) ( Kommentar i text 480 av Kristoffer Eriksson SYSOP <5357> ) ( Text 462 ) ( Text 463 ) 1986-08-18 20.56.47 Gunnar Faith-Ell SYSOP <2733> Mottagare: Z80 Kommentar till text: 457 av Mikael Hovmöller <4688> Ärende: Lättast av '80 och 80x? Ta den du har bäst programvara till (editor/assemblator). ( Text 463 ) ( Text 464 ) 1986-08-19 07.52.45 Bo Kullmar SYSOP <1789> Mottagare: Z80 Kommentar till text: 450 av Peter Öhlén <4659> Ärende: KURSPLAN/böcker Nej, jag tror att det är frågan om en kunskapsnivå. Förutsätter man en hög sådan så är disassembern bra, men om inte så är "avancerad prog på ABC80" bättre. Det finns medlemmar som bara skickar tillbaka disassembern till klubben och skriver att de inte begriper något alls av den!!! ( Text 464 ) ( Text 465 ) 1986-08-19 09.40.42 Benny Löfgren SYSOP <2615> Mottagare: Z80 Kommentar till text: 432 av L-G Göransson SYSOP <495> Ärende: Asmz (DIAB mnemonics, inte interdata!!!) En annan anledning till skillnaden är att assemblern får ett mycket enklare jobb att göra. Dels blir det enklare att assemblera, dels får man en noggrannare syntaxkontroll. I Zilog-läge så är ju risken uppenbar att ens LD-instruktion slinker igenom assemblern, även om man inte skrev den som man tänkte. Här skiljer man på ett mer naturligt sätt på LoaD, STore osv. (Det finns f ö snart en ny version av ASMZ som klarar alla pseudodirektiv även i Zilog-mode!) ( Kommentar i text 486 av Kristoffer Eriksson SYSOP <5357> ) ( Text 465 ) ( Text 466 ) 1986-08-19 09.46.07 Paul Pries <5322> Mottagare: Z80 Kommentar till text: 447 av Mikael Lidén <5651> Ärende: KURSPLAN Varför inte ta upp en såpass funktionell processor som 80C31? Eller är den för ny? P. ( Kommentar i text 471 av Mikael Lidén <5651> ) ( Text 466 ) ( Text 467 ) 1986-08-19 11.05.31 Nils Hansson <519> Mottagare: Z80 Ärende: ASM/ASM1.BAC Jag har hämtat hem dessa filer men får checksummafel vid HEXTOFIL. Någon annan som lyckats? Jag har gjort två försök. Mvh Nils Hansson ( Kommentar i text 468 av Bert Holgersson <560> ) ( Kommentar i text 470 av Per Sten <6366> ) ( Kommentar i text 472 av Kent Ivarsson <612> ) ( Kommentar i text 475 av Kent-Åke Sohlberg <6384> ) ( Text 467 ) ( Text 468 ) 1986-08-19 16.55.46 Bert Holgersson <560> Mottagare: Z80 Kommentar till text: 467 av Nils Hansson <519> Ärende: ASM/ASM1.BAC Jag har också råkat ut för samma sak. Någon som kan kolla hur det står till med filerna ? Mvh BER ( Kommentar i text 469 av Bo Kullmar SYSOP <1789> ) ( Text 468 ) ( Text 469 ) 1986-08-19 17.18.56 Bo Kullmar SYSOP <1789> Mottagare: Z80 Kommentar till text: 468 av Bert Holgersson <560> Ärende: ASM/ASM1.BAC Det kan inte vara något fel på filen eftersom omvandlingen till HEX sker först i samband med överföringen. Alltså omvandlas det som finns i filen till HEX och detta bildar sedan en checksumma. Enda alternativet är att hämta filen med ett bättre protokoll, dvs Kermit. Kermit sköter själv omsändningar när det blir fel, mm. Nu finns det kanske inte en Kermit till ABC80 ännu, men det är en annan femma! ( Text 469 ) ( Text 470 ) 1986-08-19 18.00.46 Per Sten <6366> Mottagare: Z80 Kommentar till text: 467 av Nils Hansson <519> Ärende: ASM/ASM1.BAC Samma hände mig, jag fick shecksummafel i HEXTOFIL. Men det gav jag f-n i och laddade in programmet, och det funkade faktiskt mycket mystiskt tycker jag. Mvh Per <6366> ( Kommentar i text 477 av Bert Holgersson <560> ) ( Text 470 ) ( Text 471 ) 1986-08-19 19.32.04 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 466 av Paul Pries <5322> Ärende: KURSPLAN Tja man kan ta upp det mesta, som sagt, fortsättningen efter "själva Z80 delen" skall mest ses som förslag/ideér. ( Kommentar i text 482 av Paul Pries <5322> ) ( Text 471 ) ( Text 472 ) 1986-08-19 20.43.33 Kent Ivarsson <612> Mottagare: Z80 Kommentar till text: 467 av Nils Hansson <519> Ärende: ASM/ASM1.BAC Jag har fått samma problem med ASM.BAC och ASM1.BAC, både med TED (gäller ASM1) och TERM100. Men andra program fungerar normalt åtminstonde kortare som jag testat idag, tidigare har jag hämtat långa utan problem. För att kolla överföringsfel hämtade jag filerna 2 ggr och jämförde båda vesionerna var identiska! Vilket pekar på ett annorlunda fel än överföringsproblem. Vid kontroll av checksummorna visade det sig att båda skillde sig mellan sänd och uträknad med 131 där det var den sändna som var störst! Kan det vara så att filerna är listskyddade och det är det som stör på något sett? För hämtade och konverterade är de inte listskyddade. En *KORT* test visade att filerna tycktes fungera trots checksummafel. Kent Ivarsson<612> ( Kommentar i text 473 av Anders Franzén <5258> ) ( Text 472 ) ( Text 473 ) 1986-08-19 21.00.00 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 472 av Kent Ivarsson <612> Ärende: ASM/ASM1.BAC Jag börjar undra om det inte kan vara monitorn som sänder lustiga hexfiler... ( Kommentar i text 474 av Kent Ivarsson <612> ) ( Text 473 ) ( Text 474 ) 1986-08-19 21.07.02 Kent Ivarsson <612> Mottagare: Z80 Kommentar till text: 473 av Anders Franzén <5258> Ärende: ASM/ASM1.BAC Tror inte det då andra filer än ASM/ASM1 fungerar normalt vid samma tillfälle! Kent Ivarsson<612> ( Kommentar i text 478 av Bert Holgersson <560> ) ( Text 474 ) ( Text 475 ) 1986-08-19 21.29.11 Kent-Åke Sohlberg <6384> Mottagare: Z80 Kommentar till text: 467 av Nils Hansson <519> Ärende: ASM/ASM1.BAC Pröva att ladda in filerna med TED och titta om det finns en tomrad som första rad. I så fall ta bort den och spara ner filen igen. Kör sen HEXTOFIL som vanligt. M v h Kent-Åke ( Kommentar i text 481 av Nils Hansson <519> ) ( Text 475 ) ( Text 476 ) 1986-08-19 23.04.01 Kent-Åke Sohlberg <6384> Mottagare: Z80 Ärende: Vad kostar boken ? Är det någon som vet vad kursboken/böckerna kostar ? Det kanske någon har nämt,men i så fall har jag missat det. Tacksaåim för svar. M v h Kent-Åke ( Text 476 ) ( Text 477 ) 1986-08-19 23.08.50 Bert Holgersson <560> Mottagare: Z80 Kommentar till text: 470 av Per Sten <6366> Ärende: ASM/ASM1.BAC Vi är tydligen flera som stött på konstigheter !? Men jag provar väl att köra min också,då. BER ( Text 477 ) ( Text 478 ) 1986-08-19 23.11.13 Bert Holgersson <560> Mottagare: Z80 Kommentar till text: 474 av Kent Ivarsson <612> Ärende: ASM/ASM1.BAC Samma uppfattning här. Annat gick bra men inte detta. BER ( Kommentar i text 489 av Kristoffer Eriksson SYSOP <5357> ) ( Text 478 ) ( Text 479 ) 1986-08-20 03.39.18 Kristoffer Eriksson SYSOP <5357> Mottagare: Z80 Kommentar till text: 453 av Mikael Lidén <5651> Ärende: KURSPLAN - kursdator Ja! En liten maskin med 68020-CPU blir alldeles lagom tror jag! ( Kommentar i text 495 av Martin Lundberg <4401> ) ( Text 479 ) ( Text 480 ) 1986-08-20 03.52.10 Kristoffer Eriksson SYSOP <5357> Mottagare: Z80 Kommentar till text: 462 av Peter Öhlén <4659> Ärende: Assemblerkurs Skulle inte kursen börjat i måndags? När kommer första lektionen? Är det bestämt vem som ska skriva den, eller gör någon det bara han får lust till det? Har vi inte klarat av lektion 1 redan tidigare i mötet? ( Kommentar i text 484 av Mikael Lidén <5651> ) ( Text 480 ) ( Text 481 ) 1986-08-20 10.51.14 Nils Hansson <519> Mottagare: Z80 Kommentar till text: 475 av Kent-Åke Sohlberg <6384> Ärende: ASM/ASM1.BAC Jodå jag har provat den varianten också, utan resultat. Mvh Nils Hansson ( Text 481 ) ( Text 482 ) 1986-08-20 11.40.21 Paul Pries <5322> Mottagare: Z80 Kommentar till text: 471 av Mikael Lidén <5651> Ärende: KURSPLAN Förslag & ideer är förträffliga! Jag bara tänkte mig en liten motvikt till alla PC-processorer. Om någon är intresserad så har jag en assembler till 8031:an (ej 100% buggfri men det går ju att fixa! det är den indirekta adresseringen....) nja,nåja nog om detta. ha' de' bra! Paul ( Text 482 ) ( Text 483 ) 1986-08-20 11.45.40 Sven Wickberg <1384> Mottagare: Z80 Kommentar till text: 459 av Mikael Hovmöller <4688> Ärende: Presentation och var vänliga skriv era NAMN på ärenderaden, och inte "Presentation" eller något annat intetsägande. :=) ( Kommentar i text 488 av Mikael Hovmöller <4688> ) ( Text 483 ) ( Text 484 ) 1986-08-20 14.18.38 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 480 av Kristoffer Eriksson SYSOP <5357> Ärende: Assemblerkurs Det är inte tänkt att man direkt skriver lektioner utan man följer kurs- planen och läser på egenhand, när man har frågor och problem så skriver man här och lärarna förklar....., dock bör vissa avsnitt författas. ( Kommentar i text 485 av Kristoffer Eriksson SYSOP <5357> ) ( Text 484 ) ( Text 485 ) 1986-08-20 18.48.33 Kristoffer Eriksson SYSOP <5357> Mottagare: Z80 Kommentar till text: 484 av Mikael Lidén <5651> Ärende: Assemblerkurs Det var inte mycket att hurra för! Vad är då alla dessa lärare här i mötet till? Är det någon elev som kommit igång ännu? ( Kommentar i text 487 av Mikael Lidén <5651> ) ( Text 485 ) ( Text 486 ) 1986-08-20 19.06.35 Kristoffer Eriksson SYSOP <5357> Mottagare: Z80 Kommentar till text: 465 av Benny Löfgren SYSOP <2615> Ärende: Asmz Det där argumentet att assemblern får ett enklare jobb, är allt bra dumt. Det är programmeraren jobb som ska underlättas, inte tvärtom. ( Kommentar i text 493 av Benny Löfgren SYSOP <2615> ) ( Text 486 ) ( Text 487 ) 1986-08-20 19.23.01 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 485 av Kristoffer Eriksson SYSOP <5357> Ärende: Assemblerkurs Givetvis så skall vi producera material och hjälpa till och svara på frågor dvs ställa upp och hjälpa till. Kursböckerna innehåller faktiskt relativt lätt läst text. Problemet med MSG är att vi inte direkt kan hålla föreläsningar och rita bilder på svarta tavlan. Dock skall vi skriva ihop lite frågor & uppgifter till varje avsnitt, samt en mera detaljerad målruta, samt sammanfattning. Jag anser dock att alla skall ha kursmaterialet klart samt ha börjat bekanta sig med det, dvs bläddrat lite och börjat läsa lite sidor i det första avsnittet. Finns det någon lärare som vill ta på sig det första avsnittet el. vill ni att jag skall ta det ? Mikael ( Kommentar i text 531 av Ulf Sjöstrand <1208> ) ( Text 487 ) ( Text 488 ) 1986-08-20 19.50.32 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 483 av Sven Wickberg <1384> Ärende: Presentation Med 'ärende' kan du ju ändå se vem som skrivit inlägget! M.v.h. Micke ( Text 488 ) ( Text 489 ) 1986-08-21 01.37.59 Kristoffer Eriksson SYSOP <5357> Mottagare: Z80 Kommentar till text: 478 av Bert Holgersson <560> Ärende: ASM/ASM1.BAC När jag filtohex:ar och hextofil:ar ASM.BAC direkt i monitorn går det bra. Då blir det kontrollsumma 26225. Om ni får någon annan av monitorns hex-omvandling, är det den det är fel på, får ni en annan summa själva de hex-data ni mottar är det fel på överföringslänken (lurverkståtarna). ( Kommentar i text 490 av Kent Berggren SYSOP <6019> ) ( Kommentar i text 496 av Bo Kullmar SYSOP <1789> ) ( Text 489 ) ( Text 490 ) 1986-08-21 10.28.03 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 489 av Kristoffer Eriksson SYSOP <5357> Ärende: ASM/ASM1.BAC Hur skall vi göra med programmet då? Är det någon som kan test köra det. Jag har viserligen en variant hemma men jag tror vi skall be Mats Peterson om ett ex så att vi är säkra på att det inte är något fel. ( Text 490 ) ( Text 491 ) 1986-08-21 10.52.58 Rainer Grieser <1917> Mottagare: Z80 Ärende: asm/asm1 Jag har nu försökt att köra hextofil även med nya versionen men får hela tiden checksummafel och när jag ladda in ändå så får jag fel programformat vad kan felet vara MVH rainer ( Kommentar i text 492 av Kent Berggren SYSOP <6019> ) ( Kommentar i text 497 av Kristoffer Eriksson SYSOP <5357> ) ( Text 491 ) ( Text 492 ) 1986-08-21 10.53.41 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 491 av Rainer Grieser <1917> Ärende: asm/asm1 Vad händer om du skiter i ch summan. ( Kommentar i text 494 av Benny Löfgren SYSOP <2615> ) ( Text 492 ) ( Text 493 ) 1986-08-21 13.40.12 Benny Löfgren SYSOP <2615> Mottagare: Z80 Kommentar till text: 486 av Kristoffer Eriksson SYSOP <5357> Ärende: Asmz Jag vet att det inte är ett hållbart argument, men det var inte heller menat att vara det (jag tyckte att de andra argumenten var tillräckligt hållbara). (Förresten, vad bråkar vi om, man har ju full valfrihet, vetja!) ( Text 493 ) ( Text 494 ) 1986-08-21 13.41.49 Benny Löfgren SYSOP <2615> Mottagare: Z80 Kommentar till text: 492 av Kent Berggren SYSOP <6019> Ärende: asm/asm1 Läs, Kent! Han skrev ju att han fick 'fel programformat'. ( Text 494 ) ( Text 495 ) 1986-08-21 17.34.43 Martin Lundberg <4401> Mottagare: Z80 Kommentar till text: 479 av Kristoffer Eriksson SYSOP <5357> Ärende: KURSPLAN - kursdator * Ja, 68020 ställer jag också upp på m. ( Text 495 ) ( Text 496 ) 1986-08-21 21.28.16 Bo Kullmar SYSOP <1789> Mottagare: Z80 Kommentar till text: 489 av Kristoffer Eriksson SYSOP <5357> Ärende: ASM/ASM1.BAC Nja, rätt checksumma för ASM.BAC är -5651 och det får man numera. Innan fick man -5520 vilket berodde på en lite nyligen uppkommen bugg. Det är så att jag har gjort om så att man inte får med ID-blocket för de filer som har idblock. När Kristoffer filtohexar direkt i monitorn så kommer alltså en hel sektor med extra och därför blir det en helt annan checksumma. Felet uppkom när överförigen avbröts innan EOF, dvs just före idblocket, då kom en byte för mycket med i checksumman. I och för sig är risken för överföringsfel stor om man hämtar en så stor fil som ASM.BAC i hexformat, speciellt om man har dåliga tele- fonlinjer. Enbart Kermit kan lösa detta problemet eftersom Kermit fixar omsänding av varje block som har fel checksumma. ( Text 496 ) ( Text 497 ) 1986-08-22 05.14.47 Kristoffer Eriksson SYSOP <5357> Mottagare: Z80 Kommentar till text: 491 av Rainer Grieser <1917> Ärende: asm/asm1 Om du menar att du använder den nya hextofil-versionen för ABC800, så påverkar inte det kontrollsumman. Du är väl medveten om att ASM är ett ABC80-program, så att får du "Fel programformat" när du laddar den i ABC800 är det helt i sin ordning. Sen har förstås det kontrollsummafel som hextofil upptäcker en annan förklaring, som vi ser i inlägget före detta ( Text 497 ) ( Text 498 ) 1986-08-25 18.21.49 Lennart Anderson <6582> Mottagare: Z80 Ärende: Kursen - vad händer? Som ärendemeningen säger - Vad händer? Blir det något av kursen - eller rann alla goda ideer bara ut i sanden? Mvh - Lennart ( Kommentar i text 499 av Mikael Lidén <5651> ) ( Text 498 ) ( Text 499 ) 1986-08-25 20.31.43 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 498 av Lennart Anderson <6582> Ärende: Kursen - vad händer? OK! Jag tar tag i det hela Nu. Vi börjar med att läsa avsnitt 1 enligt kursplanen, stöter man på problem så frågar man här i MSG. Tills på måndag lägger jag in lite summeringsuppgifter av avsnitt 1. Det är alltså ni kära kursdeltagare som har bollen just nu, ni får börja läsa, och komma med frågor, vi lärare har lite svårt att kunna svara på frågor och hjälpa till att lösa problem, om vi inte blir tillfrågade, speciellt här i MSG då vi inte "ser" inte kan tala med varandra i "realtid" mm. Vart efter kommer vi naturligtvis att skriva små "artiklar". ( Kommentar i text 501 av Kent-Åke Sohlberg <6384> ) ( Text 499 )  ( Text 500 ) 1986-08-25 22.35.48 Jens Carlberg <6640> Mottagare: Z80 Kommentar till text: 310 av Stefan Berg <216> Ärende: Z80 - En MKT gammal förfrågan om bra lärobok... Programming the z80 finns som sagt i svensk översättning, och är faktiskt för ovanlighetens skull bra! ( Kommentar i text 502 av Kent-Åke Sohlberg <6384> ) ( Text 500 ) ( Text 501 ) 1986-08-26 02.03.11 Kent-Åke Sohlberg <6384> Mottagare: Z80 Kommentar till text: 499 av Mikael Lidén <5651> Ärende: Kursen - vad händer? Skulle inte någon ta reda på om vi kunde få rabatt på böckerna ? Jag har inte köpt någon än i väntan på att någon (vet ej vem) skulle ta reda på priserna. M v h Kent-Åke ( Kommentar i text 503 av Mikael Lidén <5651> ) ( Text 501 ) ( Text 502 ) 1986-08-26 02.06.01 Kent-Åke Sohlberg <6384> Mottagare: Z80 Kommentar till text: 500 av Jens Carlberg <6640> Ärende: Z80 - En MKT gammal förfrågan om bra lärobok... Den kostar i Örebro 340 kr. Men vid köp av av minst tio st så skulle man kunna få 20% i rabatt. ( Text 502 ) ( Text 503 ) 1986-08-26 10.12.38 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 501 av Kent-Åke Sohlberg <6384> Ärende: Kursen - vad händer? Jag är en dem som kan fixa rabatter, (är åf.) men det var sagt att Mikael Hovmöller skulle komma med en lista till mig el dyl. Alla som behöver böcker skicka ett brev till mig så återkommer jag med pris. ( Kommentar i text 504 av Kent Berggren SYSOP <6019> ) ( Text 503 ) ( Text 504 ) 1986-08-26 20.15.53 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 503 av Mikael Lidén <5651> Ärende: Kursen - vad händer med böcker? Jag fattar mej inte på er. Jag säger det igen VI HAR EN KLUBBMEDLÄM SOM ÄR EKONOMICHEF PÅ PAGINA. Varför frågar ni inte honom???? ( Kommentar i text 505 av Mikael Lidén <5651> ) ( Kommentar i text 507 av Benny Löfgren SYSOP <2615> ) ( Text 504 ) ( Text 505 ) 1986-08-27 06.52.19 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 504 av Kent Berggren SYSOP <6019> Ärende: Kursen - vad händer med böcker? Vem då ????? - Så skall vi fråga. ( Kommentar i text 506 av Kent Berggren SYSOP <6019> ) ( Text 505 ) ( Text 506 ) 1986-08-27 08.09.34 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 505 av Mikael Lidén <5651> Ärende: Kursen - vad händer med böcker? Ja skall du ha nr så kan du ringa och prata med honom själv? ( Kommentar i text 508 av Mikael Lidén <5651> ) ( Text 506 ) ( Text 507 ) 1986-08-27 12.08.19 Benny Löfgren SYSOP <2615> Mottagare: Z80 Kommentar till text: 504 av Kent Berggren SYSOP <6019> Ärende: Kursen - vad händer med böcker? Jag undrar vem som inte förstår sig på vem... Det är väl ingen som har upplyst någon om nån ekonomichef, eller? Och även om så vore fallet, vad är det som säger att han vill ge rabatt till klubben? ( Text 507 ) ( Text 508 ) 1986-08-27 18.15.39 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 506 av Kent Berggren SYSOP <6019> Ärende: Kursen - vad händer med böcker? Tja, om Du känner honom personligen så kan du väl ordna det hela, fixa en 5-10 böcker de går säkert åt. ( Kommentar i text 509 av Curt Rehnborg <1121> ) ( Text 508 ) ( Text 509 ) 1986-08-27 21.58.59 Curt Rehnborg <1121> Mottagare: Z80 Kommentar till text: 508 av Mikael Lidén <5651> Ärende: Kursen - vad händer med böcker? Ska flyga några gubbar till Holland i morgon, men när jag kommert hem "förhoppningsvis lördag" så ska jag kolla upp om jag inte kan fixa böcker till berörda deltagare till någon form av "nettopris" Är det Programmera Z80 av R Zaks som är aktuell, eller fler? ( Kommentar i text 510 av Mikael Lidén <5651> ) ( Kommentar i text 511 av Jens Carlberg <6640> ) ( Text 509 ) ( Text 510 ) 1986-08-27 22.07.09 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 509 av Curt Rehnborg <1121> Ärende: Kursen - vad händer med böcker? Ja Programming Z80, annars svenska böcker. ( Text 510 ) ( Text 511 ) 1986-08-27 22.38.55 Jens Carlberg <6640> Mottagare: Z80 Kommentar till text: 509 av Curt Rehnborg <1121> Ärende: Kursen - böcker - priser . Kan det inte tänkas att man kollar priser å så på lite olika, så kan de intresserade höra av sig medelst kommentar eller brev, så att man får en uppfattning om vad folk vill ha? ( Personligen behöver jag i alla fall ingen Programmera Z80, jag har den engelska varianten. ) ( Text 511 ) ( Text 512 ) 1986-08-29 12.49.35 Jörgen Hansen <5844> Mottagare: Z80 Ärende: Första frågan... Hur skriver jag ut en viss text? Jag har prövat att göra många saker (har Assemblerprogrammering av Sune Windisch), men det fungerar inte. Måste man mata en adress med en bokstav i taget? Hur känner man av hur många positioner en adress har (=LEN i BASIC)? Och hur skriver man enkelt in en bokstav i en adress, decimalt eller binärt? (Inte hex- och oktalt, tack...) Det blev en del frågor... :-) ( Kommentar i text 515 av Peter Öhlén <4659> ) ( Text 512 ) ( Text 513 ) 1986-08-29 16.58.36 Karsten Husberg <6574> Mottagare: Z80 Ärende: Andra frågan: Hur startar man ASMZ och vad finns det för editor kommandon? mvh KH ( Kommentar i text 514 av Gunnar Larsson <4876> ) ( Text 513 ) ( Text 514 ) 1986-08-29 18.19.45 Gunnar Larsson <4876> Mottagare: Z80 Kommentar till text: 513 av Karsten Husberg <6574> Ärende: Andra frågan: Läs manualen. För den har du väl ? ( Text 514 ) ( Text 515 ) 1986-08-29 19.09.06 Peter Öhlén <4659> Mottagare: Z80 Kommentar till text: 512 av Jörgen Hansen <5844> Ärende: Första frågan... Så här: ORG LD HL,TEXT LD BC,LÄNGD CALL 11 ;UTSKRiftsrutin RET TEXT DEFM 'Hipp hurra!!' DEFB 13 DEFB 10 LÄNGD EQU ¤-TEXT Sedan ligger inte texten på en position i minnet, utan den tar upp lika många bytes som den innehåller tecken. I det här fallet blir det 14. 'EQU' ger LÄNGD värdet av det som står efter 'EQU'. I det här fallet '¤-TEXT'. '¤' ger adressen där nästa instruktion eller tecken ska lagras. '¤-TEXT' ger alltså antalet tecken från 'TEXT' till där '¤-TEXT' står. ( Kommentar i text 516 av Stefan Berg <216> ) ( Text 515 ) ( Text 516 ) 1986-08-29 20.26.36 Stefan Berg <216> Mottagare: Z80 Kommentar till text: 515 av Peter Öhlén <4659> Ärende: Första frågan... Rutinen på adress 11 (ABC80!) skriver sedan in det hela i bildminnet, uppdaterar cursoradressen på adress 65011/12 och lite annat. Den kollar oxo vad som sänds, är det ASCII 7 eller 12, t ex, så ska ju högtalaren plinga, eller skärmen rensas. Du kan naturligtvis skriva in din text direkt i bildminnet - något som man i tidskritiska program är tvungen att göra - och det ger samma resultat. ( Kommentar i text 517 av Peter Öhlén <4659> ) ( Text 516 ) ( Text 517 ) 1986-08-29 21.10.17 Peter Öhlén <4659> Mottagare: Z80 Kommentar till text: 516 av Stefan Berg <216> Ärende: Första frågan... CALL 11 är UTSKRift på *BÅDA* 80 och 800! ( Kommentar i text 518 av Stefan Berg <216> ) ( Text 517 ) ( Text 518 ) 1986-08-30 11.19.16 Stefan Berg <216> Mottagare: Z80 Kommentar till text: 517 av Peter Öhlén <4659> Ärende: Första frågan... Oups! Jaja, har aldrig haft en '800, så mitt misstag må förlåtas. ( Text 518 ) ( Text 519 ) 1986-09-01 21.20.59 Kent-Åke Sohlberg <6384> Mottagare: Z80 Ärende: Tjatig...... Hur går det med böckerna ??? M v h Kent-Åke ( Text 519 ) ( Text 520 ) 1986-09-02 12.51.45 Lars Gjörling <6825> Mottagare: Z80 Ärende: Den stora tystnaden i kursen. Som en flitig och ambitiös elev i assemblerkursen har jag under föregående vecka (25-31 aug) läst kapitel 1 i Zaks bok och löst alla övningsuppgifterna. Då ingen facit finns, vet jag inte om jag har löst dem rätt, men hoppas givetvis så. När jag med ivrig spänning loggade in på måndagskvällen, och även nu i dag på tisdagen, fann jag till min besvikelse att en bedö- vande tystnad rådde i möte Z80. Den var verkligen en stor kont- rast till den entusiasm, som rådde för bara några veckor sedan. En ofta citerad versrad av en våra nationalskalder lyder '.... blott hälsan tiger still.' Är tystnaden ett tecken på hälsa? Är det kanske så, att ALLA elever har läst kapitel 1 förra veckan och löst ALLA uppgifter och att INGEN har haft några som helst svårigheter, eller något att fråga om, samt nu ALLA är sysselsat- ta med nästa avsnitt i kursen. Djupt inom mig gnager ett tvivel om att att detta är en HELT riktig beskrivning. För övrigt var tystnaden inte total. En enda ropandes röst fanns i öknen, och han hade inte fått några läroböcker (och bad om ursäkt för att han tjatade). Det är väl där felet ligger först och främst! Det här med läro- böcker har inte fungerat, och innan alla har fått böcker, är det väl ingen idé att överhuvud taget sätta igång. Även när alla har fått läroböcker, är det väl viktigt att ALLA som har anmält sig som deltagare hör av sig till mötet varje vec- ka, talar om hur det har gått för honom och framför synpunkter och frågor. Finns det inget svar till övningsuppgifterna, så kan man också ställa frågan om inte lärarna borde ge en facit, som man kan jämföra med. Ganska viktigt är det väl också att den som har anmält sig, men ångrat detta, meddelar det, så att inte kursledningen väntar på t ex en bokbeställning, som sedan inte hörs av. Mikael skrev att bollen nu ligger hos eleverna. Men bollen tycks ha gått över dödlinjen. Vem är det då som skall göra insparken? För inte kan väl domaren ha blåst av matchen redan? Mvh Lars Gjörling <6825> ( Kommentar i text 521 av Mikael Hovmöller <4688> ) ( Text 520 ) ( Text 521 ) 1986-09-02 16.32.51 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 520 av Lars Gjörling <6825> Ärende: Den stora tystnaden i kursen. Jag tror att Mikael (Lidén, alltså!) väntar på att alla elever ska komma med bokbeställningar. Eller? M.v.h. Micke ( Kommentar i text 522 av Kent-Åke Sohlberg <6384> ) ( Kommentar i text 523 av Mikael Lidén <5651> ) ( Text 521 ) ( Text 522 ) 1986-09-02 17.39.30 Kent-Åke Sohlberg <6384> Mottagare: Z80 Kommentar till text: 521 av Mikael Hovmöller <4688> Ärende: Den stora tystnaden i kursen. Det vore roligt om inte kursen skenade iväg från mig innan jag fått tag på ett bra pris på böckerna. Dom är ju trots allt ganska dyra. Sen vore det fint om man fick ett pris på böckerna innan man beställer dom. M v h Kent-Åke ( Kommentar i text 524 av Mikael Lidén <5651> ) ( Text 522 ) ( Text 523 ) 1986-09-02 18.10.03 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 521 av Mikael Hovmöller <4688> Ärende: Den stora tystnaden i kursen. Jag väntar dels på att de som behöver böcker kommer med en beställning el. förfrågan och att de som har börjat läsa hör av sig och talar om vad de har för problem, och vad de behöver hjälp med. Det är inte så kul att skriva uppgifter, skriva facit till övningar med mera om det inte är några som kommer lösa dem. Som sagt det är kurs där alla hjälps åt man ställer frågor och får hjälp, kommer med små tips, talar om hur det har gått, och jobbar utifrån kurs- planen för att man skall veta vad man skall göra och vilken målsättning man har. Utan några diskussioner mellan elever-elever, lärare-elever, så kommer vi ingenstans och i så fall kan vi lika gärna lägga ned allt. Så bollen ligger hos eleverna, när det gäller böcker så vill jag minnas att Mikael Hovmöller har en deltagarförteckning och event. lista över vilket material som behöver beställas. Om det bara rör sig om en elev som behöver någon extra bok så lönar det sig knappast att göra en sambeställning. ( Kommentar i text 525 av Mikael Hovmöller <4688> ) ( Kommentar i text 529 av Lars Gjörling <6825> ) ( Text 523 ) ( Text 524 ) 1986-09-02 18.13.04 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 522 av Kent-Åke Sohlberg <6384> Ärende: Den stora tystnaden i kursen. Jag kan bara ge pris när jag vet hur många som skall ha böcker, vid köp av enstaka ex, så får man inte så mycket rabatt (Jag är själv åf. men man måste köpa minst 10-15 böcker åtgången och skall jag ta hem 15 ex och det endast är en som skall ha så har jag 14 ganska udda och svårsålda böcker över...). ( Kommentar i text 527 av Kent-Åke Sohlberg <6384> ) ( Text 524 ) ( Text 525 ) 1986-09-02 19.22.37 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 523 av Mikael Lidén <5651> Ärende: Den stora tystnaden i kursen. Jag har en deltagarlista, men ingen bokbeställningsdito. Föreslår att intresserade skriver till Mikael, då han är återförsäljare och har kontakter. M.v.h. Micke ( Text 525 ) ( Text 526 ) 1986-09-02 20.24.09 Anders Franzén <5258> Mottagare: Z80 Ärende: Fråga om åttabitarsmaskiner Hur vet man att Z80 är en åttabitarsprofessor? Den kan ju adressera minne men hjälp av 16 bitar. Borde den då inte vara en 16-bitarsprocessor? Ordlängd? Vad sjutton är ett ord? Tacksam om mystiken bakom dessa begrepp skingras av någon initierad! ( Kommentar i text 528 av Bo Kullmar SYSOP <1789> ) ( Text 526 ) ( Text 527 ) 1986-09-02 20.44.28 Kent-Åke Sohlberg <6384> Mottagare: Z80 Kommentar till text: 524 av Mikael Lidén <5651> Ärende: Den stora tystnaden i kursen. Har du fått några beställningar än ? Annars så måste jag gå och köpa dom böcker jag behöver. M v h Kent-Åke ( Kommentar i text 534 av Mikael Lidén <5651> ) ( Text 527 ) ( Text 528 ) 1986-09-02 22.05.46 Bo Kullmar SYSOP <1789> Mottagare: Z80 Kommentar till text: 526 av Anders Franzén <5258> Ärende: Fråga om åttabitarsmaskiner Det där med 8 bitars, 16 bitars osv brukar vara lite flyttande. Man tänker väl oftare på ordlängden än på adressbussen. Ett ord är den minsta enhet som datorn kan adressera i minnet. Den är alltså 8 bitar eller 1 byte i Z80 och även för Intel 8088 och Motorola 68008. För Intel 8086 är det 16 bitar och då är ordlängden 2 bytes. Våra Burroughs A9:or har 48 bitars ordlängd, dvs 6 bytes eller 12 digits. Burroughs kallar man nämligen en halvbyte för en digit för man kan få in en packad siffra i 4 byte. (COMP i COBOL74) Även om våra Burroughsmaskiner bara direkt kan adressera hela ord så kan dock maskinen komma åt delar i orden. Vissa grejor måste dock ligga på en ordgräns för att det skall fungera. ( Kommentar i text 537 av Mikael Hovmöller <4688> ) ( Kommentar i text 540 av Anders Franzén <5258> ) ( Kommentar i text 541 av Anders Franzén <5258> ) ( Kommentar i text 546 av Kristoffer Eriksson SYSOP <5357> ) ( Text 528 ) ( Text 529 ) 1986-09-02 22.21.03 Lars Gjörling <6825> Mottagare: Z80 Kommentar till text: 523 av Mikael Lidén <5651> Ärende: Den stora tystnaden i kursen. Att det inte är så kul att skriva uppgifter, facit etc om ingen bryr sig om dem håller jag av egen erfarenhet med om med hela mitt hjärta. Å andra sidan är det inte heller så kul att ha jobbat en vecka med ett kursavsnitt och finna sig vara tämligen ensam om det. Vad jag förstår måste vi 1) få ordning på bokfrågan. 2) få ett nytt startdatum då alla har böcker. Mvh Lars Gjörling <6825> ( Kommentar i text 535 av Mikael Lidén <5651> ) ( Text 529 ) ( Text 530 ) 1986-09-02 23.07.02 Ulf Sjöstrand <1208> Mottagare: Z80 Kommentar till text: 447 av Mikael Lidén <5651> Ärende: KURSPLAN Kan ni lääga in den som fil så man kan hämta hem den! Det kräver ju litet funderande. <1208> Ulf S ( Kommentar i text 533 av Kent-Åke Sohlberg <6384> ) ( Kommentar i text 542 av Peter Öhlén <4659> ) ( Text 530 ) ( Text 531 ) 1986-09-02 23.15.37 Ulf Sjöstrand <1208> Mottagare: Z80 Kommentar till text: 487 av Mikael Lidén <5651> Ärende: Assemblerkurs fungerar det med cirkelstöd på detta distansvis? Har någon tagit kontakt med något studieförbund? <1208> Ulf S ( Kommentar i text 532 av Stefan Berg <216> ) ( Text 531 ) ( Text 532 ) 1986-09-02 23.25.40 Stefan Berg <216> Mottagare: Z80 Kommentar till text: 531 av Ulf Sjöstrand <1208> Ärende: Assemblerkurs Jag tvivlar på det. En förening jag är medlem i försökte med något liknande (kurs via modem), och försökte få igenom ett cirkelstöd, men det var tji. Måste antagligen vara en fysisk sammankomst. ( Text 532 ) ( Text 533 ) 1986-09-03 00.04.17 Kent-Åke Sohlberg <6384> Mottagare: Z80 Kommentar till text: 530 av Ulf Sjöstrand <1208> Ärende: KURSPLAN Den finns som fil. Jag tror att bibliteket heter TEXT/ASM. Rätta mig om jag har fel M v h Kent-Åke ( Kommentar i text 536 av Nils Hansson <519> ) ( Text 533 ) ( Text 534 ) 1986-09-03 00.16.49 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 527 av Kent-Åke Sohlberg <6384> Ärende: Den stora tystnaden i kursen. Två stycken..... ( Text 534 ) ( Text 535 ) 1986-09-03 00.18.32 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 529 av Lars Gjörling <6825> Ärende: Den stora tystnaden i kursen. Dina synpunkter är vettiga, vi skjuter upp kursstarten 2veckor, så att vi hinner ordna allt. ( Text 535 ) ( Text 536 ) 1986-09-03 12.33.45 Nils Hansson <519> Mottagare: Z80 Kommentar till text: 533 av Kent-Åke Sohlberg <6384> Ärende: KURSPLAN Biblioteket heter TEXT/ASMKURS, annars var det rätt. Mvh Nils Hansson ( Text 536 ) ( Text 537 ) 1986-09-03 19.40.56 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 528 av Bo Kullmar SYSOP <1789> Ärende: Fråga om åttabitarsmaskiner Packad siffra? Hur packas den? Varför heter det inte 'nibble', är inte det standard? M.v.h. Micke ( Kommentar i text 539 av Anders Franzén <5258> ) ( Kommentar i text 547 av Bo Kullmar SYSOP <1789> ) ( Text 537 ) ( Text 538 ) 1986-09-03 19.44.31 Mikael Hovmöller <4688> Mottagare: Z80 Ärende: Kursen 1. Alla som vill beställa böcker: skriv brev till Mikael och beställ. Han försöker då få någon form av rabatt. 2. Nytt datum för kursstart: Ca 2 veckor (beror på böckerna!) 3. Det går fortfarande att anmäla sig till kursen, naturligtvis! Jag skriver dock inte någon matrikel än pga att den ändå måste ändras när kursen kommer igång. M.v.h. Micke ( Text 538 ) ( Text 539 ) 1986-09-03 20.09.04 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 537 av Mikael Hovmöller <4688> Ärende: Fråga om åttabitarsmaskiner Packade siffror kallar man siffrorna om de packas ihop så att två får plats i en byte. Alltså är 87H packat lika med 87D binärt. ( Kommentar i text 544 av Kristoffer Eriksson SYSOP <5357> ) ( Text 539 ) ( Text 541 ) 1986-09-03 20.14.54 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 528 av Bo Kullmar SYSOP <1789> Ärende: Fråga om åttabitarsmaskiner Aha! Om jag fattat dig rätt så kan alltså en 16-bitarsprocessor hämta in 16 bitar på en gång från minnet till CPUn medan en 8-bitars endast kan hämta en byte i taget. Det förklarar varför 16-bitarsmaskiner är snabbare än 8-bitars. Får man alltid in 16 bitar i en 16-bitarsmaskin? I så fall får man ju in för mycket (i onödan) om man bara behöver 8 bitar. ( Kommentar i text 543 av Peter Öhlén <4659> ) ( Text 541 ) ( Text 542 ) 1986-09-03 22.33.07 Peter Öhlén <4659> Mottagare: Z80 Kommentar till text: 530 av Ulf Sjöstrand <1208> Ärende: KURSPLAN I bibl. TEXT/ASMKURS, finns filerna KURSPLAN.1 samt KURSPLAN.2. ( Text 542 ) ( Text 543 ) 1986-09-03 22.47.14 Peter Öhlén <4659> Mottagare: Z80 Kommentar till text: 541 av Anders Franzén <5258> Ärende: Fråga om åttabitarsmaskiner Behöver inte alltid vara så. Ta 68000-serien. Arbetar med 32 bitar internt. Olika varianter har olika databussar. 68008 har 8-bitars databuss. 68000 har 16-bitars och 68020 har 32-bitars. Visst är det ofta onödigt. Samma sak när man använder en 8-bitars minnescel till en flagga. Även om man bara behöver en bitt så hämtas ju alla 8, vilket iofs inte tar längre tid än om man bara ska ha in 1 bit. Ska en 8-bitars databuss ta in ett 32-bitars tal atr det naturligtvis längre tid. ( Kommentar i text 545 av Kristoffer Eriksson SYSOP <5357> ) ( Text 543 ) ( Text 544 ) 1986-09-03 23.20.02 Kristoffer Eriksson SYSOP <5357> Mottagare: Z80 Kommentar till text: 539 av Anders Franzén <5258> Ärende: Fråga om åttabitarsmaskiner Den där kodningen kallas BCD - Binary Coded Decimal. ( Kommentar i text 551 av Anders Franzén <5258> ) ( Text 544 ) ( Text 545 ) 1986-09-03 23.28.01 Kristoffer Eriksson SYSOP <5357> Mottagare: Z80 Kommentar till text: 543 av Peter Öhlén <4659> Ärende: Fråga om åttabitarsmaskiner Om man accessar en byte på en 68000 som har 16-bittars databuss, så hämtar den ändå två bytes (16 bittar), men väljer internt ut den rätta av dessa två. Somliga andra processorer kräver att datamängder mindre än ordlängden (som en byte på en 16-bittars buss) ligger i ena "änden" av ordet, så att det inte går att lägga t ex två "enkel-bytes" bredvid varandra i samma ord. I 68000-processorn, pekar en adress ut en speciell byte i minnet, trots dess 16 bittars buss. Den lägsta biten i adressen väljer ut vilken av de två bytes som hämtas som ska användas, när det är en byte som efter- frågas. Helord (16 bittar) får bara börja på en jämn byte-adress, så de inte riskerar att delas mella två ord i minnet... ( Kommentar i text 548 av Nils Hansson <519> ) ( Text 545 ) ( Text 546 ) 1986-09-03 23.29.09 Kristoffer Eriksson SYSOP <5357> Mottagare: Z80 Kommentar till text: 528 av Bo Kullmar SYSOP <1789> Ärende: Fråga om åttabitarsmaskiner Du menar att man får in en siffra i fyra BIT, inte byte... Som någon sa är "nibble" en annan benämning på 4 bittar. ( Text 546 ) ( Text 547 ) 1986-09-04 08.13.41 Bo Kullmar SYSOP <1789> Mottagare: Z80 Kommentar till text: 537 av Mikael Hovmöller <4688> Ärende: Fråga om åttabitarsmaskiner En siffra 0-9 får man ju in i 4 bitar enkelt eller hur? Digit är i alla fall Burroughs standard och det är det enda som gäller, vad man kallar det för på andra maskiner saknar relevans! ( Kommentar i text 554 av Mikael Hovmöller <4688> ) ( Text 547 ) ( Text 548 ) 1986-09-04 11.26.52 Nils Hansson <519> Mottagare: Z80 Kommentar till text: 545 av Kristoffer Eriksson SYSOP <5357> Ärende: Fråga om åtta/sexton-bitarsmaskiner Brukar man inte säga att en processor som har en 16 bitars buss för en 'äkta' 16 bitars processor (typ 8086) medan de som bara har 16 bitar internt inte är 'äkta' 16 bitars processorer (typ IBM-PCs 8088)? Mvh Nils Hansson ( Kommentar i text 549 av Mikael Lidén <5651> ) ( Text 548 ) ( Text 549 ) 1986-09-04 17.35.29 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 548 av Nils Hansson <519> Ärende: Fråga om åtta/sexton-bitarsmaskiner Hade Z80 kommit samtidigt som 8086:an så hade man kanske benämt den som 16 bitars... Man kan troligen inte säga bestämt att en Z80 är en 8-bitars, en 8086:a en 16 bitars osv. Z80 har tex 16bitars aritmetik, 16 bitars register, man kan alltid dela upp det hela och säga att en viss processor är x bit på uppgift y. Så man säger väl x-bit CPU om en CPU som har det mesta av funktionerna åt x bit hållet. ( Kommentar i text 552 av Kjell Enblom <5575> ) ( Text 549 ) ( Text 550 ) 1986-09-04 18.35.36 Curt Rehnborg <1121> Mottagare: Z80 Ärende: Programmera Z80 Zaks (Svenska uppl) Denna bok kan jag skaffa intresserade för 225:- inkl moms Har även möjlighet att skaffa andra böcker till nettopriser Hälsningar Curt ( Text 550 ) ( Text 551 ) 1986-09-04 20.59.14 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 544 av Kristoffer Eriksson SYSOP <5357> Ärende: Fråga om åttabitarsmaskiner I COBOL skriver man COMP i programmet och man kallar fälten för packade fält. ( Kommentar i text 553 av Bo Kullmar SYSOP <1789> ) ( Text 551 ) ( Text 552 ) 1986-09-05 04.15.19 Kjell Enblom <5575> Mottagare: Z80 Kommentar till text: 549 av Mikael Lidén <5651> Ärende: Fråga om åtta/sexton-bitarsmaskiner Z80 har inte en ren 16 bitars intern arkitektur. Accumulatorn är ju bara 8 bitars, och BC, DE, HL kan inte användas hur som helst. Man kan tex inte göra ADD BC,DE Utan man måste använda HL vid 16 bitars addition. 8086 och 8088 däremot har 16 bitars accumulator ( egentligen ett generellt register) De har en ren 16 bitars intern arkitektur. Z80 är därför 8 bitars och 8088, 8086 är 16 bitars. Detta är dock inte den korrekta definitionen på 8 respektive 16 bitars processorer, den är lite annorlunda. Jag kommer dock inte ihåg den just nu. ( Kommentar i text 584 av David Andersson <5201> ) ( Text 552 ) ( Text 553 ) 1986-09-05 07.00.30 Bo Kullmar SYSOP <1789> Mottagare: Z80 Kommentar till text: 551 av Anders Franzén <5258> Ärende: Fråga om åttabitarsmaskiner Ja, i COBOL74 heter det COMP, men i COBOL68 heter det COMP-2. ( Text 553 ) ( Text 554 ) 1986-09-05 14.59.42 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 547 av Bo Kullmar SYSOP <1789> Ärende: Fråga om åttabitarsmaskiner Så man får med 'packning' in tal från 0-99, men utan får man 0-255? Underbar packning... M.v.h. Micke ( Kommentar i text 555 av Anders Franzén <5258> ) ( Text 554 ) ( Text 555 ) 1986-09-05 19.59.34 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 554 av Mikael Hovmöller <4688> Ärende: Packning av tal I COBOL kan man låta bli att packa tal, då hamnar en siffra i en byte. Om man packar (COMP) hamnar två sifror i en byte. Dessutom kan man ha binära tal (COMP-3) och då lägger man talen binärt i byten. ( Kommentar i text 556 av Mikael Hovmöller <4688> ) ( Text 555 ) ( Text 556 ) 1986-09-06 00.56.41 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 555 av Anders Franzén <5258> Ärende: Packning av tal Varför använda decimala siffror även internt? Bitslöseri! M.v.h. Micke ( Kommentar i text 557 av Kristoffer Eriksson SYSOP <5357> ) ( Text 556 ) ( Text 557 ) 1986-09-07 06.40.42 Kristoffer Eriksson SYSOP <5357> Mottagare: Z80 Kommentar till text: 556 av Mikael Hovmöller <4688> Ärende: Packning av tal Det går snabbare att omvandla till utskriftsform (kanske ingen omvadling alls), och det är ju inte matematik COBOL är avsett för i första hand... ( Text 557 ) ( Text 558 ) 1986-09-07 08.58.57 Gunnar Larsson <4876> Mottagare: Z80 Ärende: Cirkel Var läses 'lektionerna' ? Man kan väl alltid lära sig något nytt, eller komma med tips. Mvh Gunnar. ( Text 558 ) ( Text 559 ) 1986-09-11 20.08.58 Mikael Lidén <5651> Mottagare: Z80 Ärende: Bokbeställningar Hitills har två bokbeställningar kommit in, Rainer Grieser och Ulf Sjöstrand blir det inte fler fåreslår jag att var och en skaffar sin litteratur själv. Mikael. ( Kommentar i text 560 av Mikael Lidén <5651> ) ( Text 559 ) ( Text 560 ) 1986-09-12 18.55.47 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 559 av Mikael Lidén <5651> Ärende: Bokbeställningar Nu har jag två beställningar till (som har kommit till rätta), vad jag nu undrar är om alla skall ha både Programming the Z80 och Mikrodatorns ABC, samt om det går bra med Programming the Z80 på engelska eller om den måste vara på svenska ? Mikael ( Kommentar i text 561 av Curt Rehnborg <1121> ) ( Text 560 ) ( Text 561 ) 1986-09-12 22.40.42 Curt Rehnborg <1121> Mottagare: Z80 Kommentar till text: 560 av Mikael Lidén <5651> Ärende: Bokbeställningar Har 2 st Programmera Z80 (Zaks, svensk upplaga) som är till salu till netto om någon har intresse ( Kommentar i text 562 av Mikael Lidén <5651> ) ( Text 561 ) ( Text 562 ) 1986-09-13 19.40.39 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 561 av Curt Rehnborg <1121> Ärende: Bokbeställningar Intresserade hör av sig direkt till Curt. ( Text 562 ) ( Text 563 ) 1986-09-19 01.34.05 Peter Goldmann <5080> Mottagare: Z80 Ärende: ABC-datas assembler Är det någon som kört denna assembler? Den sägs arbeta direkt så man får uppfattningen att det blir nästan som att skriva i BASIC - instruktionerna exekveras direkt. Hur är det om man vill länka ihop moduler med denna assembler? Roligt att få höra synpunkter. Mvh Peter 5080 ( Text 563 ) ( Text 564 ) 1986-09-27 12.43.39 Peter Goldmann <5080> Mottagare: Z80 Ärende: Övningsuppgifter Jag har programmerat en 1802 en gång i tiden och det fina med den var att den hade en Q-utgång som man kunde kontrollera helt maskinmässigt. Den hade 4 ingångar som man också kunde känna av. Med den processorn var man 'on line ' och kunde direkt få kontakt med en process. Ett tips till kursens lärare vore att man gick igenom små programmoduler som just gjorde att man kunde få Z80 på tråden på samma vis - men här via v24 resp cha chb på 800-serien och bandspelarutgången samt bussen. Det kan tyckas galet att börja i den änden, men det är mycket inspirerande om man har direkt kontakt med materien. Bara en sådan sak som att kunna tända eller släcka en godtycklig punkt på skärmen vore fint. Nu kommer det på nya datorer RISC -reduced instruction set c ___. Kunde man inte välja ut en delmängd av instruktioner ur Z80:s som är mest gångbara och koncentrera sig på dem först? ( Kommentar i text 569 av Mikael Hovmöller <4688> ) ( Text 564 ) ( Text 565 ) 1986-09-27 12.57.16 Peter Goldmann <5080> Mottagare: Z80 Ärende: övningsuppgifter Många av de kraftfulla instruktionerna hos z80 kan ju brytas ned i mindre utan att man förlorar allt för mycket i tid, (blocköverföring i minnet). Men om man kan åstadkomma samma med några standardinstruktioner så får man ju upp vigheten och kondisen i att använda dem. Om man har tillgång till ordbehandling är kanske inte en assembler nödv- vändig i början. För man måste ju alltid skriva sina instruktioner. Vad man behöver är då drivrutiner från BASIC eller DOS som gör att man kan läsa in .abs filer till minnet och dumpa minnet till .abs fil på band eller disk. Vilken väg är att föredra? Att gå från BASIC eller att gå från DOS? Faktum är att om man går fr4ån DOS och har en BOOT-rutin borde man kunna köra program som var nära 60kB - om man med en switch kopplade bort BASICEN och hade RAM-minne från 0 - 65535. För en del av vitsen med att lära z80 - det är väl att den inte behöver anses så omodern om man utnyttjar den fullt ut. Beprövad - dokumenterad - tillgänglig. ( Kommentar i text 568 av Mikael Lidén <5651> ) ( Text 565 ) ( Text 566 ) 1986-09-27 14.05.31 Peter Goldmann <5080> Mottagare: Z80 Ärende: övningsuppgifter Förutom att välja en delmängd av z80 instruktioner vore det nog bra att koncentrera sig på att programmera relokerbart. På det viset blir ju programmet inte beroende på var i minnet det ligger även om det kan peka på och använda fasta areor/minnesceller för att byta variebler med andra moduler, och överföra värden mellan moduler. Välkommet vore just om man efter kursens slut hade en uppsättning användbara moduler som låter sig plockas samman efter behov. PS - det har varit tyst ett slag i mötet - jag hade tänkt att följa kursen efter möjlighet men har ej anmält mig. Går det inte att använda z80-manualen? Och hämta exempel och förtydliganden ur andra källor? Att gå in på olika talsystem kan man skjuta upp lite om man går från basic och instruktionerna listade i dec.kod vid hand- assemblering. Hur mycket kommer man att använda hex och binärt vid program som ej ägnar sig åt räkning och talmaipulationer? ( Kommentar i text 567 av Benny Löfgren SYSOP <2615> ) ( Text 566 ) ( Text 567 ) 1986-09-27 15.45.34 Benny Löfgren SYSOP <2615> Mottagare: Z80 Kommentar till text: 566 av Peter Goldmann <5080> Ärende: övningsuppgifter Att förstå sig på det binära talsystemet och lite boolsk algebra är livs- nödvändigt vid maskinkodsprogrammering! Kommer man bara över den första tröskeln så säger det klick, och då går det mycket lättare sedan. ( Kommentar i text 570 av Mikael Hovmöller <4688> ) ( Text 567 ) ( Text 568 ) 1986-09-27 19.03.37 Mikael Lidén <5651> Mottagare: Z80 Kommentar till text: 565 av Peter Goldmann <5080> Ärende: övningsuppgifter Kanske en egenhändigt ihopbyggd Z80 vore något, jag har en färdig konstruktion bestående av CPU,SIO 2xPIO, CTC, realtidsklocka, batteribackup:at minne och klocka, tilläggskort med 16 analoga 12bits ingångar, 8 relä 5A, 8 optoingångar, 2 analoga 8 bit ut. Jag har som sagt bara konstruktionen och en virad prototyp, det kostar lite att fixa kretskortslayout & kort, så jag avvaktar för tillfället. Det här inlägget kan ses som en liten parantes. ANGÅENDE BÖCKER.... Curth Rehnborg fixar Programmera Z80 till ett bra pris, så att det går bra att beställa av honom. Jag kommer att på måndag beställa Marksjös Mikrodatorns ABC, pris meddelas senare. Mikael ( Text 568 ) ( Text 569 ) 1986-09-29 20.20.15 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 564 av Peter Goldmann <5080> Ärende: Övningsuppgifter Jo. Lämpliga 'nybörjarinstruktioner' är tex ADC ADD AND BIT CALL CP DEC (DJNZ) INC JP JR LD OR POP PUSH RES (RST) SBC SET SUB XOR Dessa 19 (21) räcker till nästan allting, och inget av dem är speciellt avancerat. M.v.h. Micke ( Kommentar i text 571 av Anders Franzén <5258> ) ( Text 569 ) ( Text 570 ) 1986-09-29 20.24.57 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 567 av Benny Löfgren SYSOP <2615> Ärende: övningsuppgifter Just! Och dessutom är det inte så svårt att lära sig räkna med talsystem med olika bas! Lämplig övning: Bestäm b om 86=(321) b b står då för basen i talsystemet. (På svenska: med vilken bas skrivs det decimala talet 86 321?) (Talet hämtat från provräkning) M.v.h. Micke Ps. Det hjälper MYCKET att kunna sånt här!!! Ds. ( Kommentar i text 585 av David Andersson <5201> ) ( Text 570 ) ( Text 571 ) 1986-09-30 20.23.15 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 569 av Mikael Hovmöller <4688> Ärende: Övningsuppgifter Använder man sig av CALL bör man nog lära sig RET också. ( Kommentar i text 572 av Mikael Hovmöller <4688> ) ( Text 571 ) ( Text 572 ) 1986-09-30 21.18.47 Mikael Hovmöller <4688> Mottagare: Z80 Kommentar till text: 571 av Anders Franzén <5258> Ärende: Övningsuppgifter (. Nej, varför det? .) Hmmm, jag tittade igenom Zaks bok, och skrev ner de 'vanligaste' on-line. Tyvärr råkade tydligen RET falla bort, förmodligen pga likheten med RES... M.v.h. Micke ( Text 572 ) ( Text 573 ) 1986-10-02 21.26.15 Gunnar Larsson <4876> Mottagare: Z80 Ärende: Vanligaste Vet man hur XOR fungerar behöhs inte CP. Mvh Gunnar. ( Kommentar i text 574 av Kjell Svensson <5318> ) ( Kommentar i text 575 av Kristoffer Eriksson SYSOP <5357> ) ( Text 573 ) ( Text 574 ) 1986-10-02 22.10.49 Kjell Svensson <5318> Mottagare: Z80 Kommentar till text: 573 av Gunnar Larsson <4876> Ärende: CP kontra XOR. CP ändrar ju inte värdet på accumulatorn,det gör ju däremot XOR. Om man inte behöver värdet mer utan bara vill ha ZERO flaggan satt,(om acc = operand) så går det ju bra. Med CP (compare) även se om operanden är större eller mindre än accen. mvh Kjell.S. ( Text 574 ) ( Text 575 ) 1986-10-04 00.56.05 Kristoffer Eriksson SYSOP <5357> Mottagare: Z80 Kommentar till text: 573 av Gunnar Larsson <4876> Ärende: Vanligaste Den närmaste motsvarigheten till CP är SUB, inte XOR. Och som sagt, CP förstör inte innehållet i A-registret. ( Text 575 ) ( Text 576 ) 1986-10-07 17.14.31 David Asztely <2920> Mottagare: Z80 Ärende: IY-registret När jag för några dagar sedan satt och knappade lite assemler på farsans ABC80 kom jag fram till en sak: - När maskinen startas upp sätts IY-registret till att peka på adress 65046 där det ligger lite trevliga systemvariabler runt omkring. (ursäkta svenskan) När man sedan anropar en assembler- rutin där IY-registret får ett annat värde,kommer maskinen att "dyka" vid återhoppet till basicen. Alltå - vid återhopp till basicen måste IY-registret ha värdet 65046 Kanske gammal skåpmat för vissa, men kanske helt nytt för andra, som inte kan förstå varför maskinen kraschar när de kör sina assebler- rutiner där IY-registret används! mvh David <2920> ( Kommentar i text 593 av Patric Ljung <5455> ) ( Text 576 ) ( Text 577 ) 1986-10-20 21.54.13 Peter Goldmann <5080> Mottagare: Z80 Ärende: Vad har hänt? Jag loggar in och loggar in ... väntar att det skall finnas en uppsjö av olästa inlägg i z80-mötet - men vilket nys. Kan någon tala om vad som hänt? På min önske lista över vad som skulle kunna tas upp är: (ev. senare) 1) Hur man lägger till egna BASIC komandon 2) Hur man länkar in nya enheter 3) Hur man lägger program i prom och väljer att ev. länka in dem som enheter. Har jag ett program ord kan jag ju i prom anropa det som ORD: - eller hur? LIB: ger diskettinnehåll etc. 4) Ett program där jag kan köra från BASIC och simulera enklare instruktioner. D v s en z-80 atrapp som förstår mnomicsen och visar vad den gör - - men det kanske är lite för vidlyftigt. 5) Tips om vilka bitar i BASIC-tolken som går att använda. 6) Ev att man kunde utöka BASICtoken så att den förstod de instruktioner som i tidigare inlägg angavs som matnyttiga och ett minimum som man klarar sig långt på. Hälsningar - låt höra av er! Peter (5080) ( Kommentar i text 578 av Lars Gjörling <6825> ) ( Kommentar i text 583 av David Andersson <5201> ) ( Text 577 ) ( Text 578 ) 1986-10-21 00.25.14 Lars Gjörling <6825> Mottagare: Z80 Kommentar till text: 577 av Peter Goldmann <5080> Ärende: Vad har hänt? En hel del av din önskelista kan du få svar på i 'ABC-bibeln' dvs BIT för BIT med ABC800. 1) Hur man lägger till egna BASIC kommandon beskrivs på sidorna 89-95 (och 152). 2) Hur man länkar in nya enheter hittar du på sidorna 96-97. Om du vill göra UFD-bibliotek till enheter, så ta hem programmet UDEVIN och studera det! 5) Tips om vilka bitar i BASICtolken och även DOS, som kan användas hittar du på sidorna 76-83. Mvh Lars Gjörling <6825> ( Text 578 ) ( Text 579 ) 1986-10-23 18.05.58 Rolf Lundahl <5254> Mottagare: Z80 Ärende: Minneskarta Är det någon som vet någon boktitel och författarens namn på en bok som beskriver alla minnes positioner på ABC806. Tacksam för svar. Mvh Rolf ( Kommentar i text 580 av Bo Kullmar SYSOP <1789> ) ( Text 579 ) ( Text 580 ) 1986-10-23 19.26.01 Bo Kullmar SYSOP <1789> Mottagare: Z80 Kommentar till text: 579 av Rolf Lundahl <5254> Ärende: Minneskarta Inte alla, men en hel del uppgifter hittar du i Bit för Bit med ABC800. Den stämmer till stor del även för ABC806. Något annat finns inte. ( Kommentar i text 581 av Curt Rehnborg <1121> ) ( Text 580 ) ( Text 581 ) 1986-10-23 21.27.37 Curt Rehnborg <1121> Mottagare: Z80 Kommentar till text: 580 av Bo Kullmar SYSOP <1789> Ärende: Minneskarta Tekniska manualen för ABC806 innehåller faktiskt en hel del nyttigt och intressant ( Kommentar i text 582 av Jaan Tombach <4283> ) ( Text 581 ) ( Text 582 ) 1986-10-24 00.11.23 Jaan Tombach <4283> Mottagare: Z80 Kommentar till text: 581 av Curt Rehnborg <1121> Ärende: Teknisk manual Vad kostar den? Mvh Janne ( Kommentar i text 586 av Bo Kullmar SYSOP <1789> ) ( Text 582 ) ( Text 583 ) 1986-10-24 02.27.00 David Andersson <5201> Mottagare: Z80 Kommentar till text: 577 av Peter Goldmann <5080> Ärende: Önskelista Det är en del rätt avancerade grejer du listar upp. Dessutom är det mesta olika på 80 och 800. Det kan bli opraktiskt att i kursen ta upp så avancerade saker som blir så olika på 80 och 800. Det blir liksom två helt olika kurser då. (För det var väl önskelista för Z80-mötets assembler kurs du menade?) ( Text 583 ) ( Text 584 ) 1986-10-24 02.48.52 David Andersson <5201> Mottagare: Z80 Kommentar till text: 552 av Kjell Enblom <5575> Ärende: Fråga om åtta/sexton-bitarsmaskiner Ska man vara nogrann så är det som sagt ordlängden i minnet som bestämmer X när man säger X bitars maskin. Praktiskt taget alltid så motsvarar det antalet bitar i databussen, och i de fall det inte gör det så får man oftast en bättre jämförelse om man även där räknar med antal bitar i databussen. Alltså: 4004 är en 4 bitars dator. Z80 " 8 " 8088 " 8 " 68008 " 8 " 8086 " 16 " 68000 " 16 " 68020 " 32 " Reflexmässigt kan det ta emot att kalla 8088 för 8-bitare då den kan addressera (minst) 1Mbyte jämfört med 8-bitaren Z80 med 64Kbyte. Ännu värre känns det att kalla 68008 med 16 st rena 32-bits register för en 8-bitare. Men de är ju 8-bitars datorer så det får man leva med. ( Kommentar i text 589 av Per Holmgren <5213> ) ( Text 584 ) ( Text 585 ) 1986-10-24 02.56.22 David Andersson <5201> Mottagare: Z80 Kommentar till text: 570 av Mikael Hovmöller <4688> Ärende: övningsuppgifter Just! Det är viktigt att kunna binära tal innan man fördjupar sig mera i assemblerprogramering. (Men att börja traggla talsystem med alla möjliga baser är onödigt, tycker jag. Det blir bara ett hinder för de som snabbt vill komma in i processorn) Är "programmera Z80" tillräckligt tydlig och pedagogisk när det gäller att förklara binära tal? (Om jag ska kallas lärare här borde jag kanske ha boken själv) ( Kommentar i text 588 av Peter Thärning <3707> ) ( Text 585 ) ( Text 586 ) 1986-10-24 08.43.57 Bo Kullmar SYSOP <1789> Mottagare: Z80 Kommentar till text: 582 av Jaan Tombach <4283> Ärende: Teknisk manual Jag vet inte vad den kostar, men för upplysning till Sthlmare kan jag nämnas att den finns i klubblokalen. Den är dock mycket teknisk så att säga. Själv kan jag inte säga att jag har någon nytta av den. ( Kommentar i text 587 av Curt Rehnborg <1121> ) ( Text 586 ) ( Text 587 ) 1986-10-24 14.09.14 Curt Rehnborg <1121> Mottagare: Z80 Kommentar till text: 586 av Bo Kullmar SYSOP <1789> Ärende: Teknisk manual Den finns att beställa hos NLIS i motala ( Text 587 ) ( Text 588 ) 1986-10-24 14.44.03 Peter Thärning <3707> Mottagare: Z80 Kommentar till text: 585 av David Andersson <5201> Ärende: övningsuppgifter Det är en alldeles utmärkt bok i förklaringen av binära tal och hur man räknar med dem. Men boken kräver att man verkligen tar sig an den. Nybörjaren får säkert läsa om kapitelet flera gånger. Det kan dock påpekas att det är endast ca:28 sidor av bokens totala 628 sidor som direkt lär ut binära tal. Resten handlar som bekant om Z80, dess instruktioner och struktur. Sidantalet här gäller engelska versionen, programming the Z80. ( Text 588 ) ( Text 589 ) 1986-10-26 04.45.45 Per Holmgren <5213> Mottagare: Z80 Kommentar till text: 584 av David Andersson <5201> Ärende: Fråga om åtta/sexton-bitarsmaskiner Fniss.. Enligt den definitionen har jag en 10 bitars cpu på hyllan ! Hitachi HMCS400 addresserar programminnet i 10 bitars ord, har 11 bitars adressbuss, och lagrar data i 4 bitars ord - i särskilt dataminne. Men eftersom den bara har en 4 bit ALU så betraktar både jag och Hitachi den som en 4 bitars processor. ( Kommentar i text 590 av Peter Thärning <3707> ) ( Text 589 ) ( Text 590 ) 1986-10-26 18.04.32 Peter Thärning <3707> Mottagare: Z80 Kommentar till text: 589 av Per Holmgren <5213> Ärende: Fråga om åtta/sexton-bitarsmaskiner Hmm... Använder den alltså 10 adressledningar för att adressera programminnet men har 11 adressledningar totalt, eller? Har CPU'n 4 bitars databuss? ( Kommentar i text 592 av Per Holmgren <5213> ) ( Text 590 ) ( Text 591 ) 1986-10-26 19.15.32 Kent Berggren SYSOP <6019> Mottagare: Z80 Ärende: OS8 Är det någon som kan förklara hur en Z80 kan adresera 256K utan bankswitshing. OS8 gör det. Han som skrev det har förklarat men det går fortfarande inte in i mitt dumma huvud. "Horisontel och vertikal" minesadressering. !! ( Text 591 ) ( Text 592 ) 1986-10-28 18.03.54 Per Holmgren <5213> Mottagare: Z80 Kommentar till text: 590 av Peter Thärning <3707> Ärende: Fråga om åtta/sexton-bitarsmaskiner Hmm, måste ha varit sent på kvällen... Den adresserar programminnet i tio bitars ord. Alltså 10 bit databuss för programminnet. Programräknaren har 14, inte 11 bitar. Alltså 14 bit adressering av programminnet. ALU, dataminnet och de interna datavägarna håller 4 bit bredd. Alltså 4 bit processor, enligt min mening. Enligt den tidigare givna definitionen blir den en 10 bit processor varje gång den hämtar en ny instruktion... ( Kommentar i text 594 av Peter Thärning <3707> ) ( Text 592 ) ( Text 593 ) 1986-10-29 14.33.56 Patric Ljung <5455> Mottagare: Z80 Kommentar till text: 576 av David Asztely <2920> Ärende: IY-registret Visserligen skåpmat, men det är i princip en felaktig sak att göra ld iy,65041 Eller vad det nu var för tal. Talet i sig är ju i det närmaste ointressant om inte assembler snutten vill använda sig av just bas-adressen till några trevliga systemvariabler. mer korrekt bör det se ut som så här: begin push iy Spara iy's värde (vad värdet är spelar ingen ... roll). Värdet finns även kvar i iy end ... pop iy Ladda tillbaka det gamla värdet på iy ret Åter (till basic) men kursen kanske inte gått igenom push/pop. För att begripa detta så kan vetskap om vad stacken är för nåt vara underlättande. (ursäkta om inlägget kom opassande) mvh / Patric ( Kommentar i text 613 av David Asztely <2920> ) ( Kommentar i text 614 av David Asztely <2920> ) ( Text 593 ) ( Text 594 ) 1986-10-30 19.06.26 Peter Thärning <3707> Mottagare: Z80 Kommentar till text: 592 av Per Holmgren <5213> Ärende: Fråga om åtta/sexton-bitarsmaskiner Jupp. Håller med om att det är en 4 bitars processor. Men vad konstigt det verkar med just 4 bitar internt och 10 externt. Om processorn hämtar in ett 10 bitars ord, kan den då utnyttja 2x4 bitar eller bara 4 eller kanske alla? Hur fungerar det t.ex. om man vill addera två 4 bitars binära tal? ( Kommentar i text 616 av Per Holmgren <5213> ) ( Text 594 ) ( Text 595 ) 1986-10-31 01.25.20 Arne Hartelius SYSOP <2731> Mottagare: Z80 Ärende: Minsta möjliga ABS-program. Hur skriver man ett ABS-program vars enda syfte är att skriva ut HEJ? Vad jag undrar över är alltså om man måste börja och/eller avsluta på något speciellt sätt. Att spara programet i rätt format är inget problem då ASS sköter den delen. ( Kommentar i text 596 av Kent Berggren SYSOP <6019> ) ( Text 595 ) ( Text 596 ) 1986-10-31 07.41.10 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 595 av Arne Hartelius SYSOP <2731> Ärende: Minsta möjliga ABS-program. Avser du des egna rutiner eller vill du ha ett program som hanterar vanlig asmbler? ( Kommentar i text 597 av Arne Hartelius SYSOP <2731> ) ( Text 596 ) ( Text 597 ) 1986-10-31 07.50.58 Arne Hartelius SYSOP <2731> Mottagare: Z80 Kommentar till text: 596 av Kent Berggren SYSOP <6019> Ärende: Minsta möjliga ABS-program. Jag förstår inte vad du menar, jag vill veta det jag frågade efter. ( Kommentar i text 598 av Kent Berggren SYSOP <6019> ) ( Text 597 ) ( Text 598 ) 1986-10-31 08.05.33 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 597 av Arne Hartelius SYSOP <2731> Ärende: Minsta möjliga ABS-program. Det finns 2 sätt att angripa problemmet. 1 använda de interna koperna i dossystemet sys-file eller att ta det via basicen call 11. Det sista ser du flera exp på i TED.ASM ( Kommentar i text 599 av Kent Berggren SYSOP <6019> ) ( Text 598 ) ( Text 599 ) 1986-10-31 08.50.05 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 598 av Kent Berggren SYSOP <6019> Ärende: Minsta möjliga ABS-program. Nu har jga hittat mina papper. OM du vill utnytja den printer rutin som finns i CMDINT.SYS så skall HL peka på början av texen och så skall texten avslutas med chr¤(3). Den rutinen finns i mitt CMDINT.SYS på addressen 49152+6 sedan tar den hand om utskriften. Om du inte vill använda dej utav CMDINT.SYS så skriverdu att HL pekar på textens början och BC på antal tecken så gör du call 11. Det är den rutin som man använder sig av för det mästa. Hoppas att det var det du frågade om . ( Kommentar i text 600 av Arne Hartelius SYSOP <2731> ) ( Text 599 )  ( Text 600 ) 1986-10-31 09.20.31 Arne Hartelius SYSOP <2731> Mottagare: Z80 Kommentar till text: 599 av Kent Berggren SYSOP <6019> Ärende: Minsta möjliga ABS-program. Nej, jag vill alltså fortfarande veta hur man börjar och avslutar ett ABS-program. Glöm bort att programet överhuvudtaget skall utföra nånting. ( Kommentar i text 601 av Kent Berggren SYSOP <6019> ) ( Kommentar i text 603 av Patric Ljung <5455> ) ( Text 600 ) ( Text 601 ) 1986-10-31 13.34.28 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 600 av Arne Hartelius SYSOP <2731> Ärende: Minsta möjliga ABS-program. Titta i GÖRABS så ser du hur det går till att göra en ABS-file. ( Kommentar i text 602 av Kent Berggren SYSOP <6019> ) ( Text 601 ) ( Text 602 ) 1986-10-31 13.54.24 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 601 av Kent Berggren SYSOP <6019> Ärende: Minsta möjliga ABS-program. Du kan oxo titta på filen ITHABS.BAC som ligger i text/asmkurs. Det är ett ABC80 program. ( Text 602 ) ( Text 603 ) 1986-10-31 17.23.03 Patric Ljung <5455> Mottagare: Z80 Kommentar till text: 600 av Arne Hartelius SYSOP <2731> Ärende: Minsta möjliga ABS-program. Nu skall jag berätta vad som är ett absolut måste för att få ett körbart ABS-program. Först skriver jag ett exempel att relatera till. zprog ; Sätter ASMZ att tolka ZILOG-assembler ; Kommentar start org 8000H ; Startadress = 32768 ; ; Här har du ditt assembler program och neråt. ; Om du vill komma tillbaks till DOS som alla andra program, ; exvis COPYLIB, LIB, osv. Dvs du får bara en "-" med markör ; efter avslutar du programmet med ett JP till nån adress ; Jag hittar tyvärr inte min ASMZ-manual, men i den står det. ; Om du bara avslutar programmet med RET får du upp samma text ; som du får när man du gör BYE. ; ret ; end start ; Detta är mycket viktigt! ; Det du anger efter end blir startadressen. ; Allt efter END ignoreras. zprog måste stå på första raden i programmet. Framför ZPROG kan man skriva ett namn som en label, vilket blir formellt programmets namn. Nedan följer ett program som skriver HEJ på skärmen med hjälp av den rutin som finns i BASIC-tolken och som används när du gör PRINT i ett BASIC-program. Programmet är kallat SKRIVHEJ. skrivhej zprog Programmet skriver hej på skärmen. ; start org 8000H ld hl,hejtext ld bc,4 ; Antal tecken = 4 call 11 ret ; hejtext defm 'HEJ!' ; end start Oj, det som står efter ZPROG bör vara en kortfattad innebörd av programmet. Hoppas du har förstått! Har du hajjat det här kan jag förklara litet mer om du vill. mvh / Patric ( Kommentar i text 604 av Lars Davidsson <7020> ) ( Kommentar i text 605 av Kent Berggren SYSOP <6019> ) ( Text 603 ) ( Text 604 ) 1986-10-31 18.38.34 Lars Davidsson <7020> Mottagare: Z80 Kommentar till text: 603 av Patric Ljung <5455> Ärende: Minsta möjliga ABS-program. Återhopp till DOS med hjälp av JP görs med JP 0C103h ( Text 604 ) ( Text 605 ) 1986-10-31 18.53.41 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 603 av Patric Ljung <5455> Ärende: Minsta möjliga ABS-program. ORG C700H Det är viktiggt om det oxo skall passa till alla ABC80. Alla Abs program börjar därför på C700H ( Text 605 ) ( Text 606 ) 1986-11-01 00.53.43 Arne Hartelius SYSOP <2731> Mottagare: Z80 Ärende: Skicka med argument i ABS-fil. Ok, med hjälp av närmast föregående inlägg fick jag klart för mig att jag glömt entryt, vilket naturligtvis gav reset som resultat. Nu vill jag veta hur hur man skickar med argument till en ABS-fil. Ganska få verkar känna till att man kan skriva t ex: DOSGEN,FD,80 DR1: så har man i ett huj berättat att man vill formattera med dubbel densitet och 80 spår. Tidsvinsten är knappast astronomisk men det avslöjar ju en viktig princip. ( Döper man om DOSGEN.ABS till D.ABS så räcker med att skriva D,FD,80 DR1: ) Nu undrar jag: 1. Är det upp till ABS-filen att själv ta hand om argumenten eller gör CMDINT.SYS en del av jobbet ? 2. Hur är det med argument av typen filnamn ? Dessa ska väl för eller senare formatteras ? Sköts det om av CMDINT.SYS eller den egna filen? Sköts formatteringen av en DOS eller BASIC-tolk-rutin ? Var ligger resul- tatet och hur ser resultatet ut ? Jag har ställt några liknande frågor tidigare men inte fått det hela riktigt klart för mig ändå. ( Kommentar i text 607 av Patric Ljung <5455> ) ( Kommentar i text 608 av Lars Davidsson <7020> ) ( Kommentar i text 611 av Anders Franzén <5258> ) ( Text 606 ) ( Text 607 ) 1986-11-01 10.21.05 Patric Ljung <5455> Mottagare: Z80 Kommentar till text: 606 av Arne Hartelius SYSOP <2731> Ärende: Skicka med argument i ABS-fil. Jag kan säga en sak innan jag går och rotar efter litet papper. Det är lättare från DOS än i BASIC. CMDINT (Commandintepreter) spara hela kommando raden i minnet, skall bara plocka fram adressen. Här följer: Kommdobuffert - 0C0B0H Här hamnar den kommandosträng man gav till CMDINT. De eventuella argument man har gett, tolkas dessutom som filnamn och läggs efter kontroll i 0FD40H och uppåt i block om 16 bytes. Ett block innehåller: - Drivespecifikation (1 byte) Möjliga värden 0-6 Drivenummer 254 Felaktig drivespecifikation 255 Ospecificierad drive - 0FFH (1 byte) = 255 - Filnamn (8 bytes) - Filtyp (3 bytes) - Enhet (3 bytes) Ett CHR¤(13) avslutar kommandoraden i kommandobufferten. Det är väl inte illa det där va? ( Text 607 ) ( Text 609 ) 1986-11-01 11.49.50 Patric Ljung <5455> Mottagare: Z80 Ärende: Kompilator teknik på Z80 I ex en C-compiler läggs ju variabler upp på stacken. Och funktioner kan användas i flera nivåer, som gör att variabler inte kan ligga på fasta ställen i minnet. Vad jag skulle vilja ha tipps om är hur man lägger upp sådana variabler på stacken. Även hur man kan tillämpa detta på en Z80. muh / Patric ( Kommentar i text 610 av Lars Davidsson <7020> ) ( Kommentar i text 628 av David Andersson <5201> ) ( Text 609 ) ( Text 610 ) 1986-11-01 12.17.30 Lars Davidsson <7020> Mottagare: Z80 Kommentar till text: 609 av Patric Ljung <5455> Ärende: Kompilator teknik på Z80 Själva värdet på variabeln ligger på fast adress i minnet.Det som kopieras hos variabler till en understående funktion är ett informations- block.Detta block består av bl.a pekare till variabelns värde. Så när en funktion anropas så bildas en ny variabellista där de externa variablarnas informationsblock länkas in först. ( Text 610 ) ( Text 611 ) 1986-11-02 18.01.55 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 606 av Arne Hartelius SYSOP <2731> Ärende: Skicka med argument i ABS-fil. Alla switchälskare må ursäkta, jag anser att detta sätt att förpassa indata till ett program är ett ålderdomligt sätt. Enligt min åsikt skall programmet fråga efter data, antingen med frågor som dyker upp på en skärm som skrollas eller med menyer (det senare är bäst tycker jag). Om man har menyer i hiarkier så bör man kunna snabbhoppa mellan dem med enkla logiska kommandon. De stora datortillverkarna satsar alltmer på ergonomi, varför ska inte programmakarna göra detsamma? ( Kommentar i text 612 av Patric Ljung <5455> ) ( Kommentar i text 617 av Per Holmgren <5213> ) ( Kommentar i text 618 av Peter Thärning <3707> ) ( Text 611 ) ( Text 612 ) 1986-11-03 00.28.10 Patric Ljung <5455> Mottagare: Z80 Kommentar till text: 611 av Anders Franzén <5258> Ärende: Skicka med argument i ABS-fil. Jag håller med dig. Ällra bäst är menyorienterade program. Men jag måste faktiskt säga att ibland blir det mycket enklare med para- metrar och switchar. ex ASMZ,DO HREX,HRRUN,HRSTD Men dessa program (med switchar) bör ALDRIG en vanlig användare behöva använda. De är till för programmerare som snabbt vill ange vad som skall utträttas. Menyer tar tid ibland, ett exempel är MENY0 i LUX-NET, där man måste hoppa runt i massa menyer för att lista bibliotek, kopiera osv. Där blir man bara irriterad av alla menyer. (åtminstone jag) Men en vanlig användare tycker förståss det är bättre med menyer, tror jag. ( Text 612 ) ( Text 614 ) 1986-11-03 11.39.12 David Asztely <2920> Mottagare: Z80 Kommentar till text: 593 av Patric Ljung <5455> Ärende: IY-registret Vem har sagt att man måste göra ld iy,65046 ??? I mitt inlägg har jag väl inte skrivit något sådant ,eller har jag ??? Givetvis är det smidigare att använda push/pop instruktionerna där man lagra värdet på stacken som är ett last in -first out-minne Hur långt kursen har kommit vet jag inte då jag inte deltar i den. ( Kommentar i text 615 av Patric Ljung <5455> ) ( Text 614 ) ( Text 615 ) 1986-11-03 13.07.55 Patric Ljung <5455> Mottagare: Z80 Kommentar till text: 614 av David Asztely <2920> Ärende: IY-registret Näe, det har du inte heller vid närmare granskning (Jag var litet för snabb i fingrarna). Men du skrev att iy registret måst laddas med 65046 för return till basic, det är ju korrekt. Du skrev aldrig hur, men jag tolkade det som ld iy. push/pop bör man använda om man inte lägger iy registret nån annan stans (minnet). Nåja, blaj, blaj, blaj! ( Text 615 ) ( Text 616 ) 1986-11-03 20.25.46 Per Holmgren <5213> Mottagare: Z80 Kommentar till text: 594 av Peter Thärning <3707> Ärende: OP kodernas sexliv i en HMCS400. Opkoderna har varierande längd, men det är generellt gjort så att man för det mesta klarar sig med ett ord för att få något gjort. De instruktioner som måste ha operand får för det mesta plats med den på de lägsta bittarna. Genom att cpu:n bara behöver göra en minnesaccess per instruktionscykel kommer det att gå ovanligt fort undan, om man jämför med andra fyrbittare. Add immediate adderar ett tal till ackumulatorn, och opkodens fyra lägsta bittar innehåller operanden: Hexkod Instr Operand ------------------------------ 234 LAI ¤4 ;Lägg en fyra i ackumulatorn. 282 AI ¤2 ;Addera två till ackumulatorn. 283 AI ¤3 ;Addera tre till ackumulatorn. ( Text 616 ) ( Text 617 ) 1986-11-03 20.33.30 Per Holmgren <5213> Mottagare: Z80 Kommentar till text: 611 av Anders Franzén <5258> Ärende: Skicka med argument i ABS-fil. Det ena goda behöver väl inte hindra det andra ? Man kan tänka sig att ett program som behöver indata tar emot det som eventuellt finns på kommandoraden, och om inte det räcker så kan det fråga efter eller lägga upp menyer för resterande argument. ( Text 617 ) ( Text 618 ) 1986-11-03 23.29.36 Peter Thärning <3707> Mottagare: Z80 Kommentar till text: 611 av Anders Franzén <5258> Ärende: Skicka med argument i ABS-fil. Switchar kan ju vara bra då man kör mot en dator via modem. Några switchar istället för menyer som fladdrar förbi i 300 b/s kan kanske ibland vara att föredra. ( Text 618 ) ( Text 619 ) 1986-11-03 12.59.35 Patric Ljung <5455> Mottagare: ABC800 Flyttad till: Z80 av Patric Ljung Ärende: linje-generator Jag satt och pula litet med assembler och lyckades göra en rutin för att rita linjer. Då blev jag glad. Men när jag till sist prövade upptäckte jag att den var slö, lika slö som samma rutin i BASIC. Då deppade jag ihop: - Är jag så soppig. Nåväl. Så här ser logik-schemat ut: integer: X1,Y1,X2,Y2,Color,Dfdx,Dfdy,Dx,Dy,X,Y; LINE(X1,Y1,X2,Y2) INIT_seq_ Dfdx:=X2-X1; Dfdy:=Y2-Y1; Dx:=SGN(Dfdx); Dy:=SGN(Dfdy); X:=X1; Y:=Y1; NDOT_sel_ _if_ ABS(Dfdx)>ABS(Dfdy) Ndots:=ABS(Dfdx); NDOT_or_ Ndots:=ABS(Dfdy); NDOT_end_ INIT_end_ PLOT(X,Y); DRAW_iter_ _while_ Ndots>0 STEP_sel_ _if_ F(X+Dx,Y) ) ( Text 619 ) ( Text 620 ) 1986-11-04 09.23.34 Patric Ljung <5455> Mottagare: Z80 Kommentar till text: 619 av Patric Ljung <5455> Ärende: linje-generator Det var visst inte så många som kunde svara på min fråga så jag flyttade den hit. Där det förmodligen finns fler assemblerpulare. Jag efterlyser en rutin för att generera vektorer (linjer) där det går undan. moss / Patric ( Kommentar i text 622 av Patric Ljung <5455> ) ( Text 620 ) ( Text 621 ) 1986-11-04 21.57.14 Kjell Svensson <5318> Mottagare: Z80 Ärende: Z80 mnemonics Jag har lagt in några filer som innehåller Z80-koderna uppställda på ett mycket praktiskt sätt. Filerna heter BLAD.....TXT Raderna i en del av filerna är ca 140 tkn långa så terminalprogrammet måste klara så långa rader. Filerna bör skrivas ut på en printer som klarar så långa rader för att det skall se vettigt ut. H/Kjell Svensson ( Kommentar i text 657 av Einar Eriksson <1720> ) ( Text 621 ) ( Text 622 ) 1986-11-05 23.41.26 Patric Ljung <5455> Mottagare: Z80 Kommentar till text: 620 av Patric Ljung <5455> Ärende: linje-generator Finns det _ingen_ som kan eller vill folk inte förtälja sina knep & knåp? Ställer bara en liten fråga. mvh / Patric ( Kommentar i text 626 av Lars Gjörling <6825> ) ( Text 622 ) ( Text 623 ) 1986-11-08 14.32.53 Lennart Anderson <6582> Mottagare: Z80 Ärende: ASM800 Jag har tagit hem programmet ASM800 från banken. Någon manual har jag därför inte (finns den, eller kommer den att läggas i banken?). Eftersom jag inte har arbetat med assemblerprogram tidigare så har jag ingen aning om hur att göra. Vad betyder tex de olika INFIL, LISTFIL och UTFIL? Hur ska de användas? Taxam om någon i korthet kan berätta hur det skall gå till. Med tack på förhand och m v h Lennart ( Kommentar i text 624 av Bo Kullmar SYSOP <1789> ) ( Kommentar i text 631 av Kent Berggren SYSOP <6019> ) ( Kommentar i text 632 av Kjell Svensson <5318> ) ( Text 623 ) ( Text 624 ) 1986-11-08 14.52.22 Bo Kullmar SYSOP <1789> Mottagare: Z80 Kommentar till text: 623 av Lennart Anderson <6582> Ärende: ASM800 Det finns en manual på papper och den kommer i sinomtid att tryckas upp och distribueras tillsammans med programvaran (för 100 SEK). Vi har inte manualen i maskinläsbar form eftersom den är skriven på en Metric 85:a. ( Kommentar i text 625 av Lennart Anderson <6582> ) ( Text 624 ) ( Text 625 ) 1986-11-08 17.34.53 Lennart Anderson <6582> Mottagare: Z80 Kommentar till text: 624 av Bo Kullmar SYSOP <1789> Ärende: ASM800 OK Det låter bra att en manual är på gång. Går det dessförinnan möjligen att få en mycket kortfattat förklaring enligt mitt ursprungliga inlägg. Tackar återigen på förhand. Mvh - Lennart ( Text 625 ) ( Text 626 ) 1986-11-09 00.08.33 Lars Gjörling <6825> Mottagare: Z80 Kommentar till text: 622 av Patric Ljung <5455> Ärende: linje-generator Nej jag tror inte att klubbmedlemmarna är ohjälpsamma, och inte heller tror jag att ingen kan någonting. Men det här är ju mycket tidskrävande att sätta sig in i och att skriva en assemblerrutin för. Du ger ju inte heller så mycket upplys- ningar om den assemblerrutin som du har fått att fungera mer än att den är slö. Jag är själv ingen stjärna på assembler, du kan säkert mycket mer än jag, men eftersom ingen annan har svarat dig, så skri- ver jag för att åtminstone visa att någon vill besvära sig. Jag har tittat på ditt matematiska schema och kan inte finna något galet, det BORDE fungera, och det har det ju också gjort. Men VARFÖR är rutinen slö? Assemblerrutiner brukar inte vara långsamma. Mina funderingar är att det måste vara något oprak- tiskt i den rutin som plottar punkterna (X,Y) på bilden. Kommunikationen med en HR-bild sker, om jag inte misstager mig, genom att den del ar RAM-minnet, som motsvarar bilden, med hjälp av minnesblocktabellen (utport 52) blockas in över internminnets nedersta 32k, vars adresser sedan kan användas för skrivning och läsning i HR-bilden. Därefter blockas HRbil- den ut igen. Om det nu är så (jag hoppas att jag inte förolämpar dig nu) att din plotrutin blockar in och blockar ut HR-minnet för var- je punkt, så måste den bli slö. Du måste i så fall i din assemblerrutin blocka in HR-bilden, sedan plotta alla punkter med direkta assemblerkoder, och först därefter blocka ut HR-bilden. Det var bara några funderingar. Du får förlåta mig om jag varit ut i ogjort väder. Mvh Lars Gjörling <6825> ( Kommentar i text 627 av Patric Ljung <5455> ) ( Text 626 ) ( Text 627 ) 1986-11-09 01.42.47 Patric Ljung <5455> Mottagare: Z80 Kommentar till text: 626 av Lars Gjörling <6825> Ärende: linje-generator Tack för svaret, man vet inte hur folk reagerar när man inte får det minsta tillstymmelse av svar. Så det var bra att du 'besvärade' dig. Jag får väl dock förklara mig och berätta vad jag hittills kommit fram till. Varför rutinen var slö: Det beror nog inte på plottningsrutinen av punkterna (annars tänkbar orsak). HR-minnet, hela minnet på 32K är inblockat HELA tiden. Detta är medvetet gjort för att det skall gå så snabbt det kan. Dock berodde det nog på multiplikations rutinen och funktionen F och testerna av denna. Men trots allt gav det en fungerande rutin, vilket jag tyckte var skoj. Men pga dess slöhet var jag tvungen att kasta den på hyllan. Ny metod: Jag har nu plockat fram en ny metod (Har ej hittat på den själv). Dock har jag applicerat den i assembler själv. Hur man matematiskt kommit fram till rutinen kan jag ej riktigt förklara, men den kan bli snabb! Mycket snabbare kan man nog inte göra den om man inte har klockfrekvens till processorn eller möjligtvis några funktioner hos processorn som kan uttnyttjas (ex 68000-serien). BASIC-funktion för ritning av vektor med vinkeln mellan vektorn och horison planet mindre än eller lika med 45 grader. Inom denna ram åt vilket håll som helst. procedur ÅTTAP(x1,x2,y1,y2,intens: integer); var q,x,y,dfdx,dfdy,dx,dy: integer; begin dx := SGN(x2-x1); dy := SGN(y2-y1); dfdx := -dy*(y2-y1); dfdy := dx*(x2-x1); x := x1; y := y1; q := 2*dfdx+dfdy; PLOT(x,y,intens); repeat x := x+dx if q>=0 then q := q+2*dfdx else begin y := y+dy q := 2*dfdx+2*dfdy end PLO(x,y,intens); until x=x2 end; not: raderna mellan repeat och until skall vara inskjutna. Hur rutinen program-mässigt fungerar lär väl inte vara så svårt att begripa Det matematiska sambandet har jag inte riktigt förstått mig på, tyvärr, riktigt. Dock lämpar sig denna rutin UTMÄRKT för maskinkod i 256x240 pixs upplösning Jag har lagt upp det på följande vis: H = y L = x BC = dx (1,0,-1) DE = dy (256,0,-256) HL' = q BC' = dfdx*2 DE' = dfdy*2 Med denna uppläggning innebär ett steg i x-led ADD HL,BC och ett steg i y-led ADD HL,DE. Den absoluta adressen där punkt skall sättas blir. srl h rr l HL innehar nu direkt adress och beroende på carry vet man i vilken del av byten man skall sätta. (Division med 2, rest i carry) Beräkning q innebär vid stegning enbart i x-led ADD HL',BC' och i både x-led och y-led ADD HL',BC'; ADD HL',DE'. Det enda värde som ej finns i processorns register är slutkoordinaten. Denna ligger lagrad i minnet. Klura litet så kanske jag kommer på nåt bättre sätt, kolla med stacken (EX (SP),HL) kanske. Dock har jag inte fått rutinen att fungera riktigt, det är nåt skumt. När jag kör TRACE (utan att blocka in minne och sånt) får jag rätt värden på q,x,y. Men det blir i alla fall fel sedan, får fortsätta med min fel- sökning. Jag kan skicka in källkoden om ni vill (fungerar ej än), dock ej just nu. Jag ber om ursäkt för alla stavfel och felaktigheter, orkar ej ändra dessa, klockan är mycket (för mig som inte sov mycket igår heller). När jag funnit lösning kanske det kan vara nåt till en artikel i bladet. Tag dock ej med detta i bladets MSG-sidor. (brev '11') HEJ / mvh / Patric ( Kommentar i text 630 av Patric Ljung <5455> ) ( Kommentar i text 637 av Lars Gjörling <6825> ) ( Kommentar i text 644 av Lars Karis <6555> ) ( Text 627 ) ( Text 628 ) 1986-11-09 02.31.10 David Andersson <5201> Mottagare: Z80 Kommentar till text: 609 av Patric Ljung <5455> Ärende: Lokala variabler Jag antar att du ska skriva ett prog i assembler, inte en kompilator. Om en rutin ska ha egna variabler som inte får ligga på fasta adresser så lägger man variablerna på stacken. RUTIN: LD IX,-10 ADD IX,SP ;IX pekar 10 bytes ovanför stacken LD SP,IX ;stackpekaren flyttas 10 bytes ... LD IX,10 ADD IX,SP ;IX pekar 10 ner i stacken LD SP,IX ;återställ stackpekaren RET Innuti rutinen kan man använda adresserna IX+0 till IX+9 till att lagra lokala data för rutinen i. Data förstörs efter att man återställt stackpekaren när man gör return från rutinen. Ev PUSH/POP eller CALL i rutinen påverkar inte addresseringen av de lokala variablerna. Har man en rekursion får varje anrop en egen dataarea på stacken. Man kan göra det mera komplicerat och kompinera detta med parameteröverföring till/från rutinen. ( Kommentar i text 629 av Patric Ljung <5455> ) ( Kommentar i text 892 av Lars Magnusson <2517> ) ( Text 628 ) ( Text 629 ) 1986-11-09 14.05.35 Patric Ljung <5455> Mottagare: Z80 Kommentar till text: 628 av David Andersson <5201> Ärende: Lokala variabler Titta, det börjar likna nåt intressant. Du tog dock fel i antagandet av vad jag skulle göra. En kompilator var det fråga om. Berätta gärna mer om du vill, jag loggar allt till printern. mth (tacksamma) / Patric ( Kommentar i text 635 av David Andersson <5201> ) ( Text 629 ) ( Text 630 ) 1986-11-09 14.10.22 Patric Ljung <5455> Mottagare: Z80 Kommentar till text: 627 av Patric Ljung <5455> Ärende: linje-generator En assembler rutin ligger i inlådan under namnet HRLINEX.ASM. Denna rutin fungerar bra. Dock skulle jag gärna vilja ha den litet uppsnabbad. Om det är nån som vill titta på den så var sågod. Den är för tillfället bara definierad då dx är störra än dy. Det är väl kanske främst initieringsrutinerna man kan göra nåt åt. Finns det nån som kan ge förslag på hur man skall dissa de rutiner som. ligger under bildminnet, det är väl där hr-rutinerna ligger? muh / Patric ( Text 630 ) ( Text 632 ) 1986-11-09 20.07.20 Kjell Svensson <5318> Mottagare: Z80 Kommentar till text: 623 av Lennart Anderson <6582> Ärende: ASM800 INFIL borde vara den textfil med källkod som skall assembleras. LISTFIL den fil där källkoden listas med de ifyllda adresserna t.ex PR: UTFIL är troligen var du vill spara det färdiga resultatet av assembleringen DRX:FILNAMN H/Kjell ( Kommentar i text 633 av Lennart Anderson <6582> ) ( Text 632 ) ( Text 633 ) 1986-11-09 21.04.38 Lennart Anderson <6582> Mottagare: Z80 Kommentar till text: 632 av Kjell Svensson <5318> Ärende: ASM800 Tack - i alla fall en liten bit på väg och det tyx stämma med ungefär hur jag trodde det skulle vara. Följdfråga: Om INFIL är den textfils som skall assembleras, hur åstadkommes denna textfil. Även för detta, bl a med hänsyn till lables och hoppadresser m m så borde finnas några fasta regler eller någon hjälpfil som stöder detta. Fortfarande taxam för ytterligare råd och tips. Mvh - Lennart ( Kommentar i text 634 av Kjell Svensson <5318> ) ( Text 633 ) ( Text 634 ) 1986-11-09 23.13.45 Kjell Svensson <5318> Mottagare: Z80 Kommentar till text: 633 av Lennart Anderson <6582> Ärende: ASM800 Källkoden skrivs in med vilken editor som helst t.ex. TED Hur den specifikt skall se ut för ASM800 vet jag inte,jag har aldrig kört den. H/Kjell ( Text 634 ) ( Text 635 ) 1986-11-12 01.30.21 David Andersson <5201> Mottagare: Z80 Kommentar till text: 629 av Patric Ljung <5455> Ärende: Lokala variabler Jaha, en kompilator. Vilket språk då? (Vad språk det än är så är det en stor uppgift, Lycka till) ( Kommentar i text 636 av Patric Ljung <5455> ) ( Text 635 ) ( Text 636 ) 1986-11-12 21.18.46 Patric Ljung <5455> Mottagare: Z80 Kommentar till text: 635 av David Andersson <5201> Ärende: Lokala variabler tja, nånting i c-stilen (även möjligt med logik-schema typ). Nån riktig stor kompilator lär det väl inte bli. Vill bara känna på tekniken litet grann, hur just variabler läggs upp. Förmodligen med möjlighet att skriva in egen assembler i funktionerna. Då kan man ju alltid bygga upp den litet själv. Nån erfarenhet? ( Kommentar i text 648 av Anders Nyman <2956> ) ( Text 636 ) ( Text 637 ) 1986-11-13 20.16.15 Lars Gjörling <6825> Mottagare: Z80 Kommentar till text: 627 av Patric Ljung <5455> Ärende: linje-generator Jag har tittat på din Pascal-rutin för linjegeneratorn och försökte förstå den matematiskt. Jag hittade då ett matema- tiskt fel i 5:e raden från slutet, som skall lyda: q := q + 2*dfdx + 2*dfdy Jag vet inte om det är ett rent skrivfel vid insändningen, eller om det är detta som är det skumma, du talar om. Det är då inte heller så svårt att se hur proceduren skall se ut om vinkeln mellan vektorn och horisontalplanet är större än 45 grader: procedure ATTAP2(x1,x2,y1,y2,intens: integer); var q,x,y,dfdx,dfdy,dx,dy: integer; begin dx := SGN(x2-x1); dy := SGN(y2-y1); dfdx := dy*(y2-y1); dfdy := -dx*(x2-x1); x := x1; y := y1; q := 2*dfdy+dfdx; PLOT(x,y,intens); repeat y := y + dy; if q>=0 then q := q + 2*dfdy else begin x := x + dx; q := q + 2*dfdx + 2*dfdy end; PLOT(x,y,intens); until y = y2 end; Den här proceduren skall alltså genomföras om ABS(y2-y1) är större än ABS(x2-x1), annars den tidigare proceduren. Dom ser ju rätt likartade ut, kanske kan man slå ihop dem till en procedure på något sätt?? Något försök till assemblerrutin har jag inte gett mig på. Däremot fungerar båda procedurerna ju bra, omskrivna till BASIC, både för positiv och negativ riktningskoefficient. De är inte heller SÅ svåra att förstå matematiskt. Mvh Lars Gjörling <6825> ( Kommentar i text 638 av Patric Ljung <5455> ) ( Text 637 ) ( Text 638 ) 1986-11-14 00.09.34 Patric Ljung <5455> Mottagare: Z80 Kommentar till text: 637 av Lars Gjörling <6825> Ärende: linje-generator Tackar! Jo det är fel i mitt inskick, det skall vara q := q + 2*dfdx+2*dfdy Jag har fått rutinen att fungera för alfa<=45, och det bli nog inte så knepigt att få den för större vinklar. En assembler rutin finns i INLÅDA/ABC800, den heter HRLINEX.ASM. Dock måste jag göra initieringsrutinerna snabbare, och eventuellt plot- rutinen. Det måste gå att göra snabbare. Rutinen är litet,litet snabbare än FGLINE. Är det ingen som vet om man kan få en diss på grafik-prommet utan att flytta på det, till exvis PROM-läsare. Skulle vara intressant att se på de rutinerna. mvh / Patric ( Text 638 ) ( Text 639 ) 1986-11-20 16.17.18 Patric Ljung <5455> Mottagare: Z80 Ärende: Rotate digit Finns det nåt lämpligt sätt att flytta bitarna D0-D3 till D4-D7? Allra helst valfritt register. I nuvande fall görs det av 4 st sla c, vilket tar 8 minnes läsningar, vore intressant att få ner det till 4. hoppas på häftiga svar. ( Kommentar i text 640 av Peter Thärning <3707> ) ( Kommentar i text 641 av Lars Gjörling <6825> ) ( Kommentar i text 642 av Lars Gjörling <6825> ) ( Text 639 ) ( Text 640 ) 1986-11-20 20.12.59 Peter Thärning <3707> Mottagare: Z80 Kommentar till text: 639 av Patric Ljung <5455> Ärende: Rotate digit Här kommer ett RÅhäftigt svar: Old way: New way: ---------------------------------------- Instruction M T Instruction M T SLA r 2 8 LD A,r 1 4 SLA r 2 8 ADD A,A 1 4 SLA r 2 8 ADD A,A 1 4 SLA r 2 8 ADD A,A 1 4 ADD A,A 1 4 LD r,A 1 4 ======================================== 8 32 6 24 Om du kan använda Acken från början så kommer du ned i dina efterlysta 4M. r må bytas ut mot B, C, D, E eller H. ( Kommentar i text 645 av Patric Ljung <5455> ) ( Text 640 ) ( Text 642 ) 1986-11-20 23.40.16 Lars Gjörling <6825> Mottagare: Z80 Kommentar till text: 639 av Patric Ljung <5455> Ärende: Rotate digit Jag antar att det är fråga om ditt program hrlinex.asm?? Då gäller det kanske att manipulera nibbles i den adress, som HL pekar på? Går det inte då att använda RLD på något sätt? Eller är det något mer allmänt användbart som du är ute efter? För RLD är M=5 och T=18. Mvh Lars Gjörling <6825> ( Kommentar i text 643 av Lars Gjörling <6825> ) ( Text 642 ) ( Text 643 ) 1986-11-21 14.14.44 Lars Gjörling <6825> Mottagare: Z80 Kommentar till text: 642 av Lars Gjörling <6825> Ärende: Rotate digit-HRLINEX.ASM Jag skulle kanske förtydliga mig en smula, vad jag menade beträffande HRLINEX.ASM. Jag har tittat på dina assemblerrader, framför allt på plot-rutinen. Det där med srl h och rr l kände jag inte till, det är ju utomordent- ligt listigt. Men resten av rutinen ser kanske litet snårig ut. Jag undrar om det inte fungerar med: plota push hl srl h rr l jr nc,plotah rrd ld a,1 rld pop hl ret plotah rld ld a,1 rrd pop hl ret Visserligen är rld och rrd båda 5-cyklers kommandon, men du slipper ju push bc, pop bc, jr plota_ex, and ..., or b, ld a,(hl), ld (hl),a och 4 st sla. Jag är relativ nybörjare på assembler (men mycket intresserad) och saknar rutin och erfarenhet (vilket jag håller på att försöka skaffa mig). Du får ta förslaget som ett elevarbete. Mvh Lars Gjörling <6825> ( Kommentar i text 646 av Patric Ljung <5455> ) ( Text 643 ) ( Text 644 ) 1986-11-21 21.33.57 Lars Karis <6555> Mottagare: Z80 Kommentar till text: 627 av Patric Ljung <5455> Ärende: linje-generator Om snabbhet 1 Det är inte varje dag man läser i alla möten. Därför kan det dröja någon vecka innan någon svarar. Om snabbhet 2 Rutinen för linje-dragning kan säkert göras mycket snabbare: De flesta linjer är så korta att de kan beräknas med 8 bitar. Längre linjer delas i två (ev fler) delar. En sådan rutin skrev jag till ABC-VDP (se ABC-bladet 2-86) Större vinklar klarar den rutinen med självmodifierande kod, dvs programmet ändrar själv viss kod. (tex INC A ändras vid behov till DEC A). Fungerar ju bara i RAM- minne, dessutom är det kanske inte bra programmerar-stil? En fortsättning på rutinen skulle vara att kunna rita cirkelbågar. 8 sådana blir en cirkel. Jag försökte llite men kom inte på något bra sätt. Lars Görling verkar bra på sånt, han kanske kan. PS Jag hade en mattelärare på 50-talet i Norra Real som hette Lars Görling, kan det vara samma person? DS ( Kommentar i text 647 av Patric Ljung <5455> ) ( Text 644 ) ( Text 645 ) 1986-11-24 10.16.31 Patric Ljung <5455> Mottagare: Z80 Kommentar till text: 640 av Peter Thärning <3707> Ärende: Rotate digit Tjusigt. Nu skall vi hotta upp rutinen ytterligare, får se hur pass mycket snabbare det blir. ( Text 645 ) ( Text 646 ) 1986-11-24 10.24.23 Patric Ljung <5455> Mottagare: Z80 Kommentar till text: 643 av Lars Gjörling <6825> Ärende: Rotate digit-HRLINEX.ASM Jo jag känner till rutinen, jag har även funderat på om jag skall använda den eller inte. eh, det skall väl kallas metoden att använda RRD, RLD. Saken är den att när du gör RRD/RLD så flyttar du ju den byte som ligger i HR-minnet, är det redan ritat en massa kanska det flimrar litet. Borde synas bättre på färgbildskärm. Men jag skall nog göra en version och testa, likaså skall jag se vad som händer P.T.s rutin när jag försöker applicera den. Det är bra, fler kreativa förslag. Det blir klubbens när det är färdigt. ( Text 646 ) ( Text 647 ) 1986-11-24 10.29.19 Patric Ljung <5455> Mottagare: Z80 Kommentar till text: 644 av Lars Karis <6555> Ärende: linje-generator jag har en rutin som är drugt ett år gammal, den ritar just 8a cirkel bågar. Jag kan skicka in den (det kommer jag att göra när jag tittat till den litet). Den bygger på samma princip som linje-grejsan. Men med en annan Q-funktion. ( Text 647 ) ( Text 648 ) 1986-11-24 10.54.50 Anders Nyman <2956> Mottagare: Z80 Kommentar till text: 636 av Patric Ljung <5455> Ärende: Lokala variabler & egna kompilatorer Eg. är inte en kompilator så himla svårt men det krävs förståss en del eftertanke! Om du vill ha lite tips kan vi vål dra igång lite seriöst snack om saken. En liten detalj angående lokala variabler är att Turbo Pascal(CPM) har FASTA minnes celler för lokala variabler!!! Gissa hur den gör!! ( Kommentar i text 649 av Patric Ljung <5455> ) ( Text 648 ) ( Text 649 ) 1986-11-24 19.45.07 Patric Ljung <5455> Mottagare: Z80 Kommentar till text: 648 av Anders Nyman <2956> Ärende: Lokala variabler & egna kompilatorer Visst! I vilken ände är bäst att börja? Jag började skissera upp små operationer typ +,-. Är det rätt ände? Knappast va? Bör väl fundera ut litet annat. Låt oss utgå från ett C liknande språk, inga specieliteter till att börja med. ( Kommentar i text 650 av Kristoffer Eriksson SYSOP <5357> ) ( Text 649 ) ( Text 650 ) 1986-11-25 04.58.49 Kristoffer Eriksson SYSOP <5357> Mottagare: Z80 Kommentar till text: 649 av Patric Ljung <5455> Ärende: Lokala variabler & egna kompilatorer Det jobbigaste är väl egentligen att hålla reda på alla variabel- deklarationer, och reservera minne för variablerna. Tänk på en detalj som att lokala variabler helst inte ska synas utanför den funktion de hör till, t ex. ( Kommentar i text 651 av Magnus Bodin <4304> ) ( Kommentar i text 652 av David Andersson <5201> ) ( Text 650 ) ( Text 651 ) 1986-11-26 00.07.43 Magnus Bodin <4304> Mottagare: Z80 Kommentar till text: 650 av Kristoffer Eriksson SYSOP <5357> Ärende: Lokala variabler & egna kompilatorer De lokala variablerna skall gärna kunna refereras från anropade rutiner men inte från anropande, om man så säger. ( Text 651 ) ( Text 652 ) 1986-11-26 00.53.29 David Andersson <5201> Mottagare: Z80 Kommentar till text: 650 av Kristoffer Eriksson SYSOP <5357> Ärende: Lokala variabler & egna kompilatorer Kompilatorn får ha en stack med information om deklarerade variabler. Refereras en variabel i koden så används den deklaration som finns överst på stacken. Deklarationerna tas bort från stacken när kompilatorn lämnar det block eller den rutin där de var deklarerade. Bland informationen om variabeln kan finnas vilket offset den har från det värde IX-registret fick vid ingången till rutinen så den kan lägga ut instruktioner som index-adresserar variabeln. Om variablerna ska nås från ensubrutin deklarerad i subrutinen så får man ta hänsyn till att IX pekar ut en annan rutins variabler, och man får lägga ut instruktioner som temporärt länkar sig genom stacken till rätt ställe. Hur man gjorde det på ett smart sätt kan jag inte så här på rak arm. (Gör en BASIC-interpreter, det är enklare. Eller en LISP-interpreter, det är kanske ännu enklare. Eller en Forth-interpreter, det är enklast av allt. Fast en kompilator är nog mycket roligare att ha när den funkar) ( Kommentar i text 653 av Kristoffer Eriksson SYSOP <5357> ) ( Kommentar i text 654 av Stefan Gartz <2600> ) ( Text 652 ) ( Text 653 ) 1986-11-26 04.44.33 Kristoffer Eriksson SYSOP <5357> Mottagare: Z80 Kommentar till text: 652 av David Andersson <5201> Ärende: variabler & egna kompilatorer Bortsett från behandlingen av lokala variabler, så utgör variabel- och konstant-deklarationerna en stor del av många språks syntax. Det brukar finnas några få struktur-konstruktioner som begin-end, while, repeat, funktioner och procedurer, samt tilldelning och beräkning av uttryck, men massor av variabeltyper som helst kan kombineras på otaliga sätt, t ex pekare till array av heltal och array:er av pekare till heltal... Det hela kräver att man tänker igenom allt i förväg. ( Kommentar i text 655 av David Andersson <5201> ) ( Text 653 ) ( Text 654 ) 1986-11-26 07.35.48 Stefan Gartz <2600> Mottagare: Z80 Kommentar till text: 652 av David Andersson <5201> Ärende: Lokala variabler & egna kompilatorer Har du tittat på Small C, koden finns i programbanken under CPM där kan du knske få lite tipps. ( Text 654 ) ( Text 655 ) 1986-11-30 13.13.18 David Andersson <5201> Mottagare: Z80 Kommentar till text: 653 av Kristoffer Eriksson SYSOP <5357> Ärende: variabler & egna kompilatorer Samma typ av komplexitet ges av att man kan ha while-loopar i if-satser och if-satser i while-loopar, men det kanske är enklare att handera såna saker. Det blir inte så abstrakt. Fösta gången man gör en kompilator ska man kanske försöka begränsa antalet datatyper lite. Och när man sedan ska ha datatyper som i pascal (eller C) så ska man nog inte skriva kompilatorn i BASIC eller assembler, utan i Pascal (eller C). ( Kommentar i text 656 av Kristoffer Eriksson SYSOP <5357> ) ( Text 655 ) ( Text 656 ) 1986-12-01 03.04.19 Kristoffer Eriksson SYSOP <5357> Mottagare: Z80 Kommentar till text: 655 av David Andersson <5201> Ärende: variabler & egna kompilatorer Du behöver ju inte anteckna i minnet att namnet xxx står för while-loop med en if-sats med några funktionsanrop. Syntaxens komplexitet är måhända samma, men det jag tänkte på var att man måste hitta på ett sätt att representera dessa komplexa variabeltyper i den variabellista man konstruerar allteftersom man behandlar källkoden, fast det kanske inte framgick av mitt inlägg. Förutom variabeltypen, ska man hålla reda på var variablerna placeras ut i minnet, hur de får kombineras med varandra, och deras utgångsvärden (åtminstone i C). Fast när manklurat ut hur det ska gå till, är detroligt förstås. ( Text 656 ) ( Text 657 ) 1986-12-04 17.31.16 Einar Eriksson <1720> Mottagare: Z80 Kommentar till text: 621 av Kjell Svensson <5318> Ärende: Z80 mnemonics Jag kan inte hitta någon fil med namnet BLAD.....TXT någonstans i monitorn. ( Kommentar i text 658 av Kjell Svensson <5318> ) ( Text 657 ) ( Text 658 ) 1986-12-04 21.43.21 Kjell Svensson <5318> Mottagare: Z80 Kommentar till text: 657 av Einar Eriksson <1720> Ärende: Z80 mnemonics Jag kan inte heller hitta dem. Någon kanske har raderat dem? Jag har i alla fall lagt in dem en gång. Om någon vet vad som hänt med dem kan ni väl höra av er, annars får jag väl lägga in dem igen. H/Kjell ( Kommentar i text 659 av Arne Hartelius SYSOP <2731> ) ( Text 658 ) ( Text 659 ) 1986-12-04 23.33.25 Arne Hartelius SYSOP <2731> Mottagare: Z80 Kommentar till text: 658 av Kjell Svensson <5318> Ärende: Z80 mnemonics Jag hittade filerna i ett skyddat bibliotek som heter styrelse/bladet. Jag vågar inte kopiera tillbaka filerna till programbanken eftersom jag antagligen kommer att använda fel switchar och då får Kullmar tuppjuck. ( Kommentar i text 660 av Jaan Tombach <4283> ) ( Text 659 ) ( Text 660 ) 1986-12-04 23.58.55 Jaan Tombach <4283> Mottagare: Z80 Kommentar till text: 659 av Arne Hartelius SYSOP <2731> Ärende: Z80 mnemonics Jag har laggt ut filerna i INLÅDAN. Mvh Janne ( Kommentar i text 661 av Bo Kullmar SYSOP <1789> ) ( Text 660 ) ( Text 661 ) 1986-12-05 09.33.45 Bo Kullmar SYSOP <1789> Mottagare: Z80 Kommentar till text: 660 av Jaan Tombach <4283> Ärende: Z80 mnemonics De har kopierats till ABC-Bladets bibliotek och när redaktören har fått filerna så har jag tänkt att radera dem. Finns det något intresse att ha dem i programbanken så får ni kopiera dem till det bibliotek som jag har lagt upp för den här omtalade Z80-kursen. ( Kommentar i text 662 av Jaan Tombach <4283> ) ( Text 661 ) ( Text 662 ) 1986-12-05 12.31.00 Jaan Tombach <4283> Mottagare: Z80 Kommentar till text: 661 av Bo Kullmar SYSOP <1789> Ärende: Z80 mnemonics Jag la ut dem i inlådan för att det frågades efter dem. Kjell Svensson klarade inte att skicka in så långa rader med modem så jag hlälpte honom med att kopiera in några av filerna lokalt. Jag ville slippa att kopiera in dem lokalt igen så därför hamnade dåm i inlådan. Finns det något intresse stt de ligger i programbanken eller skall vi ta bort dem? Lägger över dem i biblioteket för Z80 kursen så länge. Mvh Janne ( Text 662 ) ( Text 663 ) 1986-12-09 20.35.26 Anders Franzén <5258> Mottagare: Z80 Ärende: MACRO förenklar programskrivning Om man har en ABC80 och använder programmet ASS kan man ha nytta av filen HJÄLP1.MAC som ligger i ABC80/ASMKOD. Filen innehåller några MACROn som kan vara användbara. Exempel på utnyttjande av dessa macros finns i filen KOPIERA.ASM i samma bibliotek. ( Text 663 ) ( Text 664 ) 1986-12-11 15.03.37 Per Fagerkvist <3862> Mottagare: Z80 Ärende: ASMEDIT ABC800M HEJ JAG HAR TIDIGARE HAFT ABC80 OCH KÖRT PÅ ETT UTOMORDENTLIG ASSEMBLER PROGRAM NÄMLIGEN ** ASMEDIT ** FRÅGA ? : FINNS DET NÅGON SOM HAR ELLER HAR HÖRT TALAS OM SAMMA PROGRAM TILL ABC800M ? BYTE ? KAN BYTAS MOT TEX. EDASS ELLER ANNAT ! * HJÄLP MIG * ( Kommentar i text 665 av Curt Rehnborg <1121> ) ( Text 664 ) ( Text 665 ) 1986-12-11 16.39.29 Curt Rehnborg <1121> Mottagare: Z80 Kommentar till text: 664 av Per Fagerkvist <3862> Ärende: ASMEDIT ABC800M Jo det finns till ABC800 ( Text 665 ) ( Text 667 ) 1987-01-05 20.43.22 Stefan Lennerbrant <4364> Mottagare: Z80 Kommentar till text: 666 av Per Fagerkvist <3862> Ärende: ASMZ-UURRRK ! (. Intressant program... .) ( Kommentar i text 675 av Patric Ljung <5455> ) ( Text 667 ) ( Text 668 ) 1987-01-10 19.43.47 Peter Goldmann <5080> Mottagare: Z80 Ärende: Vad hände? Vad har det blivit av cirkeln? Lär alla på egen hand numera? Det var tal om att skaffa böcker och vad hände sedan? Roligt få höra mer för här syns inget. Mvh Peter ( Kommentar i text 669 av Sven Wickberg <1384> ) ( Kommentar i text 673 av David Andersson <5201> ) ( Text 668 ) ( Text 669 ) 1987-01-10 21.12.18 Sven Wickberg <1384> Mottagare: Z80 Kommentar till text: 668 av Peter Goldmann <5080> Ärende: Vad hände? För min del kom jag aldrig i gång. Ett datormöte kanske inte är rätta stället för en studiecirkel utan mera för att man skall få "läxhjälp" när man väl kommit i gång. Å nra sidan måste jag medge att jag kanske var för optimistisk; man måste ju okså själ lägga ned en massa tid och ork på att sätta sig in i läxan, och dt gjorde jag nog inte. De som läser någon lämplig lärobok, försöker lösa uppgifterna och kör fast, kanske ha hjälp av att ställa frågorna här, och för dem kanske det går bra? ( Kommentar i text 670 av Lennart Anderson <6582> ) ( Text 669 ) ( Text 670 ) 1987-01-10 23.45.03 Lennart Anderson <6582> Mottagare: Z80 Kommentar till text: 669 av Sven Wickberg <1384> Ärende: Vad hände? Drömmar. Tanken med en kurs om Z80 var bra. Det drogs i gång med pukor och trumpeter. Förväntningarna var högt ställda. Inget hände. Varför. Idén är forfarande bra- Finns ingen som kan ta hand om detta? Om ej kan Bosse K lika gärna föra över detta möte till något om PC eller MSDOS. Det vore väl synd! Kom loss nu.... Mvh - Lennart ( Text 670 ) ( Text 671 ) 1987-01-11 14.08.12 Anders Franzén <5258> Mottagare: Z80 Ärende: Liten lektion Ett konferenssystem som detta lämpar sig kanske bäst för typen fråga-svar-kommunikation. Nåväl, jag försöker dra till med en minilektion. Kanske kan det bli någon form av kedjeinlägg (vad nu det är...) där andra spär på med mer kunskap samtidigt som tusen frågar! I BASIC har man radnummer, icke i assembler. För att kunna hoppa till fasta punker i programmet markerar man dessa punkter med labels. I BASIC används GOTO eller GOSUB, i assembler (med assembler menas här Z80-assembler!) används JP (eller JR) och CALL. I BASIC används RETURN för att avsluta en subrutin, i assembler RET. Litet exempel: START JP START ;evighetsloop! Först kommer labeln START. Sedan ett JP (dvs BASIC-ens GOTO) till START. Därefter en kommentar. Litet exempel två: START CALL RUTIN ;subrutinanrop JP START ;börja om RUTIN RET ;gör ingenting Observera att det inte är säkert att man kan ha blankrader sådär mitt i en källkod. Det beror på vilken assemblator man har. Liten lektion slut. ( Kommentar i text 672 av Anders Franzén <5258> ) ( Text 671 ) ( Text 672 ) 1987-01-11 14.21.46 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 671 av Anders Franzén <5258> Ärende: Liten lektion liten kommentar Bäst att jag gör ett tillägg innan expertisen klagar. Om man får för sig att man skall använda CALL (motsvarigheten till BASIC-ens GOSUB) i ett assemblerprogram (det bör man få för sig för det är mycket viktigt att strukturera sina program, dvs dela upp dem i små fristående delar med väl definierat in- och utdata) måste först SP laddas! SP är ett sk register i Z80. SP måste laddas innan den första CALL-en sker. SP laddas alltid av BASIC-tolken i en ABC så det behöver man inte tänka på. egistret SP är en pekare som pekar på en tabell i minnet. I denna tabell sparas t ex alla returadresser. Varje gång du gör CALL SUBRUTIN sparas adressen till instruktionen efter CALL-et i tabellen så att när subrutinen är bearbetat och assemblerinstruktionen RET påträffas sker hopp tillbaka till instruktionen precis efter CALL-et. Denna tabell som SP pekar på kallas STACK. Liten lektion liten kommentar slut. ( Kommentar i text 676 av Patric Ljung <5455> ) ( Text 672 ) ( Text 673 ) 1987-01-11 20.42.36 David Andersson <5201> Mottagare: Z80 Kommentar till text: 668 av Peter Goldmann <5080> Ärende: Vad hände? Lärarna kan inte styra den här studiecirkeln. (Som alla vet fungerar inte central planering) Liksom i andra möten måste även Z80-mötet bli händelsestyrt. Dvs, när någon får problem eller kommer på något nytt så skriver han/hon ett inlägg som läses och får några svar. Vi väntar alltså på att eleverna i cirkeln ska begära hjälp med någon uppgift de fått. Eller när de är klara med alla uppgifter, att de ska begära flera. Men det kanske inte fungerar det heller. Tidigt frågade Lars Gjörling efter flera uppgifter, men det hände inget. Bokfrågan har jag inte brytt mig om, men den borde ha varit avklarad vid det här laget. När jag tittar tillbaka på gamla inlägg ser jag att Mikael Lidén och Curt Rehnborg tog åt sig att samla ihop bokbeställningar. Mikael hade i oktober fått 4 beställningar. Se bla inlägg 559,560 och 568. Där nämns 'Programmera Z80' (eller 'Programming the Z80') av Rodny Zaks och 'Mikrodatorns ABC' av Gunnar Markesjö. Några har skaffat böcker själva. ( Text 673 ) ( Text 674 ) 1987-01-12 18.32.01 Peter Goldmann <5080> Mottagare: Z80 Ärende: vad har hänt Jag föreslår att man kan börja med en byggndasställning som gör att man kan peta in enkla program för hand. Eftersom jag kör med 806 föreslår jag att en enkel editor som ger körbara .BAS filer används. För ABC80 som saknar basicII användes poke-satser För basicII föreslår jag metoden i BIT för bit s 118. En övning: 1000 A¤=chr¤(235) ! HL laddas med DE och är pekare till text 1010 A¤=A¤+chr¤(1,13,0) ! BC laddas med 000 013 decimalt, ger textlängd 1020 A¤=A¤+chr¤(205,11,0) ! GO SUB till CONWRITE rutinen i BASIC på adr 011 i PROM. 1030 A¤=A¤+chr¤(201) ! Återhopp till BASIC- programmet från assembler 1040 B¤='"testprogram"' 1050 Z=call(varptr(A¤),varptr(B¤)) 1060 END se s.76 i BIT för BIT Kommentar: 1,13,0 observera att 0 och 13 är omkastade 205,11,0 - gäller 0 och 11 även Med denna lilla byggnadsställning kan man skriva ut text på skärmen. Men den kan även användas till att göra egna program. Schemat är att Z=Call(x,y) Där x är startadress i minnet y är det värde som skall läggas i DE - registret Z är det värde som kommer att finnas i HL - registret efter anrop. ( Text 674 ) ( Text 675 ) 1987-01-12 22.29.46 Patric Ljung <5455> Mottagare: Z80 Kommentar till text: 667 av Stefan Lennerbrant <4364> Ärende: ASMZ-UURRRK ! (. hur går det med ditt, färdigt att lanseras? .) Vad finns det för andra likvärdiga assemblers till ABC800? ( Kommentar i text 680 av Stefan Lennerbrant <4364> ) ( Kommentar i text 681 av Per Fagerkvist <3862> ) ( Text 675 ) ( Text 676 ) 1987-01-12 22.43.16 Patric Ljung <5455> Mottagare: Z80 Kommentar till text: 672 av Anders Franzén <5258> Ärende: Liten lektion liten kommentar För att kanske ge en bra överblick av maskinkods-programmering kanske man bör dra sig till minnes hur jag själv upptäckte: -'The secret of machine-code' Det egentliga problemet var för mig att jag inte visste vad bit och byte var. Samt hur minnet fungerade, adressering osv. Hur en liten u-processor såg ut, generellt sett så är de väl ganska lika? När jag vipps på en kvart förstod hur allt förhöll sig var det inga problem att veta hur man programmerar i maskinkod. vad jag sedan lärt mig genom åren är olika tekniker att programmera. jag försöker skriva min maskinkod så funktionsbaserad som möjligt. Dvs att nästan gå från C-struktur till maskinkod. Dock används ju processorns register till stor del som direkta variabler. Istället för att ha dem utslängda i minnet. Man kanske borde börja så pass elemntärt så att folk som nästan inte hajat maskinkod kan komma med i 'kursen'. Ett något klurigt problem kan vara att man behöver rita litet figurer. Med allt detta menar jag att kanske en betydlig nyckel till att förstå maskinkod (och även hela datorns konstruktion, i princip) och kunna pro- grammera den är att just att förstå det här med bit, bytes, adresser, CPU-register osv. För mig var det det jag behövde veta för att komma igång (Handassemblering med POKE). När jag sedan fick köpte ASMZ fanns det ju en del att lära där, men det har ju faktiskt inte nå't direkt att göra med maskinkod. ( Kommentar i text 677 av Anders Franzén <5258> ) ( Text 676 ) ( Text 677 ) 1987-01-12 23.09.41 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 676 av Patric Ljung <5455> Ärende: Liten lektion liten kommentar Jag håller inte riktigt med dig. Enligt min mening måste man ha en grundförståelse av vad programmering innebär. Man måste veta hur man strukturerar program, olika tekniker för att läsa filer och fånga upp EOF osv. Kan man det kan man skriva program i vilket programmeringsspråk som helst. Jag tycker t ex inte att det viktigaste är att lära sig Z80-s alla register så där direkt. Dem lär man sig allt eftersom man stöter på dem. Jag ser heller inget absolut krav på att man ska kunna räkna binärt på två fingrar. Med en assemblator kan man uttrycka tal i vårt vanliga decimala talsystem. Däremot anser jag det är bra att börja lära sig instruktioner som hanterar programflödet, t ex JP och CALL. Dessa kan direkt jämföras med andra språk och är lätta att förstå. När man har ett hum om hur dessa funkar kan man pula in instruktioner som hanterar data i flödet. Det är nog bra att känna till begränsingar i talområdet, i BASIC kan man hantera riktigt stora tal men i assembler endast tal som motsvarar BASIC-ens heltal. Att de består av just 16 bitar behöver man inte känna till så där på en gång men eftersom man är nyfiken så lär man sig sådana saker efter hand. Alltså, assembler är väldigt enkelt. Precis som allt annat när man väl har lärt sig det! ( Text 677 ) ( Text 678 ) 1987-01-12 23.51.15 Peter Goldmann <5080> Mottagare: Z80 Ärende: inlägg Till föregående talare vill jag säga: Man har hjälp att komma igång så att man får kontakt med materien. En sådan kontakt kan vara att man kan starta och lägga in valiga BASIC-bitar och att man kan hoppa till färdiga rutiner i BASIC-prommet, samt att man kan lägga in egna bitar. Handassemblering är ingen dum metod. För små program är den snabb och direkt och ofta skall inte modulerna göras så stora att de blir ohanterliga. Den lilla snutt jag skrev ned i bästa välmening uppfyller de kriterier som jag nämnde. Jag hoppas att någon nu skriver samma snutt för BASIC I i ABC 80. För de som har ABC806 och skaffar nya prommet GRAF806 väntar säkert en färgglad fest med många fina saker i assembler. De komandon som kan vara av intresse vid handasseblering är inte så många, men kombinationerna är det och man har nytta av att ha en listning decimalt. Många saker kan fås att hända på din ABC med out - och ev. inp kommandon - dessa finns även i assembler. Med hjälp av dessa får du direkt kontakt med din kärra. Nu kära majjar kan ni med utgångspunkt från den lilla modell - som jag kallade byggnadsställnings på samma sätt skriva en snutt som pedagogiskt visar hur man skriver en out-snutt som exvis tänder och släcker CAPS-LOCK - lysdioden alternativt öppnar och stänger det relä som startar och stannar kasettbandspelaren. mvh Peter ( Text 678 ) ( Text 679 ) 1987-01-13 08.39.58 Peter Goldmann <5080> Mottagare: Z80 Ärende: byggnadsställning Jag har testat mitt lilla förslag och det gör det möjligt för dig att lägga till egna BASIC rader lägga till egna assemblerrader använda delar av BASIC PROM haka på med egna bitar i anslutning. Om man kan ta hem textfiler med DUMPA FIL på sitt terminalprogram eller DUMPA PR: så kan man ju direkt bearbeta de förslag som dyker upp här på mötet. Jag ändrade 13 till andra värden och eftersom maskinen ej var resettad fanns det mycket i området som visades på skärmen. Om B¤ innehåller mycket text kan det värde som nu är 13 fungera som ett fönster där man bestämmer längden på det som ska visas. Mvh Peter ( Text 679 ) ( Text 680 ) 1987-01-14 20.02.18 Stefan Lennerbrant <4364> Mottagare: Z80 Kommentar till text: 675 av Patric Ljung <5455> Ärende: ASMZ-UURRRK ! Det har inte gått framåt - senaste ändringen var '85 nån gång (. Jag skrev ju först för den där jäkligt dåliga ABC80, så jag började porta den till jäkligt dåliga ABC800, och nu får jag väl göra om den till fina fisken IBM PC .) OBSOBSOBS - grov,grov ironi... mvh ( Text 680 ) ( Text 681 ) 1987-01-15 06.39.22 Per Fagerkvist <3862> Mottagare: Z80 Kommentar till text: 675 av Patric Ljung <5455> Ärende: ASMZ-UURRRK ! HEJ ! JASÅ du tyckte mitt program var skoj ! Hmmm Jag fann på lösningen i alla fall på den frågan . Andra assemblatorer EDASS saknar debugger ngt. begränsad vad det gäller med psevdo inst.TREVLIG förövrigt. ASMZ KNEPIG men säkert bra när man lär sig förstå användning av OBJUPT,DEBUG,ESTAB etc. ASM Har inte testat den riktigt . MV (må väl) Per Fagerkvist . ( Text 681 ) ( Text 682 ) 1987-01-16 00.31.54 Per Fagerkvist <3862> Mottagare: Z80 Ärende: ESTAB HEJ ! Jag håller på att traggla med ASMZ. ESTAB fråga ? kan någon förklara vad PLC är för nått. LIBRARY vad menas. MODUL vad då. INCLUDE,(OPT),FILNAMN ,(MODUL) ? ' *** PLEASE !! *** - FÖRKLARA FUNKTION OCH SAMBAND. MV. ( Kommentar i text 683 av Mats Petersson <1082> ) ( Kommentar i text 685 av Stefan Frank <5452> ) ( Text 682 ) ( Text 683 ) 1987-01-17 01.14.11 Mats Petersson <1082> Mottagare: Z80 Kommentar till text: 682 av Per Fagerkvist <3862> Ärende: ESTAB Jag kan nog ibte besvara alla dina frågor, men jag vet av egen erfarenhet att INCLUDE-kommandot används för att infoga en källkods- fil till den huvudfil man arbetar med. (Exempelvis en subrutin) När assemblern hittar ett INCLUDE-kommando går den ut på den aktuella drive-enheten och letar rätt på källkods-filen som sedan assembleras. Jag har inte jobbat ASMZ men däremot med en del andra assemblers där man kan bygga upp en objektfil av flera mindre källkods-filer. Däremot kan det finnas spärrar mot att göra INCLUDE till en fil där man i sin tur gör INCLUDE osv.... De anmärkningar som stod inom parentes, vet jag inte vad de står för. M.v.h ( Kommentar i text 684 av Gunnar Forssell <1631> ) ( Text 683 ) ( Text 684 ) 1987-01-17 08.18.17 Gunnar Forssell <1631> Mottagare: Z80 Kommentar till text: 683 av Mats Petersson <1082> Ärende: ESTAB INCLUDE går ut och länkar in en redan assemblerad fil! Den assemblerar ingenting! Man måste först köra ASMZ på källkodsfilen, sedan kan man länka ihop program. Hjälparen är konstruerad på det sättet. Alla kommandon ligger i separata pgm, och det är bara att länka ihop alltet med ESTAB till valfri hjälpare... ( Text 684 ) ( Text 685 ) 1987-01-18 20.31.01 Stefan Frank <5452> Mottagare: Z80 Kommentar till text: 682 av Per Fagerkvist <3862> Ärende: ESTAB PLC = Program Location Counter LIBRARY = Filen där alla assemblerade filer ligger. Filerna lagras i ett bibliotek med OBJUPD (Objektupdatering). MODUL = Är en fil som ligger i bilblioteket. INCLUDE = Läser in en modul (tillfälligt) som ska vara med i den slutliga .ABS-filen. Hoppas du har någon nytta av det här... M.v.h Stefan ( Text 685 ) ( Text 686 ) 1987-01-23 19.16.14 Hans Kaplan <6710> Mottagare: Z80 Ärende: Assembler För att bli intresserad av assembler måste man veta lite om fördelarna med språket. Jag tycker faktiskt att man på en gång lika gärna kan sätta sig in lite i hur datorn jobbar (processorn med sina register och adresserinsmoder åtminstone och varför inte känna lite på MIKROPROGRAMMET som utför assemblerinstruktionerna) Jag har aldrig programmerat Z80 så jag överlåter redogörelsen betr. olika adresseringssätt, men detta måste man ta med i början. Fick sån lust att berätta lite om det så sällan omtalade mikroprogrammet;; Om man är en lycklig person så har man en s.k. "assemblator" som översätter de ord-instruktioner (mnemonics) man fått fram till en sifferkod som avkodaren i cpu:t kan förstå. Ett vanligt mellansteg före den ofrånkomliga binärkoden är "hexkod" som lätt kan översättas till binärkod. Basen i hexkod är 16, och tecknen 0 - 9 samt A - F. Nåväl, man tänker sig att man är en ström av ettor och nollor som av "programräknaren" -ett register som normalt räknar framåt marsch, hämtats ur en position i minnet och via ett dataregister plötsligt finner sig själv på databussen, en massa trådar - en tråd för varje etta eller nolla. Nyfiket följer man sen sin framfart över bussen och innan man vet "ordet av" så sitter man ohjälpligt fast i "instruktionsregistret" i kontrollenhet i cpu. Nu får man om inte förr lära känna sig själv, det visar sig att man är en OPERATIONSKOD som avkodaren börjar smaska i sig av. Jasså, är jag en operationskod, vae är det då och vad händer nu. Tanken är knappt färdigtänkt förrän ett litet program "som alltid finns där" hoppat till en rutin, bara för min skull. Jag frågade programmet, det hette "mikro" och hade lika många rutiner som alla mina kompisar där borta i minnet om man undantar alla tvillingar. Dessutom fanns det där hoppet förstås. Sen hände allting snabbt, jag förvandlades till en "signalföljd" som öppnade vägen för en ansamling ettor och nollor i ett "register", via "internbussen" i cpu till ett annat register där en annan ansamling brutalt förintades. Ja, det var faktiskt allt, själv förintas jag men min "själ" finns kvar i minnet. Så lång historia om så lite, ja så kan det bli när man dristar sig att kika under assemblernivån, kanske kul att nån gång ha gjort det innan man kavlar upp ärmarna för programmering? Vem redogör för fördelar med assembler och adresseringssätt? ( Kommentar i text 687 av Hans Kaplan <6710> ) ( Text 686 ) ( Text 687 ) 1987-01-23 22.52.56 Hans Kaplan <6710> Mottagare: Z80 Kommentar till text: 686 av Hans Kaplan <6710> Ärende: Assembler Allting i minnet är väl inte "operationskoder", kan du inte redogöra för annat innehåll? Och vad menar du med att u-programmet har lika många rutiner som "kompisarn i minnet utom deras tvillingar"?? ( Kommentar i text 688 av Hans Kaplan <6710> ) ( Text 687 ) ( Text 688 ) 1987-01-23 23.23.23 Hans Kaplan <6710> Mottagare: Z80 Kommentar till text: 687 av Hans Kaplan <6710> Ärende: Assembler Öh, det där med rutinerna först, det finns alltså en rutin för varje typ av operationskod. Vi tar ett annat exempel: Instruktionen är JUMP (adr) vilket inte oväntat betyder ovillkorligt hopp till adressen i fråga. När operationskoden för jump (två hextal) når avkodaren så vet kontrollern genast att därefter ska följa en adress och skickar därför efter innehållet i de två följande minnescellerna, eftersom adresser består av fyra hextal. I varje minnescell ryms alltså två hextal (siffror) i en 8 bitsdator. När adressen har erhållits så matas den helt enkelt på programräknarre- gistret som fortsätter sin framräkning från det nya värdet och plockar ut innehållet i cell efter cell i minnet. Minnesceller kan också innehålla förutom operationskoder och adresser rena "data" (!) som bland mycket annat kan vara ett jämförvärde som i pseudoassemblern: Move 0,D1 (nollställer reg. D1) LOOP Incr D1 (D1 + 1) Cpi FF,D1 (Har D1 värdet FF?) Bne LOOP (Nej) xxx xxxx (ja) Detta ger en liten tidsfördröjning (önskar jag kunde Z80-syntax, men principen är exakt samma) När man skrivit ett sånt här program så får en assembler ta hand om det och då omvandlas allt till hexkod, labeln LOOP tilldelas en adress och sparas i en tabell, den kan ju komma att åsyftas återigen. Den här programutvecklingen/editeringen görs ofta på en stordator och sedan "laddas" filen ner i en mikrodator eller får styra en prombrännare. ( Text 688 ) ( Text 689 ) 1987-01-24 00.05.00 Leif Jonsson <6244> Mottagare: Z80 Ärende: Flyttals calculator Är det någon som har eller känner någon som har källkoden till en flyttals- calculator. Den bör klara av dom vanliga räknesätten plus sin, cos tan etc. Nogrannheten skall vara minst 8 siffror med exponent upp till 99. Måste vara skriven helt i Z80 assembler ! ( Text 689 ) ( Text 690 ) 1987-01-25 17.26.39 Peter Goldmann <5080> Mottagare: Z80 Ärende: Det har varit så tyst ... Vad har hänt i detta möte? Jag gjorde ett försök att föreslå en liten byggnadsställning så att du kan börja handassemblera ... ingen kommentar - inga synpunkter håller detta möte på att rinna ut i sanden? Eller är det så att de som kommit till assemblerstadiet numera spanar in PC och hellre efter en mognadstid skulle vilja köra assembler på PC? I så fall kanske någon som kan ville ge en introduktion - det lär ju finnas många paralleller mellan 8088 och Z80. M,v,h, P.G. 5080 ( Kommentar i text 691 av Hans Kaplan <6710> ) ( Kommentar i text 692 av Sven Wickberg <1384> ) ( Text 690 ) ( Text 691 ) 1987-01-26 10.17.57 Hans Kaplan <6710> Mottagare: Z80 Kommentar till text: 690 av Peter Goldmann <5080> Ärende: Det har varit så tyst ... Jag kan tänka mig att redogöra lite för 8085 och 68000-assembler. Men finns något behov/intresse? ( Kommentar i text 693 av Stefan Berg <216> ) ( Text 691 ) ( Text 692 ) 1987-01-26 14.47.45 Sven Wickberg <1384> Mottagare: Z80 Kommentar till text: 690 av Peter Goldmann <5080> Ärende: Det har varit så tyst ... För mig är det så att jag helt enkelt hade för mycket annat att göra för att hinna sätta mig ned och pula med Z80. Jag anmälde mig till "kursen" i den flummiga tron att det skulle "hända" något i lektionsform här i mötet som jag kunde läsa och ta åt mig av. Men detta medium är inte lämpat för gemensamt studiecirkelarbete, utan snarare för frågor när man kör fast på läxan. Och om alla gjort som jag (dvs INTE gjort läxan) så blir det inga frågor och då blir det tyst. Så är det (=en skön själs bekännelse). ( Text 692 ) ( Text 693 ) 1987-01-27 21.21.16 Stefan Berg <216> Mottagare: Z80 Kommentar till text: 691 av Hans Kaplan <6710> Ärende: Det har varit så tyst ... Ja! Gärna med betoning på 68000. ( Kommentar i text 694 av Hans Kaplan <6710> ) ( Text 693 ) ( Text 694 ) 1987-01-28 13.45.41 Hans Kaplan <6710> Mottagare: Z80 Kommentar till text: 693 av Stefan Berg <216> Ärende: Det har varit så tyst ... Och mötet lämpar sig alltså för det? (Skrev visserligen om mikroprogram, men det berör ju alla processorer.) ( Kommentar i text 695 av Per Holmgren <5213> ) ( Text 694 ) ( Text 695 ) 1987-01-29 18.05.34 Per Holmgren <5213> Mottagare: Z80 Kommentar till text: 694 av Hans Kaplan <6710> Ärende: 68k assembler. Äsch, skriv här tills nån (tittut Kent!) klagar och tycker annat. Jag är fö oxo in3sserad av 68000 erfarenheter. ( Text 695 ) ( Text 696 ) 1987-01-29 19.13.23 Hans Kaplan <6710> Mottagare: Z80 Ärende: Lite jämförelser 68K / 8 bitars processorer 68K har 23 pinnar för adressbussen vilket innebär att den direkt kan adressera 16M istället för det vanliga 64K. Den 24:e pinnen har man sparat därför att den alltid skulle sända ut en nolla - ojämna bytes adresseras inte. De ord som kan genereras är 8/16 eller 32 bitar långa. Databussen och de använda minnena bygger på 16 bitar "word", 32 bitars ord "långa ord" sänds ut i två omgångar. 16 register + PC och SP innehåller 32 bitar, statusregistret har normala 16. De här längre orden medför att operationskoderna kunnat göras längre, mer och komplexare (kraftfullare) instruktioner samt möjligheten att medföra en del data i själva instruktionen är följden. Det är inte enbart positivt, den enklare instr.uppsättningen i Z80 och 8085 tex är mer överskådlig, och knappt någon programmerare och ännu mindre kompillator förmår använda uppsättningen fullt ut. Det försvårar också arbetet att ständigt hålla reda på bytes, words och långa ord - detta anges med prefixen .b resp .W (default) och .l. Gör man fel här så är risken stor att det hela spårar ur, om man tex ska jämföra ett värde som anges i instruktionen med ett värde lagrat någonstans i minnet så måste ordlängden förstås stämma exakt. Det man annars mest uppskattar vid övergång från normal 8 -bitarsmygga är detta att man inte är stenhårt bunden till "ackumulatorn" som i 8085. Har man i den senare ett sånt där jämförvärde igen eller något som ska skickas ut på en utgång så måste man alltid först skyffla över värdet till ackumulatorn. Det behövs inte med 68K. När man adresserar minnet med 8-bitars proc. så vill jag minnas att man måste ange alla fyra hexsiffrorna, men med 68K så gäller vid lägre adresser 4 hexsiffror ("absolut kort") och högre adresser 8 st ("abs. lång"). I övrigt betr. adresseringssätt ber jag att få återkomma i avvaktan på tillrättavisningar och frågor. ( Kommentar i text 712 av David Andersson <5201> ) ( Text 696 ) ( Text 697 ) 1987-01-30 20.09.30 Per Fagerkvist <3862> Mottagare: Z80 Ärende: HITACHI-processor HEJ ! Jag sitter med manualen för HD64180 framför mig. Sälj av RIFA nu även av ZILOG. PROCESSORN är Z80 kompatibel,men har dessutom en rad extra finesser. Kan adressera 512 kb ( 8 st 64 kb block ) 2 st DART 2 ST CTC 2 ST DMA som direkt kan adressera 512 kb. 1 st SIO Allt i samma kapsel.Intern wait-state gen. 64 kb I/O omfång. 8 bitar refresh. Allt som behövs är minne,stab,och (TTL/RS232) transiever. För att ha en komplett dator. MvH. PER. ( Kommentar i text 707 av Per Holmgren <5213> ) ( Text 697 ) ( Text 698 ) 1987-01-30 21.19.46 Gunnar Forssell <1631> Mottagare: Z80 Ärende: u-program. Azzå, det där med u-program tycker jag ni har krånglat till onödigt mycket! Det är ju enkelt som bara den! Operandkoden pekar ut en adress i u-minnet, och dess innehåll går ut och styr allt annat, t.ex. ALU'n, registerminnet, etc. Ungefär som en massa tappkranar. Den utrustning som KTH har för detta ändamål (MILDA = MIkroprogrammerbar LaborationsDAtor) är jättekul, man fattar verkligen vad det rör sig om. Att få skriva u-pgm'et för t.ex. "JP NZ,LABEL" är MYCKET lärorikt! Jag har hört att japsen ska komma ut med en processor med EXTERNT u-pgm i EPROM, någon som vet mer? 32-bitars ALU skulle den visst ha. ( Kommentar i text 699 av Hans Kaplan <6710> ) ( Kommentar i text 701 av Kristoffer Eriksson SYSOP <5357> ) ( Kommentar i text 708 av Per Holmgren <5213> ) ( Text 698 ) ( Text 699 ) 1987-01-30 22.18.00 Hans Kaplan <6710> Mottagare: Z80 Kommentar till text: 698 av Gunnar Forssell <1631> Ärende: u-program. Om något är redogjort i detalj, steg för steg, så är det inte "tillkrånglat utan avpassat för dem som aldrig ens kanske hört talas om saken ifråga. Detta gäller u-prog. och många "datafantaster", tom lärare. ( Kommentar i text 700 av Gunnar Forssell <1631> ) ( Text 699 )  ( Text 700 ) 1987-01-31 14.52.06 Gunnar Forssell <1631> Mottagare: Z80 Kommentar till text: 699 av Hans Kaplan <6710> Ärende: u-program Av det jag läste om u-program, som du hade skrivit, fattade jag inte vad du menade. Om jag sedan inte hade vetat vad u-program var så hade jag nog undrat vad sjutton u-program var för något. Alla som vill lära sig data, borde ta reda på hur processorn funkar i detalj! ( Kommentar i text 704 av Hans Kaplan <6710> ) ( Text 700 ) ( Text 701 ) 1987-02-01 03.45.27 Kristoffer Eriksson SYSOP <5357> Mottagare: Z80 Kommentar till text: 698 av Gunnar Forssell <1631> Ärende: u-program. Riktigt så enkelt som du beskriver det är det nog oftast inte. Den enkla konstruktionen med instruktionskoder in i u-programminnet, och processorstyrningssignaler ut, duger bra för enkla instruktionsset, men det finns en hel del processorer med mer komplcerade instruktions- set (före RISC-eran), där man får ta till något mer komplicerat, t ex två-nivåers-avkodning. Ta t ex Z80:ns extra instruktioner som inleds med ED(hex)-koden. Eller 16-bittars-processorer med 16-bittars instruktionskoder, ska de ha 64kord (ord troligen betydligt större än bytes) u-programminne? Och så finns det vissa processorer med så rätfram instruktonsuppsättning att de kan avkodas med ett vanligt grind-nät. ( Kommentar i text 703 av Gunnar Forssell <1631> ) ( Kommentar i text 705 av Hans Kaplan <6710> ) ( Text 701 ) ( Text 702 ) 1987-02-01 08.36.57 Peter Goldmann <5080> Mottagare: Z80 Ärende: CPU:er Inläggen i mötena kan ju publiceras i ABC-bladet. Jag tycker det vore intressant med en genomgång här i mötet av de olika typer av CPU:er som finns idag - om någon ville göra en lite mer genomarbetad sammanfattning. Den kan ju gärna jämföra de olika processorerna med utgångspunkt från Z80 och ange deras fördelar och nackdelar -användbarhet i olika special sammanhang. Själv snubblade jag över en 8039 som en vänlig person upplyste om var en maskprommad CPU. Senare fick jag lära att man kunde via ett stift på kapseln välja bort den interna masken och koppla in yttre PROMMAR istället. Jag har provat på 1802 lite. Det var en CMOS-processor - strömsnål och den hade ingen refresh för dynamiska minnen. Däremot hade den 16 st 16 bitras interna register som med enkel instruktion kunde ta över som programräknare eller minnespekare. Vidare hade den en utgång som kunde styras programmässigt att vara hög eller låg en sk Q-utgång som på en vippa. Vidare hade den fyra ingångar som kände av nivåer och som kunde styras programmässigt. Hela CPU:n kunde kontroleras med en clockingång antingen ansluten till kristall eller stegas med valfri hastighet upp till max -frekvens. Intressanta egenskaper:Strömsnål, enkel att använda utan många yttre kretsar för I/0. DMA - direkt memory access fanns. ( Text 702 ) ( Text 703 ) 1987-02-01 09.16.31 Gunnar Forssell <1631> Mottagare: Z80 Kommentar till text: 701 av Kristoffer Eriksson SYSOP <5357> Ärende: u-program. Jo, det är klart att dagens avancerade processorer har mer avancerade u-program! Men principen är (väl?) densamma för alla processorer, eller hur? Allt kan göras svårt och komplicerat, men hur det i grund och botten funkar bör vara ganska lätt att beskriva, eller är jag en komplett idiot på datamarknaden? ( Kommentar i text 706 av Hans Kaplan <6710> ) ( Text 703 ) ( Text 704 ) 1987-02-01 09.24.43 Hans Kaplan <6710> Mottagare: Z80 Kommentar till text: 700 av Gunnar Forssell <1631> Ärende: u-program Håller verkligen med dig i din sista mening. Får nog ta och ändra mitt skrivsätt, kan inte låta bli att skämta ibland. Kan nog aldrig bli en läroboksförfattare. ( Text 704 ) ( Text 705 ) 1987-02-01 09.28.29 Hans Kaplan <6710> Mottagare: Z80 Kommentar till text: 701 av Kristoffer Eriksson SYSOP <5357> Ärende: u-program. Vanligt grindnät för avkodningen medför att alla styrsignaler går ut parallellt, samtidigt. Det är inte möjligt med normal arkitektur så någon sekvensenhet måste nog till? ( Text 705 ) ( Text 706 ) 1987-02-01 09.36.24 Hans Kaplan <6710> Mottagare: Z80 Kommentar till text: 703 av Gunnar Forssell <1631> Ärende: u-program. Nej, Risc-konceptet innebär bl.a. reducerad instr. uppsättning och rel. enkla instruktioner -men snabba, alla fullföljes på en klockcykel mot normalt 2 - 6 cykler tror jag. Detta för att kompillatorer och människor har svårt att överblicka och utnyttja en stor uppsättning fullt ut. Ingen av oss är väl på datamarknaden, så du är alltså ingen "idiot på datamarknaden". ( Kommentar i text 709 av Gunnar Forssell <1631> ) ( Text 706 ) ( Text 707 ) 1987-02-01 12.07.45 Per Holmgren <5213> Mottagare: Z80 Kommentar till text: 697 av Per Fagerkvist <3862> Ärende: HD64180 HD64180 görs av Hitachi och numera även Zilog, och du kan köpa den via de svenska distributörerna Ferner och Rifa. Det har gått en serie artiklar i Byte om en ytterst kompakt dator med just den processorn, 512k byte Ram, fd och hd controllers, och nu senast ett grafikkort gjort på HD63484 Advanced Crt Controller. Mycke godis! ( Text 707 ) ( Text 708 ) 1987-02-01 12.09.58 Per Holmgren <5213> Mottagare: Z80 Kommentar till text: 698 av Gunnar Forssell <1631> Ärende: 32 bit processor med u-kod i Eprom. Tja, det låter som Hitachi's AI32. Det kan dröja ett tag innan vi kan köpa den i affärerna, men den är på väg. ( Kommentar i text 710 av Gunnar Forssell <1631> ) ( Text 708 ) ( Text 709 ) 1987-02-01 14.16.09 Gunnar Forssell <1631> Mottagare: Z80 Kommentar till text: 706 av Hans Kaplan <6710> Ärende: u-program. Att genomföra en operand på bara en klockcykel borde vara svårt, men inte omöjligt. I den kurs jag läser om datorers arbetssätt används en enkel modelldator, med gemensam data/adressbuss. Mycket jobbigt! Detta gör att man får hålla reda på vad som finns på bussen, vart det ska, etc. Om man bara kan dela på adresserna och datan bör man kunna hotta upp den datorn (klockan går f.ö. på 1 kHz...) rätt ordentligt. Kanske en ny grej: Bygg din egen Z80 utan Z80! ( Text 709 ) ( Text 710 ) 1987-02-01 14.17.20 Gunnar Forssell <1631> Mottagare: Z80 Kommentar till text: 708 av Per Holmgren <5213> Ärende: 32 bit processor med u-kod i Eprom. Mums! Kan du något mer om den? Tänk att få ha u-koden i RAM, det kan ge en hel del kul effekter... ( Kommentar i text 711 av Per Holmgren <5213> ) ( Text 710 ) ( Text 711 ) 1987-02-01 19.02.13 Per Holmgren <5213> Mottagare: Z80 Kommentar till text: 710 av Gunnar Forssell <1631> Ärende: 32 bit processor med u-kod i Eprom. Det där med u-kod i Ram har diskuterats här rätt nyligen. Det framgick att Datasaab gjorde en datta kallad D23 som kunde modifiera u-koden från aplikationsprogrammet. Bäddat för *grymma* loppor... Det jag har om AI32 är av typen förhandsinfo, som snabbt kan ändras. o 32 bit arkitektur, 32 bit buss och 32 bit ALU och Shifter. o Redigt med minne ombord, 2 register uppsättningar med vardera 256 register a 32 bitar. Kan konfigureras som instruktions/data cache, eller som vanliga register. o 4k ord x 64 bit Eprom för mikrokoden. o Tänkt för AI tillämpningar, bildanalys, taligenkänning, expertsystem, etc. Support kommer att finnas för Smalltalk, Prolog och Lisp. Återkommer med mera detaljer när jag får reda på dem. ( Kommentar i text 715 av Gunnar Forssell <1631> ) ( Kommentar i text 793 av Mikael Pettersson <2195> ) ( Text 711 ) ( Text 712 ) 1987-02-05 01.34.51 David Andersson <5201> Mottagare: Z80 Kommentar till text: 696 av Hans Kaplan <6710> Ärende: Lite jämförelser 68K / 8 bitars processorer Nämnas kan att 68000 har 16 stycken 32-bitars register. Ett av dem (A7 tror jag) används som stackpekare för subrutinanrop och interupt. Annars finns det inget som hindrar att programmeraren använder vilket som helst av registrerna A0 till A7 som stackpekare. (Speciellt om man vill ha flera stackar). Oftast adresserar man minnet med "långa" eller "korta" relativa adresser. Det kan vara PC eller ett register plus/minus ett 16-bitars tal (korta) eller ett 32 bitars tal (långa). Absoluta adresser är inte bra när man har så mycket minne som det brukar vara frågan om när man har 16/32-bitars processorer. Programmen blir för lite flexibla. ( Kommentar i text 717 av Benny Löfgren SYSOP <2615> ) ( Text 712 ) ( Text 713 ) 1987-02-05 07.46.52 Stefan Gartz <2600> Mottagare: Z80 Ärende: Subrutiner ASM ABC800 Jag vill gärna få tag på källkod på TED, CHAINARE, KYEMINI och andra tjusiga asm program för att plocka ut intressanta rutiner. Varför uppfinna hjulet igen, man lär bäst av att läsa andras kod. Finns det redan i monitorn ? När det finns en billig assembler i klubben så vore det passande med en drös av användbara assmsnuttar. Tacksam för upplysningar och förslag. Mvh Sgz ( Kommentar i text 714 av Kent Berggren SYSOP <6019> ) ( Text 713 ) ( Text 714 ) 1987-02-05 10.49.07 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 713 av Stefan Gartz <2600> Ärende: Subrutiner ASM ABC800 ASM800 Säljes av klubben. Du får fråga dem som skrivit de olika programmen ( Text 714 ) ( Text 715 ) 1987-02-09 17.29.23 Gunnar Forssell <1631> Mottagare: Z80 Kommentar till text: 711 av Per Holmgren <5213> Ärende: 32 bit processor med u-kod i Eprom. Jovisst kan det bli loppor så att man baxnar, men tänk på vad man kan göra! "Ska vi köra lite Intel, eller kanske lite Motorola idag?" Ska bli ql att få titta närmare på den när den kommer... ( Kommentar i text 716 av Per Holmgren <5213> ) ( Text 715 ) ( Text 716 ) 1987-02-09 21.13.04 Per Holmgren <5213> Mottagare: Z80 Kommentar till text: 715 av Gunnar Forssell <1631> Ärende: På tal om nåt helt annat.. ..så hitta ja häromdan ett datta-blad på Intersil IN1600. Hehe.. 12 bitars processor som emulerar PDP-8.. Hehehe... Nån som sett den i nån aplikation nånstans ? Finns det rentav nån dattamaskin som har den i sig, månntro ? ( Kommentar i text 718 av Magnus Bodin <4304> ) ( Text 716 ) ( Text 717 ) 1987-02-09 21.14.35 Benny Löfgren SYSOP <2615> Mottagare: Z80 Kommentar till text: 712 av David Andersson <5201> Ärende: Lite jämförelser 68K / 8 bitars processorer Har man vettig hårdvara med MMU så gör det inget om man har absoluta adresser, då konverterar hårdvaran automatiskt den logiska adressen till en fysisk. ( Text 717 ) ( Text 718 ) 1987-02-13 11.08.45 Magnus Bodin <4304> Mottagare: Z80 Kommentar till text: 716 av Per Holmgren <5213> Ärende: På tal om nåt helt annat.. Näe, en PDP-8 är verkligen inte mycket att emulera... Vi har en gammal dito som står i ett hörn på min fd skola. 8 Kb kärnminne & teletype med hålremsa... ( Kommentar i text 719 av Benny Löfgren SYSOP <2615> ) ( Kommentar i text 720 av Per Holmgren <5213> ) ( Text 718 ) ( Text 719 ) 1987-02-13 20.37.23 Benny Löfgren SYSOP <2615> Mottagare: Z80 Kommentar till text: 718 av Magnus Bodin <4304> Ärende: På tal om nåt helt annat.. Nåja, processorn emulerar knappast kärnminnet, teletypen och hålremsan... ( Kommentar i text 735 av Magnus Bodin <4304> ) ( Text 719 ) ( Text 720 ) 1987-02-14 14.57.09 Per Holmgren <5213> Mottagare: Z80 Kommentar till text: 718 av Magnus Bodin <4304> Ärende: På tal om nåt helt annat.. DIGGA !! Fortfarande i drift ? Lust å bli av med den ? ( Kommentar i text 722 av Stefan Berg <216> ) ( Text 720 ) ( Text 721 ) 1987-02-15 09.16.48 Bertil Jansson <5332> Mottagare: Z80 Ärende: FLEX Finns det någon som har en snabb källkod till flexskive- hantering? (även mindre snabb är välkommen) ( Text 721 ) ( Text 722 ) 1987-02-16 00.25.02 Stefan Berg <216> Mottagare: Z80 Kommentar till text: 720 av Per Holmgren <5213> Ärende: På tal om nåt helt annat.. Anmäler oxo intresse. Kan bergis tänkas att man kan betala ett eller annat för den. ( Text 722 ) ( Text 723 ) 1987-02-20 01.36.21 Björn Linderson <5829> Mottagare: Z80 Ärende: Monroe OC8820 Hej hej, hemskt mycket hej! Någon som känner till något om denna maskin? Sitter och hackar på en sådan, och vill veta om det finns någon som har / pysslar med något liknande och har erfarenheter att dela med sig av... Den är lite uppgraderad, en bitt snabbare än orginalet. Någon?? Mvh. Nalle Ps. Svara helst i brev! (5826) ( Kommentar i text 725 av Kent Berggren SYSOP <6019> ) ( Kommentar i text 737 av Bengt Almén <6415> ) ( Text 723 ) ( Text 724 ) 1987-02-20 07.24.02 Stefan Gartz <2600> Mottagare: Z80 Ärende: ASM800-ASMZ Finns det någon som kan berätta skillnaderna mellan dessa assemblers Kan man skriva subrutindelar som länkas in och kan man skriva macros i båda programmen. Vad kostar ASMZ Mvh Sgz ( Kommentar i text 726 av Kent Berggren SYSOP <6019> ) ( Text 724 ) ( Text 725 ) 1987-02-20 09.56.21 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 723 av Björn Linderson <5829> Ärende: Monroe OC8820 Av prrincip kommeterar jag inte i brev efter som andra vill ha reda på mer oxo. Okey det är en ren OS8 maskin som du har och det är igentligen den maskinen som DIAB ville skulle bli ABC800 men som salige Luxor inte vågade sattsa på. Du har ett mycket bra operativsystem som i vissa fall slår MS-DOS. och utklassar CPM med hästlängder. Opertivsystemet är utvecklat på DIAB av en konsult som heter Hasse Bäckman . Det är i stort sätt samma basic i den som till ABC800. Du kan oxo köra Fortran 77 Pascal Asmbler (Cobolt?) m m. Dock icke C. Därimot kan du göra det under CP/M. ("Grarges frikarnas opertiv system =CP/M") Tyvär lyckades man inte marknads föra Monroe särskilt bra och därför är den i dag inte särskilt populär. Men den är mycket bättre än ABC80X. ( Kommentar i text 727 av Björn Linderson <5829> ) ( Text 725 ) ( Text 726 ) 1987-02-20 10.01.42 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 724 av Stefan Gartz <2600> Ärende: ASM800 Den kan man inte skriva macros i men den föredrar jag framför ASMZ efter som den mej veterligen inte är fria. ASM800 äger klubben och du skall kunna få ett ex när manualen är tryckt till ett vettigt pris. Vidare lämnar den Intelhexkod ifrån sig vilket de flästa promprogramerare klarar av . Det gör inte ASMZ. Där får du fnula med något program som jag har gjort som om skapar .ABS-filer till .ITH-filer . Se vidare i program banken. ( Text 726 ) ( Text 727 ) 1987-02-21 00.37.34 Björn Linderson <5829> Mottagare: Z80 Kommentar till text: 725 av Kent Berggren SYSOP <6019> Ärende: Monroe OC8820 De erfarenheter som jag har fått av den är att den är snabb och mycket lätthanterlig och medgörlig. Att det går att köra flera program i den utan att det stör, bevisas av att jag nu kör 5 st andra program i maskinen när jag skriver detta. Hastigheten vid tasking är således inget problem. Att det var meningen att den skulle ha blivit ABC-serien visste jag inte men anade det. Något som jag ibland uppfattat som ett handicap innan jag fick tag på denna maskin, är som på t.ex ABC:n att det är ont om kommunikationsportar om man skulle vilja ansluta mer än en eller två uttre enheter. På Monroen finns tre st. PR, COM, AUX, vilket uppskattas mycket av mig. Mvh /Nalle ( Kommentar i text 728 av Kent Berggren SYSOP <6019> ) ( Text 727 ) ( Text 728 ) 1987-02-21 09.28.10 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 727 av Björn Linderson <5829> Ärende: Monroe OC8820 Har du några problem med att få fram uppgifter om den maskinen kan jag alltid hör med han som skrev OS8. Vet du någon PC som man kan köra 5 jobb samtidigt? HI. ( Kommentar i text 729 av Björn Linderson <5829> ) ( Text 728 ) ( Text 729 ) 1987-02-21 16.26.04 Björn Linderson <5829> Mottagare: Z80 Kommentar till text: 728 av Kent Berggren SYSOP <6019> Ärende: Monroe OC8820 Var f.n får man tag på OS9 ?????? förutom att strypa en viss person förståss, för att få denne att göra som jag vill... Pja.. annars har jag hur mycket dokument som helst till den.. /Nalle ( Kommentar i text 730 av Bo Kullmar SYSOP <1789> ) ( Text 729 ) ( Text 730 ) 1987-02-21 16.31.43 Bo Kullmar SYSOP <1789> Mottagare: Z80 Kommentar till text: 729 av Björn Linderson <5829> Ärende: Monroe OC8820 Vad har OS9 med OS8 maskinen Monroe att göra? ( Kommentar i text 731 av Björn Linderson <5829> ) ( Text 730 ) ( Text 731 ) 1987-02-21 16.47.20 Björn Linderson <5829> Mottagare: Z80 Kommentar till text: 730 av Bo Kullmar SYSOP <1789> Ärende: Monroe OC8820 skall finnas till Monroe:n... * Snabbare * Enklare att jobba med då det gäller Kommunikation. annars samma... ( Kommentar i text 732 av Kent Berggren SYSOP <6019> ) ( Kommentar i text 736 av Bengt Almén <6415> ) ( Text 731 ) ( Text 732 ) 1987-02-21 18.43.56 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 731 av Björn Linderson <5829> Ärende: Monroe OC8820 Nej nu har du fel OS8 är till Z80 OS9 till 68??? Du måste ha blandat ihop det. ( Kommentar i text 733 av Benny Löfgren SYSOP <2615> ) ( Kommentar i text 746 av Björn Linderson <5829> ) ( Text 732 ) ( Text 733 ) 1987-02-21 19.17.19 Benny Löfgren SYSOP <2615> Mottagare: Z80 Kommentar till text: 732 av Kent Berggren SYSOP <6019> Ärende: Monroe OC8820 Det är inte helt rätt, nej. Jag antar att vad ni tänker på är OS10, vilket är en annan benämning (version?) på Montyns OS. -- Kent, en Monroe som kör 5 samtidiga jobb blir hur sänkt som helst, tro mig! Tricket är att det säkert av dessa 5 finns åtminstone två-tre sovande drivers/handlers, eller något sådant. Prova och kör fem kompileringar så får du se! (Vad gäller Hasse B, förresten, så ska du inte tro att han var ensam om att skriva OS8!!! Säkert en tredjedel av programmerarna som var med på den tiden var inblandade, jag tror inte att någon kan 'lastas' för huvuddelen av jobbet. Jag kan förresten nämna att OS8 är mycket inspirerat av ett os som heter OS/32, och som körs på gamla Interdata minidatorer.) ( Kommentar i text 734 av Kent Berggren SYSOP <6019> ) ( Text 733 ) ( Text 734 ) 1987-02-22 11.39.21 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 733 av Benny Löfgren SYSOP <2615> Ärende: Monroe OC8820 Nej jag vet att inte Hasse var ensam. Men det var i alla fall en mycket bra genom tänkt lösning. Tyvär så nappade inte Luxor på konseptet eller har jag fel där? ( Kommentar i text 741 av Benny Löfgren SYSOP <2615> ) ( Text 734 ) ( Text 735 ) 1987-02-23 17.59.35 Magnus Bodin <4304> Mottagare: Z80 Kommentar till text: 719 av Benny Löfgren SYSOP <2615> Ärende: På tal om nåt helt annat.. (. Jaså, inte? Jag trodde de hade implementerat hålremse/TTY-emulering även där.. .) ( Text 735 ) ( Text 736 ) 1987-02-23 23.55.07 Bengt Almén <6415> Mottagare: Z80 Kommentar till text: 731 av Björn Linderson <5829> Ärende: Monroe OC8820 Det finns några olika varianter av OS till MONROE MOS8R3 128kByte Monty (finns i vers 3.15 o 3.18) MOS9 spec vers av MOS8R3 där flera olika device finns def. bl a 8" floppy , flera 5" floppy M1 till M8 MS10MTM 256 kByte Monroe (går även att köra på 128kB) PÅ ovanstående os kan man ansluta Winchester förrutom 5". Dessutom finns CP/M 2,2 (i USA skall det också finnas MP/M) (?) ( Text 736 ) ( Text 737 ) 1987-02-24 16.11.39 Bengt Almén <6415> Mottagare: Z80 Kommentar till text: 723 av Björn Linderson <5829> Ärende: Monroe OC8820 På vilket sätt har du uppgraderat din Monroe ? Har du dessutom speedat upp den. Berätta mera ! Mvh Bengt ( Kommentar i text 738 av Kent Berggren SYSOP <6019> ) ( Kommentar i text 748 av Björn Linderson <5829> ) ( Text 737 ) ( Text 738 ) 1987-02-26 07.41.50 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 737 av Bengt Almén <6415> Ärende: Monroe OC8820 Jag har kollat med han som skrev bitar av OS8 och tydligen så är vissa program beroende av CPU:s klockfrekvens. ( Kommentar i text 742 av Benny Löfgren SYSOP <2615> ) ( Text 738 ) ( Text 739 ) 1987-03-01 14.40.04 Stefan Nilsen <6089> Mottagare: ABC80 Flyttad till: Z80 av Stefan Nilsen Ärend Dynamiskt RAM Vad finns det för dynamiska minneskapslar som går att addressera utan multiplexing av addressen ( Kommentar i text 740 av Hans Holmberg <2838> ) ( Text 739 ) ( Text 740 ) 1987-03-02 02.22.02 Hans Holmberg <2838> Mottagare: Z80 Kommentar till text: 739 av Stefan Nilsen <6089> Ärend Dynamiskt RAM Det finns visst ett 8192x8bits dram som heter M5M5165P-70, och den har en accesstid på 70ns. Tillverkas av Mitsubishi och finns nog att köpa hos de flesta elektronikgrossister. Det kostar ca 130 kr exkl. moms, så det är inte direkt en billig krets. Men varför inte använda dig av statiska ram istället?! (Iofs. är de lång- sammare) Mvh Hasse ( Text 740 ) ( Text 741 ) 1987-03-02 18.29.56 Benny Löfgren SYSOP <2615> Mottagare: Z80 Kommentar till text: 734 av Kent Berggren SYSOP <6019> Ärende: Monroe OC8820 Nej, du har rätt i att Luxor inte ville ha OS8, tyvärr! ( Text 741 ) ( Text 742 ) 1987-03-02 18.32.36 Benny Löfgren SYSOP <2615> Mottagare: Z80 Kommentar till text: 738 av Kent Berggren SYSOP <6019> Ärende: Monroe OC8820 Normalt ska ett OS8-program inte vara beroende av klockfrekvensen, så länge man inte spekulerar i instruktionstiming (vilket är MYCKET dumt då man har ett multitask-os...). ( Kommentar i text 743 av Kent Berggren SYSOP <6019> ) ( Text 742 ) ( Text 743 ) 1987-03-03 18.19.41 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 742 av Benny Löfgren SYSOP <2615> Ärende: Monroe OC8820 Va det inte så att kundnr lästes av i en vis fast eller.. ? ( Kommentar i text 744 av Bengt Almén <6415> ) ( Text 743 ) ( Text 744 ) 1987-03-04 08.09.29 Bengt Almén <6415> Mottagare: Z80 Kommentar till text: 743 av Kent Berggren SYSOP <6019> Ärende: Monroe OC8820 Det stämmer att denna funktion finns , men jag har inte sett att den används vid något tillfälle på MONROE-maskiner. Mvh Bengt ( Text 744 ) ( Text 745 ) 1987-03-14 19.42.38 Peter Goldmann <5080> Mottagare: Z80 Ärende: ASSEMBLER 800 I detta paket ingår ju EDIT.ABS som man skriver källkoden/textfilen med ASMZ.ABS som konverterar textfilen till -----.OBJ fil ESTAB.ABS konverterar -----.OBJ fil till körbar -----.ABS fil TRACE.ABS används för felsökning och kontrollerad körning av de filer som är i -----.ABS format. Nu till frågan: OBJUPD.ABS skapar och uppdaterar OBJEKT-bibliotek. Vad betyder det? Vad används detta bibliotek till och vad är vitsen med att datera upp det. Jag välkomnar synpunkter och finesser från er som kört en del. Manualen är inte så tydlig alla gånger. ( Kommentar i text 749 av Stefan Frank <5452> ) ( Kommentar i text 752 av Stefan Gartz <2600> ) ( Text 745 ) ( Text 746 ) 1987-03-14 20.08.34 Björn Linderson <5829> Mottagare: Z80 Kommentar till text: 732 av Kent Berggren SYSOP <6019> Ärende: Monroe OC8820 Nja... inte denna... det är en z80b..... så de så! OS9 finns en upplaga till z80... /Nalle ( Text 746 ) ( Text 747 ) 1987-03-14 20.11.32 Björn Linderson <5829> Mottagare: Z80 Ärende: MOS10MTM Nå'n såm vet var fanken man får tag på eller har MS10MTM?????? Kan betala hyffsad summa... /Nalle PS! Ring 011 - 239260 helger fram till den 27 mars.. sedan heltid.. ( Kommentar i text 755 av Bengt Almén <6415> ) ( Text 747 ) ( Text 748 ) 1987-03-14 20.12.23 Björn Linderson <5829> Mottagare: Z80 Kommentar till text: 737 av Bengt Almén <6415> Ärende: Monroe OC8820 Minne, z80b-köret, funderar på z800... /Nalle .... ( Text 748 ) ( Text 749 ) 1987-03-15 00.18.26 Stefan Frank <5452> Mottagare: Z80 Kommentar till text: 745 av Peter Goldmann <5080> Ärende: ASSEMBLER 800 OBJUPD används till att samla ett flertal .OBJ-filer under ett och samma bibliotek (objekt-bibliotek). ESTAB kan sedan konvertera en eller flera av dessa .OBJ-filer, som ligger i biblioteket, till en .ABS-fil. M.v.h Stefan ( Text 749 ) ( Text 750 ) 1987-03-15 08.06.07 Peter Goldmann <5080> Mottagare: Z80 Ärende: ASSEMBLER800 VARFÖR har man både -----.OBJ och -----.ABS format på filerna - varför får man inte -----.ABS direkt från ASMZ.ABS? Kan man manuellt editera ----.OBJ - filer och göra dem till -----.ABS eller tvärt om? ( Kommentar i text 751 av Stefan Frank <5452> ) ( Kommentar i text 754 av Anders Franzén <5258> ) ( Text 750 ) ( Text 751 ) 1987-03-15 09.02.01 Stefan Frank <5452> Mottagare: Z80 Kommentar till text: 750 av Peter Goldmann <5080> Ärende: ASSEMBLER800 Om du har ett väldigt stort program bestående av ett flertal källkodsfiler kan du assemblera en i taget av dessa till en .OBJ-fil. För att sedan få programmet "körklart" slår du ihop dessa .OBJ-filer till EN .ABS-fil. Det är nog inte det lättaste att editera .OBJ-filer manuellt till .ABS eller tvärt om. Men ingenting är omöjligt (nästan)... M.v.h Stefan ( Text 751 ) ( Text 752 ) 1987-03-16 08.15.24 Stefan Gartz <2600> Mottagare: Z80 Kommentar till text: 745 av Peter Goldmann <5080> Ärende: ASSEMBLER 800 Är det asemmblern som ABCKlubben säljer? Mvh Stefan Gartz ( Kommentar i text 753 av Peter Goldmann <5080> ) ( Text 752 ) ( Text 753 ) 1987-03-16 20.40.47 Peter Goldmann <5080> Mottagare: Z80 Kommentar till text: 752 av Stefan Gartz <2600> Ärende: ASSEMBLER 800 Vet ej detta är Luxors Assembler 800 (Databoard) ( Text 753 ) ( Text 754 ) 1987-03-16 21.44.55 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 750 av Peter Goldmann <5080> Ärende: ASSEMBLER800 Man kan ställa sig frågan: -Varför i Jesse namn framställs en objektfil som sedan måste länkas till en exekverbar laddmodul när man t ex kompilerar COBOL-pgm? När det gäller COBOL och andra högnivåspråk (även assembler på större maskiner) så är det på det viset att man kanske vill skriva olika delar i ett programpaket i olika programspråk. Genom att alla kompilatorer och assemblatorer framställer en standardiserad objektkod kan man sedan pussla (länka) ihop dessa objektfiler till en enda jättefil med exekverbar kod i. Varför vill man smälla ihop allt till en jättefil då? Jo, det går mycket fortare. Men får den plats i minnet då? Jo, minnet räcker! Dessutom kan ju knappast ett BASIC-program göra CHAIN till ett COBOL-program. Varför man gjort så här på en ABC800-maskin kan man dock fundera på. Jag vet det inte. ( Kommentar i text 758 av Benny Löfgren SYSOP <2615> ) ( Text 754 ) ( Text 755 ) 1987-03-17 08.33.11 Bengt Almén <6415> Mottagare: Z80 Kommentar till text: 747 av Björn Linderson <5829> Ärende: MOS10MTM Svensk support på mjukvara och då även OS är Datastyrning AB i Linköping, tel 013-11 16 40 , du kan prata med Ingemar Andersson. ( Text 755 ) ( Text 756 ) 1987-03-17 17.14.40 Stefan Frank <5452> Mottagare: Z80 Ärende: SYS(8) på en 802:a Hur var det nu assembler-rutinen såg ut för att få motsvarande effekt som SYS(8) på 802:an? Jag har läst det någon stans, men kommer inte ihåg hur den såg ut... M.v.h Stefan ( Kommentar i text 757 av Kristoffer Eriksson <5357> ) ( Text 756 ) ( Text 757 ) 1987-03-21 00.13.41 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 756 av Stefan Frank <5452> Ärende: SYS(8) på en 802:a Så här ser det ut i basictolken: LD A,16 OUT (35),A IN A,(35) AND 8 JR NZ KEY_PRESSED ... ( Text 757 ) ( Text 758 ) 1987-03-21 17.01.50 Benny Löfgren SYSOP <2615> Mottagare: Z80 Kommentar till text: 754 av Anders Franzén <5258> Ärende: ASSEMBLER 800 / ASMZ Varför man använder tekniken med .OBJ-filer är kanske lite svårt att förstå för gemene man. Det är helt enkelt så att när man programmerar så händer det (ofta!) att man måste göra någon rutin som man har gjort förut. Om man nu har skapat sig ett modulbibliotek så finns den rutinen där, fix och färdig, och bara för länkaren att suga tag i. Ett annat exempel är om man har mycket stora program, och gör en modifiering, så behöver man inte kompilera/assemblera om hela programmet, utan bara den modul ändringen befinner sig i, och sedan länka om det. Mycket smidigt. Kontentan är att vad man förlorar i smidighet när man gör små snuttar tar man igen med råge när man gör större program. ( Kommentar i text 759 av Anders Franzén <5258> ) ( Text 758 ) ( Text 759 ) 1987-03-22 14.25.20 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 758 av Benny Löfgren SYSOP <2615> Ärende: ASSEMBLER 800 / ASMZ Jo, det kan vara praktiskt att snabbt kunna länka om ett program så att en "del" av ett större komplex förändras. Men då bör man också kunna länka med DET FÄRDIGA PROGRAMMET och den NYA OBJEKTMODULEN som indata. Man ska alltså inte behöva samla på sig massor av objektfiler. Det är bara fråga om dubbel- lagring av data. I större system kan man ta en laddmodul och länka in en ny version av en "delmodul" som ingår i den stora. Man behöver inte assemblera om hela paketet utan det räcker att assemblera den lilla snutten samt länka in den då framställda lilla objekt- modulen in i den stora laddmodulen. Nu kan man väl inte göra så på en ABC800 så man tvingas samla på sig en massa objektfiler. Om man nu tycker det är effektivare. Men ABC800 är väl inte en sådan dator som man utvecklar större system på. ( Kommentar i text 760 av Benny Löfgren SYSOP <2615> ) ( Text 759 ) ( Text 760 ) 1987-03-22 14.56.20 Benny Löfgren SYSOP <2615> Mottagare: Z80 Kommentar till text: 759 av Anders Franzén <5258> Ärende: ASSEMBLER 800 / ASMZ Du får hålla isär den färdiga binärkoden och objektmodulerna! Tänk på att ABS-formatet inte är relokerbart, vilket är ett krav för att man ska kunna göra som du säger. Jag förstår att du inte riktigt inser fördelarna med att använda den här metodiken, jag kan livligt föreställa mig att det är svårt att tänka modulariserat i ABC80-miljö. Stirra dig inte blind på dubbellagring, disketter är billiga. ( Kommentar i text 763 av Anders Franzén <5258> ) ( Text 760 ) ( Text 761 ) 1987-03-22 22.36.53 Per Fagerkvist <3862> Mottagare: Z80 Ärende: ASMZ HEJ ! Nu har jag nästan tröttnat på att själv, komma underfund med ASMZ. Efter att ha läst ovan inlägg (om .OBJ & .ABS) så tänkte jag provocera med följande. Det finns ingen som riktigt kan .ASMZ Kom igen och visa det i så fall med ett konkret exempel. Där alla kan ställa frågor efterhand. EX. behöver givetvis inte vara komplext, bäst om det inte är det. Ett ex. där länkmoduler används OBJUPT. FEGISAR !!!!! Hmmmmm... ( Kommentar i text 762 av Benny Löfgren SYSOP <2615> ) ( Text 761 ) ( Text 762 ) 1987-03-23 18.33.05 Benny Löfgren SYSOP <2615> Mottagare: Z80 Kommentar till text: 761 av Per Fagerkvist <3862> Ärende: ASMZ Löjligt påstående! Jag har använt ASMZ ända sen jag kom ur blöjåldern (nåja), och tror mig nog kunna påstå att jag kan ASMZ som min egen ficka. Vill du ha ett exempel? Ta då en titt på mitt program RUN.ABS, som finns i monitorn komplett med source. Det består av en två-tre moduler, samt ett antal standardmoduler innehållande bl a systemanrop och systemvariabel- adresser. Kort sagt EQU-filer, som jag brukar benämna dem. ( Text 762 ) ( Text 763 ) 1987-03-23 21.36.20 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 760 av Benny Löfgren SYSOP <2615> Ärende: ASSEMBLER 800 / ASMZ Nä, jag befinner mig inte i ABC80-miljö. Jo, det gör jag ju i och för sig men när jag kommenterade dig befann jag mig i en värld med relokerbar kod. Ok, det kan väl kanske vara bra med dubbellagringen då om man bara har en ABC800. På en ABC80 behövs inte det för assembleringen går så snabbt att tiden är försumbar jämfört med lagringsutrymmet. Leve ABC80! ( Kommentar i text 764 av Benny Löfgren SYSOP <2615> ) ( Text 763 ) ( Text 764 ) 1987-03-25 18.46.22 Benny Löfgren SYSOP <2615> Mottagare: Z80 Kommentar till text: 763 av Anders Franzén <5258> Ärende: ASSEMBLER 800 / ASMZ ASMZ assemblerar också VÄLDIGT snabbt, så det är i sig inget problem, men man törs ju knappt tänka på att editera/assemblera/debugga ett 5000 raders assemblerprogram som var gjort i en klump! Bara editeringen borde ju få datorn att storkna! ( Kommentar i text 765 av Anders Franzén <5258> ) ( Text 764 ) ( Text 765 ) 1987-03-25 19.36.11 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 764 av Benny Löfgren SYSOP <2615> Ärende: ASSEMBLER 800 / ASMZ Jo, stora källkodsfiler är svårhanterliga. Jag undviker alltid stora filer. Det är mycket praktiskt att dela upp det hela i mindre källkodsfiler. Tyvärr klarar inte alla assemblatorer att läsa flera infiler i en följd och tolka det som en enda jättefil. ( Kommentar i text 766 av Benny Löfgren SYSOP <2615> ) ( Text 765 ) ( Text 766 ) 1987-03-29 19.41.56 Benny Löfgren SYSOP <2615> Mottagare: Z80 Kommentar till text: 765 av Anders Franzén <5258> Ärende: ASSEMBLER 800 / ASMZ Poletten har fortfarande inte trillat ner, hör jag! Det är mer eller mindre vansinnigt att låta assemblern assemblera 5000 rader, oavsett om det är en eller 50 infiler! Det är därför man skapar objektfiler, för att man bara ska behöva assemblera om kanske 100 av dessa rader, om man ändrar något! ( Kommentar i text 767 av Anders Franzén <5258> ) ( Text 766 ) ( Text 767 ) 1987-03-30 19.51.30 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 766 av Benny Löfgren SYSOP <2615> Ärende: ASSEMBLER 800 / ASMZ Jo, jag förstår vad du menar. Om jag säger så här då: Synd att man måste samla på sig en massa objektfiler. Datat i dessa finns ju också i källkoden, dvs dubbellagring av data. Men eftersom man inte kan länka om färdiga laddmoduler (exekverbara program, t ex BAC eller ABS) så får man väl stå ut med en massa extrafiler. ABC80 assemblerar snabbt, särskilt om man kan göra det i ett pass. Det funkar på inte allt för stora program. Större filer går också fort. Det som bromsar är tiden det tar att läsa från skiva. Jämför man tiden att tolka en rad med den tid det tar att läsa in en rad från skivan (egentligen den tid det tar att läsa in ett helt block men det görs ju inte för varje rad) så finner man att datorn är snabb och skivmanicken är långsam. Men det vet väl alla redan. På större maskiner är assemblerings- tiden nästan helt försumbar. I stället för att krångla med objektfiler hit och dit offrar man gärna någon minut extra. ( Kommentar i text 768 av Stefan Gartz <2600> ) ( Kommentar i text 771 av Benny Löfgren SYSOP <2615> ) ( Text 767 ) ( Text 768 ) 1987-03-31 07.21.00 Stefan Gartz <2600> Mottagare: Z80 Kommentar till text: 767 av Anders Franzén <5258> Ärende: ASSEMBLER 800 / ASMZ Vitsen med ett bibliotek är att du inte behöver tänka på var och hur respektive 'recept' är skrivet du bara skriver 'punch+ärtsoppa+pannkaka' och så får du en hel middag serverad utan att behöva bekymra dig. Som att gå på resturang Du samlar på dig alla olika recept och stoppar i biblioteket MVH Stefan Gartz ( Kommentar i text 769 av Anders Franzén <5258> ) ( Text 768 ) ( Text 769 ) 1987-04-01 19.28.28 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 768 av Stefan Gartz <2600> Ärende: ASSEMBLER 800 / ASMZ Visst, men varför ska man skriva av alla recepten på grekiska och spara både orginalet och kopian? I ABC-världen måste man kanske det för att spara tid. Det går i denna värld fortare att läsa grekiskan än vad det gör att läsa svenskan. ( Kommentar i text 770 av Gunnar Forssell <1631> ) ( Kommentar i text 772 av Benny Löfgren SYSOP <2615> ) ( Text 769 ) ( Text 770 ) 1987-04-02 09.07.54 Gunnar Forssell <1631> Mottagare: Z80 Kommentar till text: 769 av Anders Franzén <5258> Ärende: ASSEMBLER 800 / ASMZ Det måste väl bero på om man kan grekiska eller ej? ( Text 770 ) ( Text 771 ) 1987-04-02 11.26.41 Benny Löfgren SYSOP <2615> Mottagare: Z80 Kommentar till text: 767 av Anders Franzén <5258> Ärende: ASSEMBLER 800 / ASMZ Jo, men om du tänker efter så är det en praktiskt dubbellagring! Om du har en eller flera objektmoduler så behöver du ju för den delen inte ha källkodsfilen på samma diskett! En diskett är inte dyr, så kosta på dig att ha källkoderna separat. De behöver du bara ha på en skiva, objekt- filerna (som dessutom är avsevärt mycket mindre än respektive källkodsfil) kan du sprida på hur många du vill. Jag håller med dig om att assembleringstiden relativt sett är mycket kort jämfört med inläsningstiden, men det är ju egentligen bara ytterligare ett argument för att man ska stycka sitt program i mindre snuttar som följdaktligen går fortare att läsa! Jag är nog själv ganska bortskämd som har tillgång till snabba floppys och winchestrar, men jag använde ASMZ redan på den tiden då jag bara hade en DataDisc 82:a! ( Kommentar i text 773 av Anders Franzén <5258> ) ( Kommentar i text 778 av Mikael Pettersson <2195> ) ( Text 771 ) ( Text 772 ) 1987-04-02 11.30.16 Benny Löfgren SYSOP <2615> Mottagare: Z80 Kommentar till text: 769 av Anders Franzén <5258> Ärende: ASSEMBLER 800 / ASMZ Jag skulle väl snarare säga att det som för dig är grekiska för datorn är svenska, vilket förklarar VARFÖR datorn läser grekiska snabbare (med andra ord: den är grek!), och dessutom VARFÖR man bör översätta så mycket som möjligt till grekiska (läs objektkod) för att minska den totala tids- åtgången. ( Kommentar i text 774 av Anders Franzén <5258> ) ( Kommentar i text 775 av Anders Franzén <5258> ) ( Kommentar i text 780 av Kent Berggren SYSOP <6019> ) ( Text 772 ) ( Text 773 ) 1987-04-02 19.34.40 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 771 av Benny Löfgren SYSOP <2615> Ärende: ASSEMBLER 800 / ASMZ Nja, praktisk i den bemärkelsen att man slipper assemblera om en massa kod som redan är assemblerat bara för att ändra en ynka byte. Jag tycker nog ändå att man skall undvika dubbellagring. Om man glömmer uppdatera båda versionerna (dvs både källkod och objektkod) kan man ligga risigt till. Men ok, jag förstår att många tycker att "spara-objektfils-metoden" är bra på en ABC800. På snabbare maskiner bör man nog inte jobba så tycker jag. ( Kommentar i text 777 av Kjell Svensson <5318> ) ( Kommentar i text 781 av Benny Löfgren SYSOP <2615> ) ( Text 773 ) ( Text 774 ) 1987-04-02 19.44.52 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 772 av Benny Löfgren SYSOP <2615> Ärende: ASSEMBLER 800 / ASMZ Jo, maskinen är kanske grek. Men då tiden det tar att översätta svenska till grekiska är försumbar jämfört med den tid det tar att läsa från skiva är inte tidsvinsten så stor. Det är skillnad inuti en CPU, ta t ex språket BASIC. Där kan man tjäna dyrbar tid om man översätter källprogrammet till internspråk i stället för att tolka varje sats vid exekveringen (som den usla PC-BASICen GWBASIC t ex). Ponera att vi har tillgång till obegränsat stort yttre lagringsmedium med en åtkomsttid till datat som är jämförbar med en läsning i datorns RAM (någon sorts framtida superdisk). Skulle det då vara motiverat att spara objektkoden? NEJ! Det finns alltså inget logiskt skäl till att dubbellagra datat. Möjligen ett praktiskt skäl därför att det inte finns några sådana superdiskar. Kanske tänker jag för mycket framåt? Om man bara har en ABC800 (bara och bara, det är inte så lite) så ok då, vill man hålla på med objektkodssamling så får man väl göra det. Jag skulle aldrig göra det! ( Kommentar i text 782 av Benny Löfgren SYSOP <2615> ) ( Text 774 ) ( Text 775 ) 1987-04-02 19.49.07 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 772 av Benny Löfgren SYSOP <2615> Ärende: ASSEMBLER 800 / ASMZ Glöm inte heller bort att det tar tid att skapa en objektkodsfil. Det krävs att denna fil öppnas på skivan, att data skrivs och slutligen att filen stängs. Sedan skall ett länkningssteg återigen öppna filen läsa den samt stänga den. Egentligen var det jag skrev ett dumt argument. Orsaken till att man använder objektkodsfiler överhuvudtaget är ju att man ska kunna skriva ett stort program i olika smådelar med olika programspråk. Så det är bra med objektkodsfiler. Men sådana skall vara temporära tycker jag, så det så! ( Kommentar i text 776 av Bo Kullmar SYSOP <1789> ) ( Text 775 ) ( Text 776 ) 1987-04-02 20.11.57 Bo Kullmar SYSOP <1789> Mottagare: Z80 Kommentar till text: 775 av Anders Franzén <5258> Ärende: ASSEMBLER 800 / ASMZ Debatten mellan Benny och Anders om objektkodsfiler vid assemblering synes mig vara ganska tjatig! Om inte andra finner mera intresse i den så föreslår jag att ni fortsätter i brev eller avslutar debatten nu! ( Kommentar i text 779 av Mikael Pettersson <2195> ) ( Kommentar i text 785 av Benny Löfgren SYSOP <2615> ) ( Text 776 ) ( Text 777 ) 1987-04-02 21.24.34 Kjell Svensson <5318> Mottagare: Z80 Kommentar till text: 773 av Anders Franzén <5258> Ärende: ASSEMBLER 800 / ASMZ Kan någon förklara vad objektkoder är för något! Jag känner till källkodsfiler till assemblern,pokesatsprogram och lagring av maskinkod i strängar eller i "CHAIN"-rader till ABC80. Hur fungerar objektkoderna,måste man inte assemblera om hela källkoden när man gör någon ändring? Hur fungerar det annars med adressreferenser o.d. när man ändrat något? H/Kjell ( Kommentar i text 784 av Benny Löfgren SYSOP <2615> ) ( Text 777 ) ( Text 778 ) 1987-04-03 03.24.50 Mikael Pettersson <2195> Mottagare: Z80 Kommentar till text: 771 av Benny Löfgren SYSOP <2615> Ärende: ASSEMBLER 800 / ASMZ Om man tycker sig ha nyttat av objketmoduler eller inte, beror snarast på vad som kostar på aktuell maskin: lagringsmedia eller CPU-användning. Läs: OM man har en maskin med slö CPU (som ABC-maskinerna) och billigt lagringsmedia (floppies, band, disk) har man ju ingen anledning att göra om en massa kompileringar i onödan. Det är särskilt tråkigt att behöva kompilera om runtimen *varje* gång man vill testa nåt litet program :-( Skulle man däremot ha en snabb maskin (Cray-X/MP) med slött media (hålkort av platina) kan man ev. vilja minimera sekundärminnesanvändningen.. (fast jag kan då inte komma på någon som skulle vara i *DEN* situationen :->) Alltså: dubbellagring, användning av objekts-filer och -bibliotek är en *nödvändig* och *trevlig* ingrediens i riktig programmering. ( Text 778 ) ( Text 779 ) 1987-04-03 03.26.53 Mikael Pettersson <2195> Mottagare: Z80 Kommentar till text: 776 av Bo Kullmar SYSOP <1789> Ärende: ASSEMBLER 800 / ASMZ Skicka den till 'dev/null' alt. 'NUL:' ( Text 779 ) ( Text 780 ) 1987-04-03 07.47.42 Kent Berggren SYSOP <6019> Mottagare: Z80 Kommentar till text: 772 av Benny Löfgren SYSOP <2615> Ärende: ASMZ till ABC800 Dum fråga. Hur var det, har vi fått den eller ?? ( Kommentar i text 786 av Benny Löfgren SYSOP <2615> ) ( Text 780 ) ( Text 781 ) 1987-04-03 12.18.42 Benny Löfgren SYSOP <2615> Mottagare: Z80 Kommentar till text: 773 av Anders Franzén <5258> Ärende: ASSEMBLER 800 / ASMZ Det är just på snabbare maskiner man har störst behållning av att arbeta objektorienterat! Om du t ex har kört på något UNIX-system så har du säkert funnit ett program som heter 'make'. Det är ett program som är till för att på ett enkelt och smidigt sätt underhålla källkods- och objektkodsfiler, baserat på vilken av filerna som är den nyaste. Har man make räcker det med ett enda kommando ('make program', t ex) för att få ett helt programsystem, oavsett storlek och komplexitet, up-to-date. ( Text 781 ) ( Text 782 ) 1987-04-03 12.21.03 Benny Löfgren SYSOP <2615> Mottagare: Z80 Kommentar till text: 774 av Anders Franzén <5258> Ärende: ASSEMBLER 800 / ASMZ Nej, du skulle aldrig göra det, för du är en hempulare som hela tiden vet vad du gör, ponera att du är en av kanske ett par dussin programmerare som håller på med samma projekt. Att inte modularisera i det läget vore helt omöjligt! ( Kommentar i text 783 av Benny Löfgren SYSOP <2615> ) ( Text 782 ) ( Text 783 ) 1987-04-03 12.23.14 Benny Löfgren SYSOP <2615> Mottagare: Z80 Kommentar till text: 782 av Benny Löfgren SYSOP <2615> Ärende: ASSEMBLER 800 / ASMZ En annan sak, du skriver att tiden för själva översättningen är försumbar, då har du aldrig kompilerat ett C-program på kanske tiotusen rader! Jag lovar dig, har man möjlighet att arbeta med objektkod så GÖR man det, av ren självbevarelsedrift!!! ( Text 783 ) ( Text 784 ) 1987-04-03 12.28.20 Benny Löfgren SYSOP <2615> Mottagare: Z80 Kommentar till text: 777 av Kjell Svensson <5318> Ärende: ASSEMBLER 800 / ASMZ Objektkoder fungerar olika på olika system, men principen är oftast den- samma överallt. Vad man gör när man har kompilerat/assemblerat sitt program är att man får en objektfil med slutresultatet PLUS en del information som relokeringsdata, globala variabler osv. Sedan tar man och matar en så kallad LÄNKARE eller LADDARE med en eller flera av dessa objektmoduler, länkaren löser sedan ut alla relokerbara referenser och skapar en utfil, som kan vara direkt exekverbar, prombar eller användbar på annat sätt. Om man sedan ändrar en del av sitt program behöver man bara asemblera/ kompilera om den delen, och köra länkarpasset igen. Eftersom objektformatet innehåller relokeringsinformation så klarar länkaren själv av att knyta ihop alla lösa trådar och lägga modulen där den ska vara. ( Kommentar i text 787 av Anders Franzén <5258> ) ( Kommentar i text 789 av Hans Kaplan <6710> ) ( Text 784 ) ( Text 785 ) 1987-04-03 12.30.41 Benny Löfgren SYSOP <2615> Mottagare: Z80 Kommentar till text: 776 av Bo Kullmar SYSOP <1789> Ärende: ASSEMBLER 800 / ASMZ OK, jag avslutar gärna debatten, Anders får gärna hålla på som han vill, det lägger jag mig inte i! Har man aldrig provat på något så saknar man det heller inte. ( Kommentar i text 788 av Anders Franzén <5258> ) ( Text 785 ) ( Text 786 ) 1987-04-03 12.31.38 Benny Löfgren SYSOP <2615> Mottagare: Z80 Kommentar till text: 780 av Kent Berggren SYSOP <6019> Ärende: ASMZ till ABC800 Nej inte än, men det är inte omöjligt att den kommer, tillsammans med Pascal 800. ( Text 786 ) ( Text 787 ) 1987-04-03 22.10.04 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 784 av Benny Löfgren SYSOP <2615> Ärende: ASSEMBLER 800 / ASMZ Här ser jag en principiell skillnad i våra åsikter. Du anser att objektkodsfiler är till för att man snabbt ska kunna förändra endast en liten del av ett större paket. Jag påstår att objektkodsfiler är påhittade för att man ska kunna skriva olika delar, moduler, i ett stort paket i olika programspråk. Vi är båda överens om att modulprogrammering, uppdelning av programvara i väl definierade mindre enheter med in- och utdata noggrant specifiserade, är det enda raka. ( Kommentar i text 790 av Hans Kaplan <6710> ) ( Text 787 ) ( Text 788 ) 1987-04-03 22.17.45 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 785 av Benny Löfgren SYSOP <2615> Ärende: ASSEMBLER 800 / ASMZ Jo, det är kanske dags att avsluta debatten nu. Vi kommer inte längre, vi sitter fast i våra egna små världar. Huvudsaken är ändå att det är kul. Kul att höra andra åsikter och samtidigt veta att man har rätt! Leve ABC80! ( Text 788 ) ( Text 789 ) 1987-04-05 00.00.53 Hans Kaplan <6710> Mottagare: Z80 Kommentar till text: 784 av Benny Löfgren SYSOP <2615> Ärende: ASSEMBLER 800 / ASMZ Och ofta har datorn som ska exekvera en hel del "biblioteksrutiner" i sin monitor som man anropar med resp. namn vilka omvandlas till resp. startadress av länkaren. (Rutinerna avslutas med return) Det kan vara rutiner för utskrift på skärmen av datasatser i källkoden eller inväntande av tecken från tangentbordet osv. Ja, allt det där blir "objektkod"; helt klart för exekvering. ( Text 789 ) ( Text 790 ) 1987-04-05 00.13.57 Hans Kaplan <6710> Mottagare: Z80 Kommentar till text: 787 av Anders Franzén <5258> Ärende: ASSEMBLER 800 / ASMZ Utan att ha följt diskussionen ordentligt dristar jag mig att påstå att objektkodsfiler är något man inte slipper undan men mera sällan har anled- ning att jobba med, det kan vara möjligen tillfälliga prov med någon "modify memory" - funktion i den exekverande datorn, hittar man då något bättre så blir det att assemblera och länka om. På så sätt kan man slippa assemblera och länka ett nytt prov i onödan. Modulprogrammering tycks inte ha med detta att göra alls. Det är lätt att blanda ihop de olika nivåerna. ( Kommentar i text 792 av Benny Löfgren SYSOP <2615> ) ( Text 790 ) ( Text 791 ) 1987-04-05 04.21.01 Kristoffer Eriksson <5357> Mottagare: Z80 Ärende: Objektfiler och dito -bibliotek För att kunna använda mer än ett språk i ett och samma program måste man gå vägen över ett för de olika språken gemensamt objektfilsformat, som en länkare länkar ihop till en färdig körbar fil. Enda alternativet vore väl en kompilator som själv klarar flera olika språk, och vem har väl hört talas om en sådan? Man är alltså tvungen attha objektkodsfiler, och om man nu ändå har dem, vore det väl bra märkligt om man inte skulle spara tid på att ha kvar en gammal objektfil i stället för att kompiler om källkoden till enny objektfil, när man gör en ändring någon annan stanns i programmet. Om man bara räknar antalet filöppningar, så innebär ju en omkompilering att man måste öppna objektfilen en gång mer när den skapas på nytt, och även i princip en gång när den tas bort efteråt igen! När man väl är klar med sitt projekt tar man väl antagligen bort de flesta objektfilerna, för då behövs de inte längre på ett tag. Däremot lägger man sådana rutiner som används ideligen i många olika program i objektkodsbibliotek, där länkaren automatiskt hittar dem när man nämner dem i något program, vilket är mycket praktiskt, ofta är det inte specielt långa systemrutiner som knappast "slösar" med diskutrymme. Dessutom har man ofta inte källkoden till dessa rutiner, åtminstone inte på maskiner utan källkodslicens till t ex operativsystemet. Dess- utom är de till största delen skrivna i assembler, medan programmen som använder dem t ex är skrivna i C, Fortran eller Pascal, osv, alltså ett typiskt flerspråksproblem. Om man nu har körbara filer av en typ som kan länkas om direkt, så är de i praktiken objektkodsfiler, och innehåller överflödig infor- mation (överflöig för körningen), som tar upp extra diskutrymme, så diskbesparingen blir inte så fantastiskt stor sommn skulle kunna tro! (Det kan också vara så att länknings/relokeringsfasen är inbyggd i operativsystemets rutin för programinläsning, men det måste ju slöa ner systemet en del.) Så jag kan inte se att objektkodsfiler skulle vara överflödiga! ( Text 791 ) ( Text 792 ) 1987-04-06 10.50.10 Benny Löfgren SYSOP <2615> Mottagare: Z80 Kommentar till text: 790 av Hans Kaplan <6710> Ärende: ASSEMBLER 800 / ASMZ Det är helt riktigt att modulprogrammering egentligen inte alls har med objektfiler/moduler att göra, men man använder ofta det ena för att uppnå det andra, då man får en naturlig uppdelning i moduler i och med att man delar källkoden på flera filer. ( Text 792 ) ( Text 793 ) 1987-04-07 22.21.03 Mikael Pettersson <2195> Mottagare: Z80 Kommentar till text: 711 av Per Holmgren <5213> Ärende: DataSaab D23 (FCPU) DataSaab's 'flaggskepp' D23an (FCPUn kallad: Flexible Central Processing Unit) konstruerades av (bla ?) Prof. Lawson som har varit här på LiTH några år. Vi i Lysator (sveriges äldsta datorförening) har 2 stycken, varav en är 'uppe' och kör ganska så kontinuerligt. En av våra medlemmar har skrivit en mikrokodsassemlblator till henne (ja, FCPUn är en hon vid namn Cecilia). Maskinen är unik till sin uppbyggnad eftersom den *inte* använder principen om synkroniserad klockning, i själva verket är centralenheten helt asynkron... ( Kommentar i text 797 av Kjell Enblom <5575> ) ( Kommentar i text 828 av Per Holmgren <5213> ) ( Text 793 ) ( Text 794 ) 1987-04-16 21.32.13 Peter Goldmann <5080> Mottagare: Z80 Ärende: Processorarkitektur Finns det numera processorer där alla bussar är separata? Adressbuss Databuss Instruktionsbuss DMA -buss I/O -buss Med en sådan separering skulle processorn bli mycket snabb. Dessutom skulle man kunna ha minnet dynamiskt uppdelat i olika fält/areor och ev ha flera adressbussar en för Dataarean och en för programarean som kunde operera oberoende av varandra. Att man var så snål med trådar/ben tidigare berodde väl på begränsningar i kapslingsteknik. Om man har brottom kunde man ju låta en optisk fiberlänk utgöra snabba bussen för exvis minnet. Ytterligare en fråga: Finns det någon processor som i sig har inbyggt en tolk eller har sina maskininstruktioner så att den direkt förstår MNOMICS. Det borde ju inte vara omöjligt att göra en processor där man istället för 201 skrev RET etc. - borde det inte gå med en grindmatris av snabba sorten? Då skulle man simultant få ut i klartext vad processorn hade för sig och även instruera i klartext. Nästa steg skulle då vara att använda ett lämpligt språk på maskinnära nivå - exvis ?C eller ?FORTRAN och då kunna få processorn att direkt förstå ett språk som är överskådligt för en programmerare. Om man hade en buss på 8x8 trådar skulle man parallelt kunna påföra ord om 8 tecken - dvs instruktioner - i princip som man nu har filnamn när man lagrar på diskett. Det har FÖ förvånat mig att man inte försökt att få de koder som dagens processorer använder att vara lite användarvänliga. Exvis kunde de instruktioner som i MNOMICS börjar på bokstäverna A - F samt 0 som kunde stå för bokstaven O. Alternativt att vissa instruktioner med andra begynnelsbokstäver anslöt till ASCII-värdet decimalt eller i HEX. Kanske det kommer en processor som klarar strukturerad BASIC med en kraft- full BASIC inbyggd och där själva BASIC-processen sker med en speciell processor med kasnke 100MHZ klocka - eftersom avståndet till den area där BASICEN residerar ligger så nära att den höga frekvensen går att genomföra utan att det blir problem med trådar. ( Kommentar i text 795 av Mikael Pettersson <2195> ) ( Kommentar i text 796 av Peter Thärning <3707> ) ( Kommentar i text 798 av Kristoffer Eriksson <5357> ) ( Text 794 ) ( Text 795 ) 1987-04-17 00.56.09 Mikael Pettersson <2195> Mottagare: Z80 Kommentar till text: 794 av Peter Goldmann <5080> Ärende: Processorarkitektur Framtiden ligger knappast i att slänga ut ett antal Megakronor på att ta fram processorer för att TOLKA BASIC (vilken vedervärdig tanke!). Däremot håller man på med (sen några år) att ta fram mikroprocessorer som är lämpliga att implementera operativsystem och kompilatorer på, speciellt har jag hört talas om några företag som bygger processorer speciellt för UNIX & C. Trevligt! /Pi ( Text 795 ) ( Text 796 ) 1987-04-17 01.02.10 Peter Thärning <3707> Mottagare: Z80 Kommentar till text: 794 av Peter Goldmann <5080> Ärende: Processorarkitektur Separata adress och databussar har väl de flesta processorer. Om man av någon anledning blir tvungen att ha två signaltyper på samma ledning för att spara pinnar så beror det nog snarare på att man till pinnantalet inte vill överskrida en standard, inte själva kapslingstekniken. Det är nog inte svårare att göra en 46 pinnars DIL (Dual In Line) istället för 40 men vem gör socklar till den? Det verkar väl troligt? Kretsar med inbyggda kompilatorer finns faktiskt redan. I Elfa-katalogen för 85/86 finns medtaget en krets ur 6500-familjen som beskrivs såsom "R65F11 är en förbättrad version av R6502 med FORTH kompilator i ROM" Med den takt utvecklingen på detta område håller idag så är 1985-1986 långt...långt bort i tiden och det är nog dumt att gissa vad som är up to date. Fast frågan är om det lönar sig att integrera högnivåspråk idag. Jag tvivlar på det. I alla fall inte när det rör sig om större system och man inte har hur gott om tid som helst. Nog skulle det vara lite omständligt att köra C på den ovan nämnda R65F11 till exempel. Nu är den ju inte ämnad för det och i såna applikationer då man vill ha snabb FORTH-kod utan en massa mellansteg ifrån källkoden så passar den nog bra. Då är det säkert bättre att låta koden till processorn vara obegriplig, kalla den för maskinspråk och sedan satsa på en kvalificerad utvecklings- miljö istället med användarvänliga källkodseditorer och raffinerade kompilatorer etc. Detta återkommer lite grand i användarvänligheten hos de koder som mikroprocessorerna använder. Om man skulle bygga upp koderna så att de skrivna hexadecimalt relaterade till instruktionsnamnet så kanske det blev något lättare (?...) att handassemblera, men bra mycket besvärligare att skriva en snabb assemblator. För är det inte så att exv. Z80s koder är gjorda så att det underlättar skrivandet av en assemblator? ( Kommentar i text 799 av Benny Löfgren SYSOP <2615> ) ( Text 796 ) ( Text 797 ) 1987-04-18 03.20.22 Kjell Enblom <5575> Mottagare: Z80 Kommentar till text: 793 av Mikael Pettersson <2195> Ärende: DataSaab D23 (FCPU) Och den handskakar med minnet. /kjell-e ( Text 797 ) ( Text 798 ) 1987-04-19 04.58.01 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 794 av Peter Goldmann <5080> Ärende: Processorarkitektur "Mnemonics" kallas orden som används i assemblerspråk. Att ha ett par hundra olika pinnar på en och samma kapsel (tänk dig t ex 4 bussar med 32 signaler i varje) gör lmdningsdragningen på kretskortet där kapseln monteras synnerligen komplicerad, såvida man inte bara kan rada upp alla komponenter och ansluta dem parallelt med samma pinkonfiguration till hela bussen. Många ledare tar även mycket plats och ledningsmaterial. Helst ska det vara så få ledare mellan kapslarna som möjligt, precis som det ska vara så få förbindelser mellan olika programmoduler som möjligt när det gäller mjukvara. När det gäller att ha data och program i minüen med separata bussar, måste man tänka på att en del av datorns flexibilitet hänför sig till möjligheten att ibland betrakta samma minnes- innehållet som data och ibland som program. Även om man nu inte håller på med självmodifierande program, kan man tänkas låta ett program modifiera ett annat t ex en kompilator vars utdata blir ett program, eller en debugger som behandlar gtt annat program som data. Så ska man ha data och program på skilda bussar måste man se till att det finns möjlighet att överföra data mellan de olika minnena. Som ett alternativ till separata bussar kan man lika gärna tänka sig en enda buss som är lika snabb som flera "vanliga" bussar. Det är ju trots allt överföringskapaciteten du är ute efter. Om bussen hinner med att överföra både ett maskinkodsord och ett dataord på den tid processorn tar på sig för att exekvera instruktionen, så har du uppnåt samma mål som med separata program- och databussar, men medtskilligt färre ledare. En separat buss består f ö av både en adress- och en datadel. En ensam adressdel utan datadel gör ju ingen nytta. Tänk dig t ex 32 ledare för adressen och lika många för data i en av bussarna. Det blir 64 ledare för en enda av bussarna. (Och vem vill arbeta med ärre än 32 bittar? :-) Tänk om man har 1 MB programminne, och 1 MB dataminne, och så vill man köra ett program på 10 KB som behöver 1.5 MB dataminne, eller tvärtom... Att bestämma mängdeo data och program i förväg går nog bra för prommade applikationer och för dem som har råd att bestycka båda delarna maximalt (och få dubbelt så mycket överblivet minne mot normalt), men för"oss andra skulle det behövas någon anordning för att flytta minne mellan bussarna. (T ex att alltminnet har både adress- och databuss det också.) DMA står för "Direkt minnes-access", dvs en överföring mellan två minnespositioner eller en minnesposition och en I/O-position, utan processorns inblandning, oftast av ett flertal adresser i följd. Detta görs genom att en DMA-styrkrets tillfälligtsvis övertar styrningen av en buss från processorn, som antingen får vila sig elles göra något som inte involverar bussen. Som man då förstår, är en separat DMA-buss kopplad till processorn ganska meningslös. Operationen måste göras på data- eller I/O-bussen, eller möjligen på en särskild buss som sammanbinder DMA-enheten med minnet, vilket innebär att minnet (i stil med processorn) förses med ytterligare några bussar. Idén att låta processorn använda en maskinkod som är direkt läsbar i ASCII, t ex med 8 bytes per instruktion (vilket innebär en 64- biötars buss exkl adressdelen), vilket väl f ö knappast inkluderar utrymme för operanderna, skulle vara oerhört slösaktigt med minnet. Det finns roligare saker man kan göra med det minnet. Och tänk på att om du med denna 8-bytesbuss kan överföra en hel instruktion i ASCII på en gång, så kan du överföra ännu mer på en gång om du gör det med binär (maskin)kod. Det är knappast någon som sen assemblern uppfanns behöver bry sig om hur processorns maskinkodsinstruktioner ser ut. Sånt är till för assemblern (och debuggern). Dessutom behöver de flesta inte bry sig om hur assembler- instruktionerna ser ut heller nu för tiden, utan det är något för högnivåspråkskompilatorn, som dessutom automatiskt optimerar programkoden. ( Text 798 ) ( Text 799 ) 1987-04-24 07.20.30 Benny Löfgren SYSOP <2615> Mottagare: Z80 Kommentar till text: 796 av Peter Thärning <3707> Ärende: Processorarkitektur Nej, varken Z80 eller någon annan processor tror jag är skriven för att medvetet underlätta skrivandet av assemblatorer/kompilatorer! Vad man helt enkelt vill göra är utifrån processorns givna förutsättningar optimera instruktionsuppsättningen/kodningen med avseende på i första hand hastighet, men även minnesåtgång (de två går ofta hand i hand). Det vore vansinnigt att göra tvärtom, dvs att offra exekveringsfart för att få en assembler som är lite snabbare (det är dessutom högst marginella vinster man kan göra för att snabba upp en assembler på det sättet). Assembleringen görs trots allt bara ett fåtal gånger, jämfört med det färdiga programmets exekvering! ( Kommentar i text 800 av Peter Thärning <3707> ) ( Kommentar i text 801 av Mikael Pettersson <2195> ) ( Kommentar i text 802 av Kristoffer Eriksson <5357> ) ( Text 799 )  ( Text 800 ) 1987-04-24 21.36.28 Peter Thärning <3707> Mottagare: Z80 Kommentar till text: 799 av Benny Löfgren SYSOP <2615> Ärende: Processorarkitektur Ja, du har rätt. Jag var inne på den linjen innan så varför jag tvärvände när det gäller Z80s instruktionsrepertoars koder vet jag inte. ( Text 800 ) ( Text 801 ) 1987-04-25 00.26.54 Mikael Pettersson <2195> Mottagare: Z80 Kommentar till text: 799 av Benny Löfgren SYSOP <2615> Ärende: Processorarkitektur Z80 är rena hatobjektet för den som skriver kodgeneratorer för kompilatorer. Vad man som kompilatorskrivare gärna vill ha tillgång till är bl a lång relativ-adressering (relativt PC eller register), samt smidighet att nå data på stacken. Det sistnämnda är (tycker jag) det allra viktigaste. Dessutom saknar Z80an mjukvaruinterrupt som kan användas för OS-anrop och liknande. Det finns 8-bittare som har dessa möjligheter, bl a 6809 har jag för mig. ( Kommentar i text 803 av Kristoffer Eriksson <5357> ) ( Kommentar i text 804 av Peter Hollsten <2431> ) ( Text 801 ) ( Text 802 ) 1987-04-26 03.53.09 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 799 av Benny Löfgren SYSOP <2615> Ärende: Processorarkitektur Instuktioner som ENTER, LEAVE, RET n i 80286/386 och LINK, UNLK och den regelbundna register- och instruktionsuppsättningen i 680xx är ju typiskt syftade på kompilatoranvändning, vettja. ( Text 802 ) ( Text 803 ) 1987-04-26 03.54.22 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 801 av Mikael Pettersson <2195> Ärende: Processorarkitektur Vad ska man med mjukvaruavbrott till på en processor där avbrott inte skiljer sig från CALL med mer än att avbrottsflaggan ändras? ( Kommentar i text 805 av Mikael Pettersson <2195> ) ( Text 803 ) ( Text 804 ) 1987-04-26 15.40.58 Peter Hollsten <2431> Mottagare: Z80 Kommentar till text: 801 av Mikael Pettersson <2195> Ärende: Processorarkitektur Mjukvaruinterrupt skulle inte ha nån fördel gentemot RST instruktionerna. Externa interrupt har ju ändå högre prioritet i dom som har de. ( Kommentar i text 806 av Mikael Pettersson <2195> ) ( Text 804 ) ( Text 805 ) 1987-04-26 22.13.48 Mikael Pettersson <2195> Mottagare: Z80 Kommentar till text: 803 av Kristoffer Eriksson <5357> Ärende: Processorarkitektur Bl a därför att CALL måste veta exakt vart den ska, vilket inte ett interrupt behöver eftersom då ligger informationen i någon tabell utpekat av något register. Detta leder till betydligt större flexibilitet, program behöver inte veta i förväg exakt var alla systemrutiner ligger. Det finns en fördel till, med den är inte tillämplig på de rektigt små processorerna (z80, 68xx osv) och det är att processorn normalt jobbar i supervisor- eller user- mode. Man kan koppla mjukvarustyrt interrupt till byte av processormode, vilket inte är möjligt med ett enkelt CALL-schema (där är det t om olagligt att gå från user till supervisor). ( Kommentar i text 807 av Kristoffer Eriksson <5357> ) ( Text 805 ) ( Text 806 ) 1987-04-26 22.18.17 Mikael Pettersson <2195> Mottagare: Z80 Kommentar till text: 804 av Peter Hollsten <2431> Ärende: Processorarkitektur Men RST-instruktionerna är ju ändå bara snabba versioner av vanliga CALL, dvs vart man ska måste deklareras explicit I INSTRUKTIONEN. Med mjukvaruinterrupt får man samma flexibilitet som med hårdvarudito: man genererar bara interruptet och sedan tar processorn själv reda på vart den ska genom att titta i någon tabell utpekat av något register. På detta sätt uppnås en total flexibilitet, man kan flytta på rutinernas startadresser utan att behöva kompilera om den kod som anropar rutinerna. ( Kommentar i text 810 av Peter Hollsten <2431> ) ( Text 806 ) ( Text 807 ) 1987-04-26 22.53.20 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 805 av Mikael Pettersson <2195> Ärende: Processorarkitektur Nej, men då måste den i stället veta det exakta numret på mjukvaru- avbrottet (om det finns mer än ett), så vad är skillnaden mellan att skriva INT 5 mot RST 5 ? Det där med supervisor- och usermode faller ju som du själv noterar när det gäller de processorer vi diskuterar nu, och det var det jag menade med att inget annat hände än att avbrottsflaggn ändrades. ( Kommentar i text 808 av Mikael Pettersson <2195> ) ( Text 807 ) ( Text 808 ) 1987-04-27 23.52.23 Mikael Pettersson <2195> Mottagare: Z80 Kommentar till text: 807 av Kristoffer Eriksson <5357> Ärende: Processorarkitektur Skillnaden är att INT x kan hoppa till OLIKA adresser beroende på vilket värde som ligger i det register som utpekar (mjuka) avbrott. RST x måste dock alltid hoppa till just adress x, och det kan inte ändras. ( Kommentar i text 809 av Kristoffer Eriksson <5357> ) ( Text 808 ) ( Text 809 ) 1987-04-29 01.04.07 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 808 av Mikael Pettersson <2195> Ärende: Processorarkitektur Det finns inget register för utpekande av mjuka avbrott i dessa små processorer, alltså är dt ingen skillnad. Dessutom kan RST- rutinerna hoppa vidare till variabla rutiner. (Angående mer avancerade processorer, så har 80286/386 "task gates", och andra lustigheter, som man kan gå igenom med CALL eller JP, varvid man hamnar i en annan task med ega privilegier.) ( Text 809 ) ( Text 810 ) 1987-05-04 19.20.04 Peter Hollsten <2431> Mottagare: Z80 Kommentar till text: 806 av Mikael Pettersson <2195> Ärende: Processorarkitektur Ok, då är det väl en tabell i början av minnet för en z80 cpu, därifrån kan man ju sen hoppa var man vill... JA, tabellen är inte speciellt minnessnål eller lång, men å andra sidan så kom ju inte cpu'n ut igår som vissa andra. ( Text 810 ) ( Text 811 ) 1987-05-06 19.52.46 Per Fagerkvist <3862> Mottagare: Z80 Ärende: Modifierad bandspelare 821 Hej ! Jag har en 821:a bandspelare som jag har gjort en liten ändring på nu har jag även RS232 kontakt (9 polig connon). På ingången i bandspelaren har jag satt en transeiver RS232. Nu kan jag koppla bandspelaren till PR: eller V24: utgången. Och enkelt lagra filer 1200 baud går utmärkt. Om jag anvånder OPTION prommet så får man ingen checksumma . Men har man ett bra band så blir tillförlitligheten hög. Med OPEN V24:VSA30A24.XXA kan man enkelt ändra baudrate. Det går givetvis att koppla bort printern och istället lagra på bandet. Jag har även satt dit en omkopplare så att bandspelaren går att använda som vanligt. ( Kommentar i text 812 av Thomas Althoff <3493> ) ( Text 811 ) ( Text 812 ) 1987-05-07 00.14.22 Thomas Althoff <3493> Mottagare: Z80 Kommentar till text: 811 av Per Fagerkvist <3862> Ärende: Modifierad bandspelare 821 Berätta hur !!!! ( Text 812 ) ( Text 814 ) 1987-05-20 14.30.16 Martin Lundahl <5254> Mottagare: Z80 Ärende: Matematiska beräkningar Jag undrar hur man gör för att beräkna i M-kod. Kan man använda sig av sinus och cosinus funktionerna när man skriver program i M-kod? Om det går, berätta i så fall hur. Kan man anropa rutiner som används av basicen. Var ligger de i så fall. Mvh Martin Lundahl ( Kommentar i text 815 av Gunnar Forssell <1631> ) ( Kommentar i text 817 av Hans Holmberg <2838> ) ( Text 814 ) ( Text 815 ) 1987-05-20 16.17.49 Gunnar Forssell <1631> Mottagare: Z80 Kommentar till text: 814 av Martin Lundahl <5254> Ärende: Matematiska beräkningar Hur man nyttjar rutinerna i bejsikken vet jag inte, dock vet jag hur de gör för att få fram cos och sin i M-kod. Man nyttjar helt enkelt Taylors formel. Jag har kollat lite, och hittat en tabell över konstanter som är framtagna just för dessa ändamål. Har man bara tabellen blir resten enkelt om man kan gångra i M-kod, och det hoppas jag du kan. Kanske till och med noggrannare än vad bejsikken kan klara av? ( Text 815 ) ( Text 816 ) 1987-05-20 21.43.22 Peter Goldmann <5080> Mottagare: Z80 Ärende: TEKTRONIX 31 Ovannämnda kalkylator kom jag att prova nyligen. Den har en bra bruksanvisning och har säkert åtskilliga år på nacken. Den är programmerbar och det jag tycker är så bra med den är att man kan se hur BASIC och FORTRANS och Mikroprocessorns föregångare fungerar på ett mycket åskådligt sätt. Den har även en bandstation med ändlös slinga där sex olika program/filer kan lagras. Här har allt skalats av och man har den programmerbara kalkylatorn/datorn i sin elementära form. Alla de saker som finns mer elegant i nya språken fanns där antytt med subrutiner och retur från subrutiner. Ge subrutiner namn etc. Den har registerfunktioner som gör det möjligt att lagra antingen tal eller adresser i upp till 1000 minnesceller. Man får plötsligt kontakt med det som i BASIC innebär att ha ett fält med variabler. Istället för alfanumerisk programmering hade varje instruktion sin egen tangent. Det fanns en GOTO tangent etc. Vidare fanns det tangenter för de vanliga funktionerna som på en avancerad miniräknare. Plötsligt tycker man sig ha mer grepp om hur en BASIC måste fungera. Jag tycker det var utomordentligt lärorikt så att denna gång lära sig en ny maskin var rena nöjet. Jag tyckte detta kunde platsa i detta möte eftersom det ju var tal om en kurs här ... och detta var en illustration till vad assembler kan göra i en tidig välgjord apparat. ( Text 816 ) ( Text 817 ) 1987-05-22 01.23.03 Hans Holmberg <2838> Mottagare: Z80 Kommentar till text: 814 av Martin Lundahl <5254> Ärende: Matematiska beräkningar Har en snabb och enkel rutin för sin/cos i m-kod. Jag kan lägga in den i lådan om du vill. Den funkar så att när man anropar rutinen så skickar med vinkeln (16 bitar, 0-359 grader!) och ett tal på 8 bitar (0-255) Ut får man ett 16-bitars tal som kan vara negativ eller positivt (bit 15 funkar som sign-bit) Finns intresse? /Hasse ( Kommentar i text 818 av Martin Lundahl <5254> ) ( Text 817 ) ( Text 818 ) 1987-05-22 22.39.08 Martin Lundahl <5254> Mottagare: Z80 Kommentar till text: 817 av Hans Holmberg <2838> Ärende: Matematiska beräkningar Ja, jag är intreserad så om det inte är allt för mycker besvär så skulle jag vara mycket tacksam. Mvh Martin Lundahl ( Kommentar i text 821 av Hans Holmberg <2838> ) ( Text 818 ) ( Text 819 ) 1987-05-22 22.42.10 Martin Lundahl <5254> Mottagare: Z80 Ärende: Grafikkommandon i M-kod En liten fråga: Kan man anropa grafikkommandona (FGLINE, FGPOINT etc.) i M-kod Tacksam för svar Martin Lundahl ( Kommentar i text 820 av Lars Gjörling <6825> ) ( Text 819 ) ( Text 820 ) 1987-05-23 23.32.08 Lars Gjörling <6825> Mottagare: Z80 Kommentar till text: 819 av Martin Lundahl <5254> Ärende: Grafikkommandon i M-kod Om du har en ABC806 och köper det nya grafikprommet, som bjöds ut i höstas, så får du en manual ('GRAF 806'), som inte bara talar om hur du utnyttjar de gamla och nya funktionerna i basic, utan även hur man skriver dem i assembler. Man har ett tiotal sidor, som mycket generöst beskriver anropsadresser för de olika funktionerna, in- och utparamet- rar till registren, och vilka register, som 'förstörs' av anropen. Även systemvariablernas adresser anges. En rad exempel på assemblerprogram finns också, som klargör hur man skriver. Jag har studerat dessa sidor med intresse och utnyttjat dem på min dator. Vad jag undrar är, om de adresser, som finns för 'gamla' basic- funktioner (som FGPOINT, FGLINE etc), är giltiga även för det gamla grafikprommet. De ingår ju i hopptabeller, och eftersom alla 'gamla' program skall kunna köras även om det nya prommet är insatt, så borde ju basictolkens anropsadresser vara desamma, oberoende vilket grafik- prom som sitter i datorn. Någon som vet mer om det här? Det vore ju egentligen enkelt att prova genom att skriva ett testprogram, som in- nehåller de 'gamla' basicfunktionerna skrivna i mkod för nya prommet, och sedan byta tillbaka till det gamla prommet och se efter om mkoden fungerar. Mvh Lars ( Kommentar i text 823 av Kristoffer Eriksson <5357> ) ( Text 820 ) ( Text 821 ) 1987-05-24 04.22.41 Hans Holmberg <2838> Mottagare: Z80 Kommentar till text: 818 av Martin Lundahl <5254> Ärende: Matematiska beräkningar Har nu lagt in SINCOS.ASM i lådan plus en något mager beskrivning, som jag hoppas att du förstår nåt av. /hasse ( Kommentar i text 822 av Martin Lundahl <5254> ) ( Kommentar i text 824 av Leopold Lundström <2694> ) ( Text 821 ) ( Text 822 ) 1987-05-24 19.14.18 Martin Lundahl <5254> Mottagare: Z80 Kommentar till text: 821 av Hans Holmberg <2838> Ärende: Matematiska beräkningar Tack så mycket för hjälpen. Mvh Martin Lundahl ( Text 822 ) ( Text 823 ) 1987-05-25 03.51.20 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 820 av Lars Gjörling <6825> Ärende: Grafikkommandon i M-kod Man bör skilja på de anropspunkter Basic använder och de som används för assemblerprogrammering. Basic hittar sina rutiner via instruktionstabellen. De rutinerna anropar Basic pånytt för att beräkna instruktionsparametrarna, oftast koordinaterna, vilket ju inte passar något vidare när man anropar rutinerna från ett assemblerprogram. Standard-grafikprommen är inte försedda med något assembler- gränssnitt. Iofs finns samma grundläggande rutiner för linjeritning o dyl, men de går inte att lokalisera på något sätt som inte blir totalt beroende av prom-versionen. ( Kommentar i text 835 av Ulf Dahlen <2422> ) ( Text 823 ) ( Text 824 ) 1987-05-26 00.15.32 Leopold Lundström <2694> Mottagare: Z80 Kommentar till text: 821 av Hans Holmberg <2838> Ärende: Matematiska beräkningar sincos hjälptabell Jag får inte datorn att beräkna PI/0. Vad gör jag för fel? ( Kommentar i text 825 av Hans Holmberg <2838> ) ( Text 824 ) ( Text 825 ) 1987-05-26 01.34.33 Hans Holmberg <2838> Mottagare: Z80 Kommentar till text: 824 av Leopold Lundström <2694> Ärende: Matematiska beräkningar Det ska vara 'PI/I' där 'I' är loopvariabeln. Kan vara jag som skrivit fel i hjälptexten (troligen). /Hasse ( Kommentar i text 826 av Leopold Lundström <2694> ) ( Text 825 ) ( Text 826 ) 1987-05-26 23.30.19 Leopold Lundström <2694> Mottagare: Z80 Kommentar till text: 825 av Hans Holmberg <2838> Ärende: Matematiska beräkningar ... och när loopvariabeln = 0 ??? ( Kommentar i text 827 av Hans Holmberg <2838> ) ( Text 826 ) ( Text 827 ) 1987-05-27 00.22.21 Hans Holmberg <2838> Mottagare: Z80 Kommentar till text: 826 av Leopold Lundström <2694> Ärende: Matematiska beräkningar Hmmm... Jag tror jag ska börja använda hjärnan lite oftare :-/ Ändra det till 'I*PI/180' då, så får vi se. Nu hoppas jag att det blir rätt. (Murphys lag har varit synnerligen aktiv idag :-) /Hasse ( Text 827 ) ( Text 828 ) 1987-05-29 04.17.48 Per Holmgren <5213> Mottagare: Z80 Kommentar till text: 793 av Mikael Pettersson <2195> Ärende: DataSaab D23 (FCPU) Att D23 arbetar asynkront är ju kul, men inte helt unikt. KL10/KI10 (DEC 10 cpu:er) saknar oxo klocka. I och med att dessa maskiner förlitar sig på spridningen av en steg signal för att komma framåt i programmen, så får dom utomordentligt sympatiska egenheter. Det mest framträdande är att dom blir direkt känsliga för datorhallens temperatur ! Kretsarna som driver steg- signalen har lite olika fördröjningstid beroende på temperaturen, och om stegsignalens fördröjning ändras så ändras processorns arbets hastighet i motsvarande grad. Dattan blir fullständigt lycklig av att bäras ut en kall vinterdag... Moderna enchips cpu:er har ofta en HALT signal på nån pinne, med vilken man kan stanna processorn genom att sätta en logisk nivå. På asynkrona cpu:er kan man implementera samma feature med hjälp av en avbitartång... Ack ja, det var tider det, då farfar och jag var grabbar... ( Text 828 ) ( Text 829 ) 1987-06-02 14.07.03 Erik Lundh <859> Mottagare: Z80 Ärende: Linjegenerator En man vid namn Bresenham har gjort den i särklass bästa algoritmen för linjegenerering. ABC80x grafikrom använder en variant av denna. Algoritmen finns beskriven i bl a "Principles of interactive computer graphics" Själv implementerade jag denna och en cirkelgenerator 82/83, medan en polare till mig skrev en ny FGPAINT. Vi trodde att vi skulle kunna intressera dåvarande FACIT för ett nytt grafikpaket. Långt senare gjorde visst nån nåt liknande(och mer omfattande) som Tdx sålde ett tag. Det vi gjorde var på gamla 800:an. Cirkelalgoritmen var ett eget påfund som var så snabb och enkel i sin uppbyggnad att vi fick interferens med skärmen, eftersom jag ritade mer än 50 cirklar i sekunden med radie 120! Så småningom lär man sig vad man skall syssla med, men det var ett kul hack. Någon gång när jag får tid skall jag addera ellipsgenerering med valfri orientering av stor och lillaxeln. Cirkelgeneratorn hade nämligen ,genom en syntes av linje och cirkelgenerator, möjlighet att rita ellipser så länge dom var horisontellt eller vertikalt orienterade. Just nu tar WABC:s nya utökningar med BAC-konvertering, plus den löpande konsultverksamheten all min tid. Hälsningar Erik PS På tal om tidsoptimal programmering: I det nummer av BYTE som presenterade Macintosh för några år sedan, uttalade en Apple-kille (Shaphiro?) sig om snabba rutiner. "The way to make this processor sing, is to keep all the registers good and filled all the time." OK, 68k har lite mer att fylla, men visdomsorden är ändå i högsta grad relevanta för Z80 DS ( Kommentar i text 832 av Thomas Johansson <3671> ) ( Kommentar i text 836 av Ulf Dahlen <2422> ) ( Kommentar i text 844 av Stefan Lennerbrant <4364> ) ( Text 829 ) ( Text 830 ) 1987-06-04 15.57.50 Stefan Gartz <2600> Mottagare: Z80 Ärende: DUBBEL CALL Jag vill veta hur man gör för att kunna ha två olika assembler program som ska göra call på varann och ha var sin stack. Min tanke är att det ska vara möjligt att låta programmen 'se' varann som en subrutin. Är det någon som har någon färdig snutt eller kan beskriva hur jag ska göra. Mvh SGZ ( Kommentar i text 831 av Anders Franzén <5258> ) ( Text 830 ) ( Text 831 ) 1987-06-04 20.10.03 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 830 av Stefan Gartz <2600> Ärende: DUBBEL CALL RUTIN: LD (SPAR),SP LD SP,NYSTACK ... LD SP,(SPAR) RET Alla rutiner låter man se ut som ovan. Punkterna markerar egna instruktioner. Varje rutin bör ha egen SPAR och NYSTACK. Men varför ha två stackar? Har man en stack kan man anropa varandra kors och tvärs och ändå hitta tillbaka. Jag har dock noterat att om man vill lura BASIC-tolken i ABC80 kan det vara bra att ha upp till tre olika stackar! Det finns säkert andra och bättre metoder. ( Kommentar i text 833 av Stefan Gartz <2600> ) ( Text 831 ) ( Text 832 ) 1987-06-04 21.33.45 Thomas Johansson <3671> Mottagare: Z80 Kommentar till text: 829 av Erik Lundh <859> Ärende: Linjegenerator Den där boken du nämnde verkar intressant. Var skulle man möjligen kunna få tag på ett exemplar av den. M.v.h. Thomas ( Kommentar i text 834 av Patric Ljung <5455> ) ( Text 832 ) ( Text 833 ) 1987-06-05 08.14.47 Stefan Gartz <2600> Mottagare: Z80 Kommentar till text: 831 av Anders Franzén <5258> Ärende: DUBBEL CALL Tack för tipset. Jag behöver två stackar för att de två programmen blir inte synkrona eller avslutade. Det är en teknik som kallas program- invertering inom JSP som jag försöker implimentera. Man gör en delning av uppgiften i flera logiska enheter. Ex utskriftsrutin: Prog A: läs tecken, skriv rad till Prog b Prog B: (läs rad), om radnr=0 skriv huvud, skriv rad Programmen går inte i takt och behöver egna stackar. Man tänker sig varje program som en självständig process(or). Mvh SGZ ( Text 833 ) ( Text 834 ) 1987-06-09 14.12.24 Patric Ljung <5455> Mottagare: Z80 Kommentar till text: 832 av Thomas Johansson <3671> Ärende: Linjegenerator Vet inte, jag har själv bara några dåligt kopierade papper. Varning, den är svårförstådd. Jag skulle önska att Erik hasplade ur sig litet fröklaring till sina snuttar. ( Text 834 ) ( Text 835 ) 1987-06-13 00.48.41 Ulf Dahlen <2422> Mottagare: Z80 Kommentar till text: 823 av Kristoffer Eriksson <5357> Ärende: Grafikkommandon i M-kod ...vilket alltså är hur man inte ska skriva program. Varför det inte gjordes vettiga hopptabeller till 800-serien kan jag bara inte fatta. Grabbarna måste sett konstruktionen som en ploj och blivit överraskade att det hela gick så bra. ( Kommentar i text 837 av Hans Holmberg <2838> ) ( Kommentar i text 840 av Kristoffer Eriksson <5357> ) ( Text 835 ) ( Text 836 ) 1987-06-13 00.51.37 Ulf Dahlen <2422> Mottagare: Z80 Kommentar till text: 829 av Erik Lundh <859> Ärende: Linjegenerator Den här boken "Principles ... grahipcs ...", är den något att ha? Skulle vilja köpa en bra bok i ämnet. ( Kommentar i text 843 av Stefan Lennerbrant <4364> ) ( Text 836 ) ( Text 837 ) 1987-06-13 00.56.09 Hans Holmberg <2838> Mottagare: Z80 Kommentar till text: 835 av Ulf Dahlen <2422> Ärende: Grafikkommandon i M-kod Anledningen till att det inte finns några vettiga hopptabeller är att man försökt skydda programvaran så mycket som möjligt.... (Tror jag i alla fall!) /Hasse ( Kommentar i text 839 av Ulf Dahlen <2422> ) ( Text 837 ) ( Text 838 ) 1987-06-13 00.58.25 Ulf Dahlen <2422> Mottagare: Z80 Ärende: Sorglig upptäckt Att göra upptäcktsfärden med rapport 1 i handen och en ABC80 framför sig var förr en rolig fritidssysselsättning för mig. Det hände sig dock en dag att jag började lusläsa DOS-promet. Jag upptäckte då på ett ställe hur man la upp en underlig stack, hoppade rakt in i BASICen och lurade den att återvända till rätt ställe... Håhåjaja... Jag insåg då hur dåligt det hela var skrivet och kunde senare inte frambringa samma entusiasm som förr. Det hela är faktiskt ett enda stort hack, utan någon speciell struktur och framför allt inte tänkt att vara flexibelt och användbart utifrån. Jag beundrar de som fortfarande orkar slita med det hela. Samtidigt är det naturligtvis väldigt roligt att snoka i koden, men jag har nog nått gränsen vad gäller ABC-serien. Så kan det gå. ( Kommentar i text 845 av Stefan Lennerbrant <4364> ) ( Text 838 ) ( Text 839 ) 1987-06-13 01.01.51 Ulf Dahlen <2422> Mottagare: Z80 Kommentar till text: 837 av Hans Holmberg <2838> Ärende: Grafikkommandon i M-kod Menar du det? Eller snarare, vad menar du med det? Skydda vad? Den enda effekten som uppkommer är ju att det blir svårare (i praktiken ogörligt) att skriva bra applikationer. Alltså: man lyckas se till att ingen använder grafiken. Jag tror killarna som skrev det hela måste ha lämnat hjärnan i någon förvaringsbox någonstans. Det hela retar mig faktiskt - förstöra en dator på det viset. Jag har dock hört från annat håll att det är stört omöjligt att få någon som helst info om grafikpromet, så du har kanske rätt. Usch, nu struntar jag i det här innan jag blir alltför upprörd. ( Text 839 ) ( Text 840 ) 1987-06-14 22.28.48 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 835 av Ulf Dahlen <2422> Ärende: Grafikkommandon i M-kod Det kan ju hända att assemblerprogrammeringsfaciliteter inte ingick i designkraven. Det är ju faktiskt BASIC som är huvudspråket i ABC-maskinerna, inte assembler! När det gäller ABC80, stämmer det säkert att framgången blev en överraskning, och DOS var nog inte speciellt aktuelt från början. Mjuka disketter var ganska nya på den tiden, liksom smådatorer. Kassetter var vad som gällde för smådatorer. Till och med IBM PC kom ju med kassettport långt senare. ( Text 840 ) ( Text 841 ) 1987-06-16 21.06.34 Björn Linderson <5829> Mottagare: Z80 Ärende: IM 2 <==> ABC800 Hur attan aktiverar man IM 2, så att man får den att köra en interrupt i maskinen utan att flippa?? Jag gör detta: (49152) LD A,193 (49408) LD I,A IM 2 RET (49408) = adress*256 = adress till aktuellt program som interrupten skall hoppa iväg till... På en spectrum funkar det alldeles fint, men inte på en ABC. Antingen händer absolut ingenting, och allt knallar på, eller så dyker aset. /Moxie ( Kommentar i text 842 av Peter Thärning <3707> ) ( Kommentar i text 848 av Kristoffer Eriksson <5357> ) ( Text 841 ) ( Text 842 ) 1987-06-16 22.54.14 Peter Thärning <3707> Mottagare: Z80 Kommentar till text: 841 av Björn Linderson <5829> Ärende: IM 2 <==> ABC800 I-reg. pekar ut den höga delen av interruptvektorn och vid interrupt hämtar processorn den låga delen från databussen. Du måste då alltså känna till vad den hämtar från bussen. I ABC80 lämnar pion en i förväg programmerad vektor automatiskt. Något liknande finns säkert i ABC800. Det är ett jämt 7-bitars värde som hämtas från bussen så 49408 blir lägsta adresslagrare i en serie på 128 stycken, 49410, 49412 etc. ( Kommentar i text 846 av Stefan Lennerbrant <4364> ) ( Text 842 ) ( Text 843 ) 1987-06-16 23.46.20 Stefan Lennerbrant <4364> Mottagare: Z80 Kommentar till text: 836 av Ulf Dahlen <2422> Ärende: Linjegenerator Principles of Interactive Computer Graphics av en kille som heter Newman (Neuman ?!?) eller något sådant. Den är ganska bra. Dock läste jag utgåva 1. Det finns en utgåva 2 också som är lite "lättlästare". Boken kan du säkert låna på något universitetsbibliotek, så kan du döma själv. mvh ( Text 843 ) ( Text 844 ) 1987-06-16 23.48.00 Stefan Lennerbrant <4364> Mottagare: Z80 Kommentar till text: 829 av Erik Lundh <859> Ärende: Linjegenerator - Cirklar Har du möjlighet att skicka in cirkelalgoritmen. Jag vore mycket intresserad av snabba rutiner - även t.ex. en bra FGFILL-algoritm vore intressant att titta på. mvh ( Text 844 ) ( Text 845 ) 1987-06-16 23.50.17 Stefan Lennerbrant <4364> Mottagare: Z80 Kommentar till text: 838 av Ulf Dahlen <2422> Ärende: Sorglig upptäckt Var egentligen ABC80-tolken en seriös idé från början? Jag har hört någonstans att det var en kille som gjorde den som något slags examensarbete el.dyl (Hette han inte Fredrik ngt ?) mvh ( Kommentar i text 851 av Ulf Dahlen <2422> ) ( Text 845 ) ( Text 846 ) 1987-06-16 23.52.32 Stefan Lennerbrant <4364> Mottagare: Z80 Kommentar till text: 842 av Peter Thärning <3707> Ärende: IM 2 <==> ABC800 De vektorer som används i ABC80 är 52 för tangbordet och 54 för kassetten (Har jag för mig - titta i tolken på adress I*256+52, 54) mvh ( Kommentar i text 847 av Stefan Lennerbrant <4364> ) ( Text 846 ) ( Text 847 ) 1987-06-16 23.55.52 Stefan Lennerbrant <4364> Mottagare: Z80 Kommentar till text: 846 av Stefan Lennerbrant <4364> Ärende: IM 2 <==> ABC800 Jag glömde bort att skriva att CPU:n inte hoppar till adressen I*256+x (x är t.ex = 52 el 54) utan på den adressen ligger *adressen* till din interuptrutin. (Som sagt, titta i tolken. Kolla vilken adress som ligger på adr 52 med PEEK(52)+ SWAP%(PEEK(53)) samt samma sak på adr 54. På adr 54,55 ska det ligga adress 14xx eller ngt sådant, har jag för mig) mvh ( Kommentar i text 850 av David Andersson <5201> ) ( Text 847 ) ( Text 848 ) 1987-06-17 22.58.06 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 841 av Björn Linderson <5829> Ärende: IM 2 <==> ABC800 Du behöver inte aktivera IM 2 på en ABC-maskin, eftersom den redan är aktiverad. Och då är det inte så konstigt att det kraschar heller. Du ändrar ju I-registret till ett annat värde än det som all I/O- hårdvara i maskinen blivit initierad för, så vid första bästa avbrott går maskinen vilse. Annars var det rätt. ( Kommentar i text 855 av Björn Linderson <5829> ) ( Text 848 ) ( Text 849 ) 1987-06-18 03.49.37 Peter Goldmann <5080> Mottagare: Z80 Ärende: ABC under dos När jag härom dagen försökte att få ihop ett programpaket som fungerar med RAM: utan att det blir reset - genom att gå in i DOS med BYE och ur med RUN.ABS - så märkte jag hur behändigt det är att köra under dos. Därför skriver jag i detta möte, eftersom .ABS - filer är ofta lika körbara på ABC-80 som 800. Man slipper skriva run - komandona blir mycket lika de i MS-DOS. Jag använde exvis COPY och får samma struktur som i MS-DOS: copy dr0:oldname dr1:newname m.m. Kanske intresset för ABC-DOS kan bli större när det blir uppenbart att man kan köra på alla ABC-modeller samt att om man har UFD-doset för ABC 80 och en 832/834 så kan man köra 800-ans program på systemskivan med ext. .ABS. Eftersom BASICEN inte är helt kompatibel mellan maskinerna kanske det mest sympatiska är att ha DOS som gemensam nämnare. För ABC80 sitter det på ett extra kort - det Prom som behövs så man kan köra sin 80:a i orginalskick DOS är ju i vilket fall en tillsats för 80:an. Detta möte är väl det rätta att diskutera .ABS -filer? ( Text 849 ) ( Text 850 ) 1987-06-18 17.03.19 David Andersson <5201> Mottagare: Z80 Kommentar till text: 847 av Stefan Lennerbrant <4364> Ärende: IM 2 <==> ABC800 De adresser du nämner gäller ABC80. ( Kommentar i text 852 av Stefan Lennerbrant <4364> ) ( Text 850 ) ( Text 851 ) 1987-06-19 01.16.01 Ulf Dahlen <2422> Mottagare: Z80 Kommentar till text: 845 av Stefan Lennerbrant <4364> Ärende: Sorglig upptäckt Jag har hört samma sak (tolken = examensarbete) så det ligger kanske någon sanning i det. ( Text 851 ) ( Text 852 ) 1987-06-21 21.51.45 Stefan Lennerbrant <4364> Mottagare: Z80 Kommentar till text: 850 av David Andersson <5201> Ärende: IM 2 <==> ABC800 Ja, var det inte ABC80 vi pratade om? På en ABC80x ligger interrupt-adr uppe i sysvar-arean någonstans, titta i Bit för bit. (Där behöver man alltså inte sätta om I-reg osv, utan man kan ändra direkt i RAM till den egna interruptrutinen) mvh ( Kommentar i text 853 av Kristoffer Eriksson <5357> ) ( Kommentar i text 854 av Peter Thärning <3707> ) ( Text 852 ) ( Text 853 ) 1987-06-21 22.23.10 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 852 av Stefan Lennerbrant <4364> Ärende: IM 2 <==> ABC800 Det står ABC800 i ärendet i alla fall... ( Text 853 ) ( Text 854 ) 1987-06-21 23.11.59 Peter Thärning <3707> Mottagare: Z80 Kommentar till text: 852 av Stefan Lennerbrant <4364> Ärende: IM 2 <==> ABC800 Det startade med inlägg 841 där inläggsskrivaren hade provat mot en Spectrum och undrade varför det inte var lika lätt på en abc-maskin. (Sedan stod det som skrivet ABC800 på ärenderaden.) ( Kommentar i text 856 av Björn Linderson <5829> ) ( Text 854 ) ( Text 855 ) 1987-06-22 19.00.46 Björn Linderson <5829> Mottagare: Z80 Kommentar till text: 848 av Kristoffer Eriksson <5357> Ärende: IM 2 <==> ABC800 Dunderkrash... Men var kan man då lämpligen länka in en egen rutin som blir en del av denhäringa interrupten... Den frågan skulle jag vilja ha svar på. Den andra saken gäller detta:' Håller på med ett program som skall härja villt i mkod, och som inte behöver basic:en, utan jag vill kunna utnyttja interrupten som JAG vill, utan att skiten pajar ihop. Dvs. jag vill få den att hoppa dit jag vill. Någon som är initierad, kanske vet VAD som trillar in (NORMALT) på den låga delen av adress när IM2 körs i en 800:a. Således: 2 frågor. 1. Hur länka in egen rutin som körs från basic, och består av MKOD. 2. Hur få IM2 att funka som jag vill när jag skall köra det helt fristående utan att ha pappa BASIC inblandad i mina göromål.... Tack på förhand! /Moxie ( Kommentar i text 858 av Kristoffer Eriksson <5357> ) ( Kommentar i text 863 av Kristoffer Eriksson <5357> ) ( Text 855 ) ( Text 856 ) 1987-06-22 19.04.58 Björn Linderson <5829> Mottagare: Z80 Kommentar till text: 854 av Peter Thärning <3707> Ärende: IM 2 <==> ABC800 Humm.... Humm... För att alla skall veta det, har jag trixat fram å tillbaka för att finna en bra adress att leka med, men det hela har bara lekt anka, när jag länkat in min egen rutin på alla möjliga och omöjliga sätt, och försett den med en vidarepekare till det ställe(n) den troligen / hade möjlighet att peka vidare. ( Kommentar i text 857 av Peter Thärning <3707> ) ( Text 856 ) ( Text 857 ) 1987-06-22 20.21.15 Peter Thärning <3707> Mottagare: Z80 Kommentar till text: 856 av Björn Linderson <5829> Ärende: IM 2 <==> ABC800 Ja det där verkar hårt. Meanwhile så kan du ju sätta I-registret så att du hamnar i en ränna med ram som i 128 positioner pekar ut en och samma adress där du har lagt startadressen till interruptrutinen... ( Kommentar i text 861 av Patric Ljung <5455> ) ( Text 857 ) ( Text 858 ) 1987-06-22 22.27.45 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 855 av Björn Linderson <5829> Ärende: IM 2 <==> ABC800 Har du boken Bit för bit? Med den programmering som används i maskinen har du t ex avbrottsvektorerna för SIO på adress 65476-65487 vektorerna fr DART på 65456-65471, osv. Det är bara att soppa in sina egna adresser i dessa vektorer. ( Kommentar i text 859 av Björn Linderson <5829> ) ( Text 858 ) ( Text 859 ) 1987-06-24 00.21.30 Björn Linderson <5829> Mottagare: Z80 Kommentar till text: 858 av Kristoffer Eriksson <5357> Ärende: IM 2 <==> ABC800 Bara att soppa in... OK. så långt gott å väl... men hur fanken återvänder jag utan att soppa till alltihopa??????? RETI eller återhoppsadress ett måste? (Om det kunde vara så enkelt som RETI ?!!!) Måste testa... ( Kommentar i text 860 av Hans Holmberg <2838> ) ( Text 859 ) ( Text 860 ) 1987-06-24 01.37.57 Hans Holmberg <2838> Mottagare: Z80 Kommentar till text: 859 av Björn Linderson <5829> Ärende: IM 2 <==> ABC800 Nu ska vi reda ut ett och annat: 1) På ABC800 skall interruptregistret (I) vara 255 ! 2) Den adress ett interrupt hoppar till ligger på adressen som pekas ut av I*256 + en interruptvector som lämnas om den enhet som genererat interruptet. 3) Om man ska länka in ett interrupt så ska sista instruktionen vara ett 'JP oldlänk' där 'oldlänk' är adressen till gamla interrupt rutinen. 4) Interruptvektorn för DART = FFB0, SIO = FFC0, CTC = FFD0 och för NMI = FF8B. Det var allt jag har att säga, tack och adjö! /Hasse ( Kommentar i text 862 av Patric Ljung <5455> ) ( Text 860 ) ( Text 861 ) 1987-06-24 15.15.21 Patric Ljung <5455> Mottagare: Z80 Kommentar till text: 857 av Peter Thärning <3707> Ärende: IM 2 <==> ABC800 Om det nu är ABC800 som diskuteras måste man betänka följande. Vi har I pekandes, när ett tangent trycks ner läses adrees I*256+4. Adressen som ligger på denna pos och näste pekar på int-rutinen för tangent bordet. I*256+32+8 ligger adressen till klock-interuptet. Dessa är de som används normalt, ändrar du I registret hittar abc800 fel adress (dyk, el död.) Dessutom ligger en mängd andra interupt. Om du vill berätta varför du skall göra IM2 kanske vi kan lösa det hela. ( Text 861 ) ( Text 862 ) 1987-06-24 15.23.16 Patric Ljung <5455> Mottagare: Z80 Kommentar till text: 860 av Hans Holmberg <2838> Ärende: IM 2 <==> ABC800 OK, det du måste tänka på. När ett interupt inträffar avbryts pågående körning och programräknaren sparas på stacken. Inga register sparas. - Alla register du använder måste i början sparas med PUSH. - Innan du avslutar måste du ladda tillbaka register du använt med POP. - Innan du gör RETI måste du skriva EI (enable interupt) - Sist: RETI ex. (Register A och HL används) interupt push af push hl ... ... här gör du vad du vill ... pop hl ; Du måste återladda dem i omvänd ordning pop af ei reti När du lägger dit din egen int-adress bör du skriva DI före och EI efter. Så att inte nåt interupt inträffar när de lagt dit 'halva' adressen. ( Kommentar i text 864 av Kristoffer Eriksson <5357> ) ( Text 862 ) ( Text 863 ) 1987-06-25 23.39.06 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 855 av Björn Linderson <5829> Ärende: IM 2 <==> ABC800 Har du någon speciellt skäl till att vilja bli av med Basicen, t ex för att få mer minne? Annars tycker jag det är lite fel att säga att Basic "blandar sig i". Snarare fixar den de saker som du inte råkar ha något behov av gratis, och du behöver bara "koppla in dig" på de ställen du har nytta av. Även om du gör dig av med Basic helt, när du drar igång ditt program, så har du ju ändå alla initieringar som Basic redan har gjort att ta hänsyn till. T ex alla inställningar i SIO, DART, CTC, CRTC och det ena med det andra. Ska du verkligen använda dem alla? För ann-rs är det ju onödigt att röra om i dem alls. De enda avbrott som används regelbundet utan särskild igångsättning är klockavbrottet (CTC) och tangentbordet (DART). Den verkligt enkla metoden att utnyttja dessa, den metod som vartenda program jag känner till använder, är att placera adressen till sin egen klockrutin på 65494 och adressen till tangentbordsrutinen på 65460. Dock kan det hända att man kan få in ytterligare något avbrott från DART:en, t ex efter sändning till tangentbordet, men det programmerar man aldrig om, eftersom man knappast behöver ändra den RETI de redan pekar till, förutsatt förstås att man inte mappat ut Basicprommen. Alternativet är att du initierar om CTC och DART och ev andra kretsar med nya vektoradresser. (Det här inlägget har legat färdigskrivet några dagar, så det kan vara sake dubblerade från senare inlägg här.) ( Text 863 ) ( Text 864 ) 1987-06-26 23.27.20 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 862 av Patric Ljung <5455> Ärende: IM 2 <==> ABC800 Två utmärkta förklarande inlägg i rad i ämnet. Men angående hur man skriver dit avbrottsvektorn, så behöver man inte mixtra med DI och EI i det sammanhanget om man skriver vektorn i ett eda stycke, med t ex LD (xxx),HL. Avbrottsbegäran upp- märksammas ju endast i skarven MELLAN instruktioner, så en sån här skrivning riskerar inte att bli avbruten mitt i. ( Kommentar i text 876 av Patric Ljung <5455> ) ( Text 864 ) ( Text 865 ) 1987-07-02 08.46.22 Paul Pries <5322> Mottagare: Z80 Ärende: NMI och RETI Har hittat en liten skum snutt i ett maskinkodsprogram där man efter ett NMI hoppar till en rutin (på adr. 66H) som fixar en stackpekare och sedan gör ett call till ett ställe där det står RETI. (Inte RETN !) Vad händer här? Det borde inte hända ett dugg, men det som följer gör mig lite osäker... H /Paul ( Kommentar i text 866 av Mikael Carlstedt <7105> ) ( Kommentar i text 868 av Stefan Lennerbrant <4364> ) ( Kommentar i text 869 av Peter Thärning <3707> ) ( Text 865 ) ( Text 866 ) 1987-07-02 10.26.19 Mikael Carlstedt <7105> Mottagare: Z80 Kommentar till text: 865 av Paul Pries <5322> Ärende: NMI och RETI Vad är det för ett program? Finns det här i programbanken? * Girbat * ( Kommentar i text 867 av Paul Pries <5322> ) ( Text 866 ) ( Text 867 ) 1987-07-02 14.55.53 Paul Pries <5322> Mottagare: Z80 Kommentar till text: 866 av Mikael Carlstedt <7105> Ärende: NMI och RETI Nej, det finns det inte! Det rör sig om ett styrprogram till en speciell utrustning. Ganska vanlig d:o... /Paul ( Text 867 ) ( Text 868 ) 1987-07-02 17.11.58 Stefan Lennerbrant <4364> Mottagare: Z80 Kommentar till text: 865 av Paul Pries <5322> Ärende: NMI och RETI Vaddå NMI hoppar till adr 66H. Det är väl dit CPU:n går när det kommer ett NMI, eller ? Vart menar du att CPU:n ställer sig när det kommer ett NMI ? ( Kommentar i text 870 av Paul Pries <5322> ) ( Text 868 ) ( Text 869 ) 1987-07-02 18.58.26 Peter Thärning <3707> Mottagare: Z80 Kommentar till text: 865 av Paul Pries <5322> Ärende: NMI och RETI RETI är lite speciell (liksom RETN). Ur "programming the Z80": "RETI The program counter is popped of the stack as described for the POP instructions. This instruction is recognized by Zilog peripheral devices as the end of a peripheral service routine so as to allow proper control of nested priority interrupts. An EI instruction must be executed prior to RETI in order to re-enable interrupts." Vissa Zilog kretsar känner alltså igen just den instruktion. (Vad används programmet till? Styra parkeringsautomater?) ( Text 869 ) ( Text 870 ) 1987-07-03 09.53.08 Paul Pries <5322> Mottagare: Z80 Kommentar till text: 868 av Stefan Lennerbrant <4364> Ärende: NMI och RETI Jag utryckte mig kanske lite konstigt... Jag menar givetvis att hopp sker till avbrottsrutinen på 66H precis som det skall vara. (Det är inget nytt..) På adress 66H laddas SP med ett nytt värde, och ett par andra reg laddas också med nya värden. Därefter sker ett CALL till en adress där det står RETI. Det är det jag tycker är skumt! RETI har väl ingen verkan vid NMI ? Då skall det väl vara RETN? Hoppas denna förklaring var bättre... H /Paul. ( Kommentar i text 871 av Peter Thärning <3707> ) ( Text 870 ) ( Text 871 ) 1987-07-03 18.56.43 Peter Thärning <3707> Mottagare: Z80 Kommentar till text: 870 av Paul Pries <5322> Ärende: NMI och RETI Se inlägg 869. ALLA returninstruktioner fungerar på samma sätt vad det gäller POPandet av programräknaren, PC. Därför kan man använda vilken som helst om det bara gäller att ta sig ur en subrutin där PC är sparad på stacken. Och PC sparas automatiskt på stacken vid NMI. (Om man av någon anledning vill returnera med ett villkorligt return så måste naturligtvis villkoret vara uppfyllt.) När ett NMI inträffar så sparas automatiskt interruptflaggan som styr över INT, och sedan nollställs den. Det betyder att inga INT kan inträffa under NMI-rutinen, såvida inte programmet i själva NMI-rutinen har med instruktionen EI som ju ettställer flaggan. Vad som är speciellt med RETN, och varför man bör ha med den SIST i sin NMI-rutin beror på att instruktionen sätter interruptflaggan till det förut sparade värdet. Om man då innan tillät INT så tillåts INT även efter NMI-rutinen. I NMI-rutinen så är det fritt fram att göra vad man vill och gör man då ett CALL till RETI så är det säkert för att utnyttja just det som är speciellt med RETI och inte att returnera från NMI-rutinen, även om det skulle gå bra att gör det med RETI. Vad som är speciellt med RETI stod i inlägg 869, dvs. att vissa ZILOG kretsar hajar till när de ser den på bussen och kan på så vis kolla om det är deras tur att interrupta. (Att de är byggda för att haja till för just RETI beror på att man skall avsluta en INT-rutin med den instruktionen och det vet de om!) Detta har man förstås bara nytta av vid nästlade interrupt. ( Kommentar i text 872 av Paul Pries <5322> ) ( Text 871 ) ( Text 872 ) 1987-07-04 13.24.17 Paul Pries <5322> Mottagare: Z80 Kommentar till text: 871 av Peter Thärning <3707> Ärende: NMI och RETI Det förklarar saken.... Det lustiga i sammanhanget är att den gör det tre(!) gånger... Det ser ut så här: 66: LD SP,XXXX 69: LD B,3 6B: CALL 300 6E: DJNZ 6B 300: RETI Det skulle innebära att det görs tre call och tre reti på raken. Kan kanske vara nåt för att vinna lite tid? /Paul ( Kommentar i text 875 av Hans Holmberg <2838> ) ( Text 872 ) ( Text 873 ) 1987-07-04 18.29.08 Stefan Nilsen <6089> Mottagare: Z80 Ärende: OUT och IN Vad finns att hämta på Databussen då OUT 127,A exekveras. Samma fråga gäller instruktionen IN A,255 Hälsningar Sune. ( Kommentar i text 874 av Peter Thärning <3707> ) ( Text 873 ) ( Text 874 ) 1987-07-04 22.34.48 Peter Thärning <3707> Mottagare: Z80 Kommentar till text: 873 av Stefan Nilsen <6089> Ärende: OUT och IN Out 127,A skickar naturligtvis ut A till databussen. In A,255 ger inget på databussen utan det är meningen att det som finns där läses in till A. ( Text 874 ) ( Text 875 ) 1987-07-05 03.44.44 Hans Holmberg <2838> Mottagare: Z80 Kommentar till text: 872 av Paul Pries <5322> Ärende: NMI och RETI Den beskrivna rutinen servar NMI-interruptet, och nollställer eventuella periferikretsars interrupt i tre nivåer..... /Hasse ( Kommentar i text 877 av Paul Pries <5322> ) ( Text 875 ) ( Text 876 ) 1987-07-05 09.53.19 Patric Ljung <5455> Mottagare: Z80 Kommentar till text: 864 av Kristoffer Eriksson <5357> Ärende: IM 2 <==> ABC800 Ok, tack för den upplysningen. Jag kommer bara ihåg att skrev dit det av något säkerhetskäl. Det är möjligt att jag hade två interupt rutiner som skulle in samtidigt (då behövs ju DI och EI). ( Text 876 ) ( Text 877 ) 1987-07-06 08.19.03 Paul Pries <5322> Mottagare: Z80 Kommentar till text: 875 av Hans Holmberg <2838> Ärende: NMI och RETI Tack! Precis vad jag ville veta. Nu börjar jag äntligen fatta eländet! /Paul ( Text 877 ) ( Text 878 ) 1987-07-07 21.06.08 Petter Stahre <4501> Mottagare: Z80 Ärende: DEC A Påverkar detta kommando verkligen inga flaggor?? Det har i alla fall fungerat utmärkt för mig att använda det, och sedan kontrollera med JP NZ,.... Anledningen till att jag frågar är dels att jag nydligen upptäckte att Zaks bok säger att DEC *inte* påverkar *någon* flagga. En annan anledning, som föranlett mig till detta inlägg är att en ändring i ett assemblerprogram som torde vara helt korrekt har fått programmet att uppföra sig mycket konstigt. Kan det vara så att jag av ren tur fått DEC och JP fungera utmärkt, eller?? / mvh PSt ( Kommentar i text 879 av David Andersson <5201> ) ( Kommentar i text 880 av Mikael Carlstedt <7105> ) ( Kommentar i text 881 av Paul Pries <5322> ) ( Text 878 ) ( Text 879 ) 1987-07-07 21.40.44 David Andersson <5201> Mottagare: Z80 Kommentar till text: 878 av Petter Stahre <4501> Ärende: DEC A (Fritt ur minnet:) DEC A påverkar inte Carry-flaggan. DEC A påverkar Zero-flaggan. Man kan alltså testa efter DEC A med JP Z. DEC HL, DEC BC m m påverkar inga flaggor alls. Hur kan det stå så galet i Zaks bok? Börjar jag bli åderförkalkad? ( Text 879 ) ( Text 880 ) 1987-07-07 22.39.48 Mikael Carlstedt <7105> Mottagare: Z80 Kommentar till text: 878 av Petter Stahre <4501> Ärende: DEC A Que??? Vad har du för en upplaga? Det måste vara tyrkfelsnisse som har varit framme! Kan du beskriva lite mer utförligt omständigheterna kring den där ändringen du nämnde? * Girbat * ( Text 880 ) ( Text 881 ) 1987-07-08 09.00.06 Paul Pries <5322> Mottagare: Z80 Kommentar till text: 878 av Petter Stahre <4501> Ärende: DEC A / Flaggor. Så vitt jag kan se så påverkar inte DEC A i sig själv några flaggor. Det är endast om (A) blir 0 som Z-flaggan sättes. Och då är det ju inte själva instruktionen som har påverkat flaggan, utan resultatet! H/Paul ( Kommentar i text 882 av Petter Stahre <4501> ) ( Kommentar i text 883 av David Andersson <5201> ) ( Text 881 ) ( Text 882 ) 1987-07-08 19.31.32 Petter Stahre <4501> Mottagare: Z80 Kommentar till text: 881 av Paul Pries <5322> Ärende: DEC A / Flaggor. Jag har nog sett fel. Nu när jag kollar igen, så ser jag att DEC på register-par inte påverkar flaggor. Däremot DEC på enkelregister gör det. / mvh PSt ( Text 882 ) ( Text 883 ) 1987-07-09 09.54.52 David Andersson <5201> Mottagare: Z80 Kommentar till text: 881 av Paul Pries <5322> Ärende: DEC A / Flaggor (närmast en språkfråga). Om A blir noll så sätts Z-flaggan till 1 och om A blir skilt från 0 så sätts Z-flaggan till 0. Jag tycker det är bättre att säga att det är instruktionen som sätter flaggorna än att säga att resultatet gör det. Det finns instruktioner som inte sätter flaggorna fast de ger resultat. T ex DEC HL och instruktionerna som sätter och clerar bitar (SET x,A m m). Alltså "vissa instruktioner påverkar flaggorna"! (Inte "vissa resultat påverkar flaggorna") ( Kommentar i text 884 av Peter Goldmann <5080> ) ( Text 883 ) ( Text 884 ) 1987-07-09 21.43.48 Peter Goldmann <5080> Mottagare: Z80 Kommentar till text: 883 av David Andersson <5201> Ärende: DEC A / Flaggor (närmast en språkfråga). Om jag har läst rätt i tidigare inlägg så är jag tveksam över terminologien. Avspeglar inte FLAGGORNA realiteter? Alltså oberoende HUR tillståndet uppnåtts kommer om A=0 Zeroflaggan att sättas =1 Naturligtvis kommer detta att kunna ske någon gång för DEC A men även för en mängd andra instruktioner som påverkar A:s inne- håll. Således borde det vara mer stringent att säga att Z flaggan direkt visar A:s tillstånd - punkt slut. För programmeraren blir då slutsatsen att så fort jag opererar på A så bör jag hålla koll på Z - flaggan - räcker inte det för att täcka samtliga fall? ( Kommentar i text 885 av David Andersson <5201> ) ( Kommentar i text 886 av Kristoffer Eriksson <5357> ) ( Text 884 ) ( Text 885 ) 1987-07-10 21.30.13 David Andersson <5201> Mottagare: Z80 Kommentar till text: 884 av Peter Goldmann <5080> Ärende: DEC A / Flaggor (Varning, 51 rader med ointressanta exempel) Nej, nej, nej. Efter t ex: XOR A LD A,255 så är Z-flaggan 1 fast A är skilt från noll. LD-instruktionen ändrar register utan att påverka flaggorna i Z80. LD A,1 DEC A ;sätter (inte alla) flaggor enligt register A DEC B ;sätter (inte alla) flaggor enligt register B Inte efter någon av dessa instruktioner återspeglas A:s (hela) tillstånd i flaggorna. SET 7,A ;sätt en bit i A Flaggorna ändras inte utan återspeglar resultatet av tidigare operationer som kan finnas i t ex reg HL eller reg C eller inte alls. CCF ;negera carry-flaggan. Varken A:s tillstånd eller något annat registers tillstånd återspeglas nu i carry-flaggan. Antag att följande två operationer alltid gav resultatet 255: ADD A,2 och OR A,128 Då kommer alla flaggor (utom en eller två) att vara lika och verkligen återspegla resultatet. En skillnad är att P/O flaggan troligen är satt av ADD men nollställd av OR. INC HL sätter inga flaggor alls. INC (HL) sätter några få flaggor (som INC A). Efter ADD HL,BC återspeglas inte A:s (men väl HL:s) tillstånd i flaggorna. Möjligtvis kanske med några undantag som jag glömt. Skift- och rotate-instruktioner ska vi bara inte tala om. Som programmerare räcker det alltså inte att tänka att A:s tillstånd återspeglas i flaggorna. Det räcker inte ens att tänka att tillståndet för det senast använda registret återspeglas. Man måste ta hänsyn till vad det var för instruktion också. (I M6809 är det lite enklare. Inte alla, men de flesta instruktioner som ändrar register gör att flaggorna sätts) ( Text 885 ) ( Text 886 ) 1987-07-11 00.01.22 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 884 av Peter Goldmann <5080> Ärende: DEC A / Flaggor (närmast en språkfråga). (Nu skriver jag i princip baa samma sak som inlägget före det här, men det här har jag författat i förväg, så jag sänder in det som det är.) Det finns två möjligheter för flaggor. De kan antingen avspegla resultatet av en operation, eller de kan behållas oförändrade, och alltså fortsätta att avspegla resultatet av någon tidigare operation. Vad som gäller varieraåir för varje flagga och varje instruktion. Läser man en lista som visar vad instruktionerna gör, brukar det även ingå en uppgift om vilka flaggor som påverkas hur för varje instruktion. För att ta några exempel: ADD A påverkar alla flaggor. INC A påverkar allt utom carry-flaggan. ADD HL,DE påverkar bara carry och N. INC HL påverkar ingenting. P/V-flaggan påverkas i vissa instruktioner av resultatets paritet och ibland av overflow. Detta gör att man kan skriva saker som CP A,B INC A RET C LD A,0 RET som ökar A med ett om B>A, och annars nollställer den. Observera att RET C går efter resultatet från CP A,B, eftersom INC A inte påverkar carry-flaggan. På det här sättet slipper jag använda en JR till INC A. ( Kommentar i text 887 av Peter Goldmann <5080> ) ( Text 886 ) ( Text 887 ) 1987-07-11 10.21.18 Peter Goldmann <5080> Mottagare: Z80 Kommentar till text: 886 av Kristoffer Eriksson <5357> Ärende: DEC A / Flaggor (närmast en språkfråga). Jag hade fel som David så tydligt visat. Tack för en intressant genomgång! ( Kommentar i text 888 av Peter Goldmann <5080> ) ( Text 887 ) ( Text 888 ) 1987-07-11 22.28.57 Peter Goldmann <5080> Mottagare: Z80 Kommentar till text: 887 av Peter Goldmann <5080> Ärende: DEC A / Flaggor (närmast en språkfråga). Läste igenom inläggen igen om flaggorna - skulle man inte kunna säga att om man opererar på A så beakta att Z KAN påverkas. Kan någon då förklara varför man inte valt att låta Z återspegla realiteterna i A? Alltså att oavsett hur A blivit 0000 0000 kommer då Z sättas 1. Det borde ju gå att realisera enkelt genom en AND-grind med 8 inverterade ingångar. Kan någon förklara varför Z80 är så assymetrisk i sin reportoar? Är den ett lappverk? Jag tycker att en processor ska vara förutsägbar i sin reportoar. Av tidigare inlägg tycks det som om vissa instruktioner har fallit bort i standardvarianten - de är åtminstone ej legala, men i special- versioner är de OK. Är inte det bedrövligt? Var det refreshen av dynamiska RAM som gjorde den så populär? ( Kommentar i text 889 av Peter Hollsten <2431> ) ( Kommentar i text 890 av Stefan Lennerbrant <4364> ) ( Kommentar i text 891 av Kristoffer Eriksson <5357> ) ( Text 888 ) ( Text 889 ) 1987-07-12 01.47.30 Peter Hollsten <2431> Mottagare: Z80 Kommentar till text: 888 av Peter Goldmann <5080> Ärende: Z80 processorn Det som gorde den populär var väl att 8080 var så populär och z80 kan ju allt som 8080 kan + en del mer. Priset har nog sitt därtill (4kr i större kvantiteter). Orsaken till att 16bit DEC inte ändrar flaggorna ligger i intels grundfilosofi, bakåtkompatibel med 4040. Bakåtkompabilitete har ju även drabbat I*B PC med segmenteringshanteringen som jag personligen hatar djupt. ( Text 889 ) ( Text 890 ) 1987-07-12 21.04.23 Stefan Lennerbrant <4364> Mottagare: Z80 Kommentar till text: 888 av Peter Goldmann <5080> Ärende: DEC A / Flaggor (närmast en språkfråga). Mja, skulle det vara bra om flaggorna påverkades av tex LD ? Det är ju ganska vanligt att A innehåller någon slags returnkod, tex: . . LD A,1 RET Z XOR A RET Här går funk ut med A=1 om Z sattes innan. Om Z påverkades av LD A,1 skulle det ju inte längre vara så behändigt, eller hur. mvh ( Kommentar i text 893 av Ulf Dahlen <2422> ) ( Text 890 ) ( Text 891 ) 1987-07-13 00.37.57 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 888 av Peter Goldmann <5080> Ärende: DEC A / Flaggor Man kan ju inte låta flaggorna återspegla innehållet i just A jämt. Man kan vara intresserad i innehållet i andra register också, som HL, eller resultatet av en operation typ CP som ju inte lämnar resultatet någon stanns. Sen är ju inte Z den enda flaggan som finns. Det finns t ex P/V- flaggan som vid aritmetiska operationer indikerar overflow (som f ö inte lagras i resultatets register, utan bara i flaggan) och vid logiska får resultatets paritet, om den påverkas alls. N-flaggan talar om huruvuda den senaste operationen som påverkade flaggan var en addition eller subtraktion, vilket inte har något alls med resultatet att göra. Med detta vill jag visa att det finns anledning att låta varje instruktion detaljreglera vad som händer med de olika flaggorna. Då är det inte långt för CPU:ns konstruktörer att reglera Z-flaggan på liknande sätt. Vissa situationer då det inte finns någon anledning att ändra Z- flaggans innehåll är rent uppenbara: hopp-instruktioner. Det vore ju dumt att om Z avspeglar resultatet av en CP mellan t ex A=10 och B=10 då Z blir sann, och ett hopp görs någonstanns, då återställa Z till falsk pga att A<>0. Det skulle betyda att vill man använda ett resultat till flera villkorliga hopp i rad, måste man göra om operationen direkt före varje hopp (vilket även innebär att registren måste ha kvar sina värden hela tiden). Då är frågan: När bör flaggan påverkas? En svår fråga som varje CPU-konstruktör får brottas med. Och det gäller även 6800-serien (David nämnde 6809). Det som har betydelse för beslutet är vilka fördelar det ger för programmeraren. De fördelar det ger att inte låta alla instruktioner påverka flaggorna, är som jag nämnde att flaggorna avspeglar resultatet av de för programmet intressanta operationerna länge, och inte störs av ointressanta saker som RET, så man inte måste upprepa viktiga test flera gånger, samt får frihet att lägga testet en bit före dess effekt (JP/JR). Nyttan av detta gav jag exempel på i förra inlägget. Intressanta operationer är i synnerhet jämförelser: CP, och i andra hand aritmetiska och logiska operationer. Vad som är intressant varierar förstås med vilka flagga som avses. Vad jag försöker förklara är att det inte är självklart att man alltid vill att flaggorna ska avspegla den allra senast gjorda operationen. Varför just ADD HL,ss inte påverkar Z-flaggan vet jag inte, men den kompletteras fint av ADC som gör det. Därmed finns det en additionsoperation som påverkar flaggan, och en som inte gör det. I övrigt påverkas Z av de flesta operationer som påverkar registren. Faktum är att det inte varierar helt godtyckligt från instruktion till instruktion vad som händer med flaggorna. Jag kan citera början av en sammanfattande tabell: S Z H P/V N C ADD A,s; ADC A,s: ! ! ! V 0 ! SUB s; SBC A,s; CP s; NEG ! ! ! V 1 ! AND s ! ! 1 P 0 0 OR s; XOR s ! ! 0 P 0 0 INC s ! ! ! V 0 - DEC s ! ! ! V 1 - ADD dd,ss - - X - 0 ! ADC HL,ss ! ! X V 0 ! SBC HL,ss ! ! X V 1 ! P=Parity, V=Overflow, !=Enligt operationens resultat, X=Odefinierat, -=Ej påverkad. Iofs är väl Z80 en påbyggd 8080 (eller vad det var), men jag tror inte man ska skylla alltför mycket konstigheter på det (dock kanske ADD HL kontra ADC HL?). Man har lyckats stoppa in ganska mycket i Z80 jämfört med övriga 8-bittars processorer från den tiden. När det gäller processorns asymmetri, så har den väl en del att göra med många instruktioner - få instruktionskoder och begränsat utrymme på chippet... ( Text 891 ) ( Text 893 ) 1987-07-19 01.29.27 Ulf Dahlen <2422> Mottagare: Z80 Kommentar till text: 890 av Stefan Lennerbrant <4364> Ärende: DEC A / Flaggor (närmast en språkfråga). Flera processorer, t ex 6502, använder sig av filosofin att sätta flaggor vad man än gör. LDA #1 sätter således Z till 0. Och det går ju bra att programmera 6502, så varför inte? ( Kommentar i text 912 av Stefan Lennerbrant <4364> ) ( Text 893 ) ( Text 894 ) 1987-07-19 19.16.31 Per Fagerkvist <3862> Mottagare: Z80 Ärende: Z80 R-REG Z80 har ju ett refresh register R för dynamiska minnen, Refreshen är på 7 bitar så Z80 klarar att refresha (7+7=14 2Ü14 ) 16 Kb dynamiskt ram utan några hardvarutrix. R räknar upp från 0-127 (14 adressben). FRÅGA ? Vad händer om jag sätter R-reg till 10H jag är osäker på vad som händer exakt. Kanske uppräkningen sker från 10H-7FH och på det sättet inte refreshar från 00H-0FH. Tacksam för svar ! Mvh /Per ( Kommentar i text 895 av Hans Holmberg <2838> ) ( Text 894 ) ( Text 895 ) 1987-07-20 00.38.28 Hans Holmberg <2838> Mottagare: Z80 Kommentar till text: 894 av Per Fagerkvist <3862> Ärende: Z80 R-REG Det du gör är sätta refreshen som du skrev till 10H, men sedan när räknaren når 7FH så slår den om till 00H /Hasse ( Text 895 ) ( Text 896 ) 1987-07-20 20.20.52 Petter Stahre <4501> Mottagare: Z80 Ärende: Z80 slump Hur gör jag lättast en "slumpgenerator" i assembler? Hur gör BASICen? Någon som har någon liten rutin, som inte använder så många register. Förrexten - om jag vill läsa maskinkoden för kommandona RAND../RND, hur går jag tillväga, hur hittar jag rätt adress i tolken att disassemblera? / mvh PSt ( Kommentar i text 899 av Mikael Carlstedt <7105> ) ( Kommentar i text 900 av Lars Gjörling <6825> ) ( Kommentar i text 903 av David Andersson <5201> ) ( Text 896 ) ( Text 897 ) 1987-07-20 21.59.35 Arne Lager <5798> Mottagare: Z80 Hur och var får jag i en bok om assembler? Finns det någon? MVH ARNE ( Kommentar i text 898 av Mikael Carlstedt <7105> ) ( Text 897 ) ( Text 898 ) 1987-07-20 23.21.12 Mikael Carlstedt <7105> Mottagare: Z80 Kommentar till text: 897 av Arne Lager <5798> "Programmera Z80" av Rodnay Zaks finns hos de flesta välsorterade bokhandlare. Vad gäller assemblerprogrammering för ABC-burkarna är det lite sämre beställt; det finns ju förstås "Bit för bit med ABC800", men den täcker inte alls så mycket som vore önskvärt (in/utportarna redovisas t.ex. synnerligen ofullständigt). Varför systeminformationen om ABC-datorerna är så torftig vet jag inte, men det kanske är något slags klonofobi (rädsla för kloner)... * Girbat * ( Text 898 ) ( Text 899 ) 1987-07-21 00.17.26 Mikael Carlstedt <7105> Mottagare: Z80 Kommentar till text: 896 av Petter Stahre <4501> Ärende: Z80 slump Om jag inte har missförstått saken helt så finns det vissa instruktioner som sätter några av flaggorna (Sign-flaggan och Parity/overflow-flaggan för att vara exakt) helt slumpmässigt. Med utgångspunkt från detta kan man ju tänka sig något i stil med nedanstående: * En snutt för att få fram ett 8-bitars slumptal * LD r,02H ; r är registret där du vill ha slumptalet NÄSTA BIT 0,r ; BIT-instruktionen är en av de slumpmässiga JP M,SKIFTA INC r SKIFTA SLA r JP NC,NÄSTA BIT 0,r RET M INC r RET Voila! Lite spagettiartat kanske, men bara ett ynka enkelregister används. Det är instruktionerna med 2-ords OP-kod (BIT, SET, RES och några till) som har den här egenheten med slumpmässig flaggsättning. Jag valde BIT-instruktionen för detta ändamål, eftersom den inte påverkar några register. * Girbat * ( Kommentar i text 902 av David Andersson <5201> ) ( Text 899 ) ( Text 900 ) 1987-07-21 16.35.31 Lars Gjörling <6825> Mottagare: Z80 Kommentar till text: 896 av Petter Stahre <4501> Ärende: Z80 slump I matematiken menas med ett slumptal ett tal mellan 0 och 1. I datasammanhang bildas en slumptalsserie, genom att varje nytt tal fås ur det föregående genom någon algoritm, t ex Newrandom = Frac(SQR(Oldrandom+Pi)) el dyl Man inser, att om ett slumptal är lika med ett av de föregående, så blir talföljden periodisk, så att den upprepar sig själv. Förr eller senare MÅSTE detta inträffa, eftersom 6-siffriga tal inte kan bilda mer än högst 999999 olika kombinationer. Man måste starta med ett första värde, ett s k slumptalsfrö. I vissa datorer måste man själv mata in detta, i andra kan man använda den inbyggda klockan, om sådan finns. Detta aktiveras med RANDOMIZE. I programmerbara räknedosor använder man ofta en enkel algoritm, den s k 47-generatorn, som arbetar genom att multiplicera Oldrandom med 47 och sedan ta bort heltalsdelen: Newrandom = Frac(47*Oldrandom). I assembler får man väl istället generera heltal mellan 1 och 32767. Nedanstående förslag använder den enkla 47-generatorn. Helt säker på att man inte får en alltför kort periodicitet, kan man väl inte vara men talet 47 är valt för att minimera den risken: RND ZPROG ; Program för alstring av slumptal. ; ORG 64512 ; Läggs i dosbuf 7. ; DE förutsätts innehålla ett slumptalsfrö. START LD B,47 ; En s k 47-generator används. LD HL,0 LOOP ADD HL,DE ; Det nya slumptalet läggs i HL, och erhålls DJNZ LOOP ; genom att det gamla multipliceras med 47. RES 7,H ; Inga negativa utparametrar! LD D,H ; Det nya slumptalet blir ev. frö till nästa. LD E,L RET ; Vid return finns slumptalet i HL (1-32767). END START Du kan prova det i nedanstående basicprogram, där slumptalsfröet hämtas från två bytes i klockan (SEC och TIC). Så länge man håller en tangent nedtryckt, får man nya slumptal. 10 INTEGER : EXTEND : ; CHR¤(12); 20 POKE 64512,6,47,33,0,0,25,16,253,203,188,84,93,201 30 Start=64512 ! Maskinspråkrutin i dosbuf 7. 40 ! För att få ett slumptalsfrö användes två bytes i datorns klocka: 50 Frö=PEEK2(65524) : IF Frö=0 THEN 50 ELSE Slumptal=CALL(Start,Frö) 60 ; USING "#.###### " Slumptal/32768.; 70 Slumptal=CALL(Start,Slumptal) : GET W¤ : GOTO 60 Om du vill ha en synnerligen enkel metod att få ett litet slumptal mellan 0 och 96, så kan du helt enkelt läsa värdet av adress 65525, som visar aktuellt värde av klockans hundradelssekund. Mvh Lars ( Kommentar i text 901 av Lars Gjörling <6825> ) ( Kommentar i text 904 av David Andersson <5201> ) ( Text 900 ) ( Text 901 ) 1987-07-21 16.56.02 Lars Gjörling <6825> Mottagare: Z80 Kommentar till text: 900 av Lars Gjörling <6825> Ärende: Z80 slump Förlåt, i näst-näst-sista raden skall det förstås stå 'mellan 0 och 93' (och inte 96 som jag skrev)! Mvh Lars ( Text 901 ) ( Text 902 ) 1987-07-22 14.09.10 David Andersson <5201> Mottagare: Z80 Kommentar till text: 899 av Mikael Carlstedt <7105> Ärende: Z80 slump Har du testat metoden, att den verkligen ger slumptal? Jag har inte gjort det, men jag misstänker att den är dålig. Inga instruktioner sätter nog några flaggor helt slumpmässigt. Det vissa instruktioner gör är att de påverkar flaggor på ett odokumenterat sätt. T ex. säges H-flaggan vara odefinierad efter ADC HL.DE, men den har säkert fått sitt värde efter någon bit i något register. ( Kommentar i text 905 av Mikael Carlstedt <7105> ) ( Text 902 ) ( Text 903 ) 1987-07-22 14.25.57 David Andersson <5201> Mottagare: Z80 Kommentar till text: 896 av Petter Stahre <4501> Ärende: Z80 slump Tolken använder ett 40 bitars heltal (5 bytes) i slumptalsgeneratorn. RANDOMIZE läser av R-registret (Refresh-registret) och sätter alla 5 bytearna till avläst värde. RANDOMIZE startar alltså en av 128 (eller 127) möjliga slumptalsserier. Hur RND fungerar har jag glömt, men i stort sett är det som följer. Nytt.frö = (Gammalt.frö * stort.tal) + annat.tal Blir det nya talet större än 40 bitar slänger man bara bort överflödiga bitar (vilket händer ofta, stort.tal är *stort*). Sedan används de högsta bitarna i Nytt.frö för att bilda ett flyttal mellan 0 och 1. Det liknar 47-generatorn beskriven i text 900 med den skillnaden att ett annat.tal läggs till så att gammalt.frö kan få vara noll utan att slumptalsgeneratorn står och stampar på noll. När man ska bestämma vilket tal man ska ha som stort.tal så försöker man ta ett tal som ger långa slumptals-serier utan upprepningar. Jag har för mig att man då använder teorier om primtal. ( Kommentar i text 913 av Björn Linderson <5829> ) ( Text 903 ) ( Text 904 ) 1987-07-22 14.33.03 David Andersson <5201> Mottagare: Z80 Kommentar till text: 900 av Lars Gjörling <6825> Ärende: Z80 slump Förutom 47-generatorn finns också 137-generatorn. Antagligen finns framtaget pseudoslumpgeneratorer med större tal och som passar för 16-bitars register. Fördelen med 137-generatorn är att 137 binärt har färre bitar=1 än 47 så multiplikationen kan göras snabbare med några få skiftoperationer och några få additioner. ( Kommentar i text 906 av Lars Gjörling <6825> ) ( Text 904 ) ( Text 905 ) 1987-07-23 08.02.22 Mikael Carlstedt <7105> Mottagare: Z80 Kommentar till text: 902 av David Andersson <5201> Ärende: Z80 slump Hm, testat den har jag inte...Jag bara såg att "Roddan" hade skrivit slumpmässigt, och han är ju professor och allt. Den där snutten var bara ett stundens infall, och vid närmare eftertanke tror jag nog att du har rätt på den punkten. Det där med H-flaggan i samband med ADC HL,DE var emellertid lite lustigt; i min "Programmera Z80" av Roddan står det klart och tydligt att "H sätts om det finns någon carry från bit 11". * Girbat * ( Kommentar i text 907 av Lars Gjörling <6825> ) ( Text 905 ) ( Text 906 ) 1987-07-24 17.49.20 Lars Gjörling <6825> Mottagare: Z80 Kommentar till text: 904 av David Andersson <5201> Ärende: Z80 slump Tack för svaret. Jag ser att 137-generatorn måste kunna göras väsentligt snabbare än 47-generatorn. I den första dator jag använde för många år sedan, en Nova, använde RAMDOMIZE sig (enligt den uppgift jag fick) av klockan. Om man (fel- aktigt) lade RANDOMIZE i loopen (FOR I=1 TO 10 : RANDOMIZE : PRINT RND : NEXT I) fick man mycket riktigt ett antal helt lika 'slumptal' ef- ter varandra. I M-soft Basic för APPLE II var man tvungen att mata in ett slumptalsfrö som inparameter till RANDOMIZE, för att inte få samma talföljd alltid. Mvh Lars ( Text 906 ) ( Text 907 ) 1987-07-24 17.59.50 Lars Gjörling <6825> Mottagare: Z80 Kommentar till text: 905 av Mikael Carlstedt <7105> Ärende: Z80 slump I Z80 Technical Manual talas inte om slumpmässighet, bara om att S-flaggan är 'unknown' efter BIT b,r. Beträffande S-flaggan står det på annat ställe att den visar 'sign' genom att kopiera bit 7 från r. Jag misstänker att det är så att S-flaggan inte är opåverkad, men att dess värde inte beror på utfallet av BIT-testet för bit b, utan av värdet av bit 7. I så fall kan din metod inte fungera. Vad slumptal beträffar, så räcker det inte med att det genererade talet slumpmässigt och oförutsebart kan anta olika värden. Sannolikhetsfördelningen måste också vara likformig, dvs vart och ett av talen 0-255 måste ha samma sannolikhet att bli valt. När du kastar tärning, har 1, 2, ... 6 lika stor sannolikhet varje gång du kastar, där är sannolikhetsfördelningen likformig. Men om du kastar 2 tärningar och lägger samman 'ögonen', så kan du visserligen slumpmässigt erhålla vilket som helst av talen 2, 3, 4, ..... 12, men sannolikhetsfördelningen är inte likformig. Summan 2 kan bara erhållas ett enda sätt (båda tärningarna visar 1) men summan 7 kan erhållas på 6 st olika sätt. Det är därför 6 gånger sannolikare att summan blir 7 än att den blir 1. I ditt förslag till slumptalsgenerator finns BIT 0,r med 2 ggr, vilket liknar ovanstående exempel. Det är nog ganska säkert att fördelningen i varje fall inte skulle kunnat bli likformig. Datorn genererar sina 'slumptal' med en algoritm, och de är alltså inga riktiga slumptal. Om man vet värdet av ett 'slumptal' och har kännedom om algoritmen, så man ju i förväg räkna ut vilket nästa 'slumptal' kommer att bli (roulettespelarens önskedröm). Men serien av slumptal skall imitera slumpmässighet och måste därför ha bl a likformig fördelning. Risken för periodicitet är ett bekymmer. Om man med en algoritm i ett assemblerprogram genererar 8-bitars tal, så blir (förutsatt att fördelningen är likformig) sannolikheten 0,50 för att 18 olika tal skall genereras i följd. Sannolikheten för 19, 20, .... är mindre än 0,50. Att använda 8-bitars register är helt olämpligt, om det inte enbart gäller något eller några enstaka slumptal i hela programmet, och då kan man lika gärna läsa av adress 65525 (TIC). Vid 16-bitars tal är risken väldigt mycket mindre och vid 40-bitars tal nästan obefintlig (om algoritmen är den rätta). På datorns slumptalsgenerator kan man lätt göra olika tester beträffande likformighet. Om man skriver ett basicprogram, som genererar tärningkast, så kan man ha 6 räkneregister för de olika utfallen. Om man 'kastar' ett stort antal gånger (t ex 60000), så skall procenttalen ettor, tvåor etc tendera mot samma tal (16,7%). Tyvärr räcker det inte ens med likformighet för att generatorn skall imitera slumpmässighet på rätt sätt. Programmet 10 WHILE -1 : IF X<1 OR X>6 THEN X=1 20 PRINT X; : X=X+1 : WEND genererar talföljden 1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6,...... vilken självfallet inte utgör några slumptal, men klarar likformighetstestet med glans. Man kan därför göra det s k pokertestet. I tärningpoker kan man ju slumpmässigt få par, tretal, fyrtal etc. Även om man genererar tär- ningkast med dator kan man få par (samma tal två ggr i följd), tretal etc. Man förstår ju lätt, att när man slår en tärning, så är sannolikheten 1/6 för att man får detsamma som föregående gång. Om man har en räknare, som räknas upp varje gång det slumpas ut samma tärningkast två gånger i följd, så bör i en stor serie detta hända i 16,7% av kasten. Tretal har p.s.s sannolikheten 1/36 = 2,8%. Osv. De algoritmer, som används i datorerna, är noggrannt uträknade och utprovade för att ge god imitation av en likformig sannolikhets- fördelning. Andra statistiska fördelningar (poisson-, exponential- etc) kan erhållas genom matematiska manipulationer av datorns slumptal. Mvh Lars ( Text 907 ) ( Text 908 ) 1987-07-25 19.15.03 Staffan Lantz <6650> Mottagare: Z80 Ärende: Z80 slump Här kommer ett program som beräknar slumptal. Det är hämtat Starting Forth av Leo Brodie, och översatt till assembler. Fortprogrammet ser ut som följer: VARIABLE RND HERE RND ! : RANDOM RND É 31421 * 6927 + DUP RND ! ; RANDOM U* SWAP DROP ; : CHOOSE RANDOM U* SWAP DROP ; Och här följer assemblerprogrammet: ; Program: RANDOM Av: Staffan Lantz ; Slumpgenerator som ger slumptal mellan ; noll och värdet i DE-reg - inberäknat ; noll men inte värdet. 0>= n < värde. ; Genom anrop av RANDOMIZE får man ett slumpmässigt startvärde. ; Slumptalet hamnar i HL-registret. ; Formel: slumptal=låga delen av slumpfrö*31421+6927 ;--------------------------------------- START ORG 40000 RND DW 2 ;Reserverat för ett slumptal ;--------------------------------------- RANDOMIZE LD A,(65008) ;Klockbytes LD H,A LD A,(65009) LD L,A LD (RND),HL ;Slumpmässigt startvärde RET ;--------------------------------------- RANDOM PUSH DE LD A,(RND+1) LD C,A LD A,(RND) ;C+A faktor1 LD DE,31421 ;DE faktor2 LD B,16 ;B biträknare LD HL,0 ;Summa MUL16 SRL C ;Högerskift RRA ;Högerskift med carry JR NC,NOADD ;Om inte carry- ingen delssumma- hoppa ADD HL,DE ;Addera summa NOADD EX DE,HL ADD HL,HL ;Vänsterskifta DE EX DE,HL DJNZ MUL16 ;Gör alltihop 16 ggr ;--------------------------------------- ADDERA LD DE,6927 ADD HL,DE LD (RND),HL ;--------------------------------------- PUSH HL POP BC POP DE LD HL,0 LD A,16 MUL32 ADD HL,HL RL E RL D JR NC,NOADDI ADD HL,BC JR NC,NOADDI INC DE NOADDI DEC A JR NZ,MUL32 PUSH DE POP HL ;Slumptalet i HL RET END START Håll till godo / Hälsningar Staffan. ( Kommentar i text 909 av Lars Gjörling <6825> ) ( Text 908 ) ( Text 909 ) 1987-07-26 19.35.30 Lars Gjörling <6825> Mottagare: Z80 Kommentar till text: 908 av Staffan Lantz <6650> Ärende: Z80 slump Assemblerprogrammet för slumptalsgenerering är skrivet för ABC80, vilket syns av att som adress till klockbytes anges 65008-65009. Om man har en dator i 800-serien (vilket Petter Stahre, som ursprung- ligen efterfrågade det här, har), så måste man byta ut dessa två adresser mot förslagsvis 65524 och 65525 (eller istället avläsa Ref- resh-registret, som Basic-Randomize gör enligt David Andersson). Annars fungerar programmet bra. En fördel är ju att man kan skicka med ett maximivärde för slumptal i DE-registret. Mvh Lars ( Kommentar i text 910 av Kent Jönsson <5924> ) ( Text 909 ) ( Text 910 ) 1987-07-27 00.19.57 Kent Jönsson <5924> Mottagare: Z80 Kommentar till text: 909 av Lars Gjörling <6825> Ärende: Z80 slump Se inlägg 447 i möte EjBASIC ( Text 910 ) ( Text 912 ) 1987-07-29 20.49.21 Stefan Lennerbrant <4364> Mottagare: Z80 Kommentar till text: 893 av Ulf Dahlen <2422> Ärende: DEC A / Flaggor (närmast en språkfråga). (. Sakfel ! Det går inte bra att programmera 6502 .) ( Text 912 ) ( Text 913 ) 1987-07-31 20.58.15 Björn Linderson <5829> Mottagare: Z80 Kommentar till text: 903 av David Andersson <5201> Ärende: Z80 slump Detta då?? LD A,R LD L,A LD A,R LD H,R LD A,R LD B,A LOP1 RL H DJNZ LOP1 LD A,R LD B,A LOP2 RR L DJNZ LOP2 RET Läser av ett 16bitarstal från R, skiftar det ett par tre varv, (H och L var för sig). Efter detta returnerar det talet i HL, som är det register man får från ett anrop till assembler från basic via CALL xxxxx,ppppp Kan de va nå? ( Kommentar i text 914 av Lars Gjörling <6825> ) ( Text 913 ) ( Text 914 ) 1987-08-01 11.07.49 Lars Gjörling <6825> Mottagare: Z80 Kommentar till text: 913 av Björn Linderson <5829> Ärende: Z80 slump Sorry, men det duger nog inte alls som slumptalsgenerator. Det ger visserligen ett 16-bitarstal som utvärde, men första fordran på en slumptalsgenerator är ju att alla 65536 möjliga värdena skall ha samma sannolikhet att bli valt. Slumpmässigheten i ditt förslag infaller vid första raden LD A,R då den tidpunkt då R-registret avläses avgör vilket av 128 möjliga tal (se David Anderssons inlägg nr 903) som läses in, och lagras i L. Eftersom varje maskinspråksinstruktion tar ett bestämt antal klock- pulser, kan man sedan räkna ut vilka tal som laddas i H, respektive senare i B, och ännu senare i B en gång till. Varje gång den första inläsningen har exempelvis värdet 43, så fås samma 16-bitars tal som utvärde. Av de 65536 'möjliga' värdena är det i praktiken bara 128 st, som kan returneras, medan 65408 st inte har någon chans att bli valda. Att de 128 på en tallinje med talen 0-65535 skulle ligga jämnt fördelade är inte troligt. Att göra en slumptalsgenerator, som inte utnyttjar högre statistiska teorier, är svårt. Även om du skulle göra om programmet så att alla 65536 möjliga talen kan bli valda, så återstår att bevisa, att den statistiska fördelningen blir likformig (så att efter några biljoner försök alla talen skulle ha samma relativa frekvens) och även så att ordningsföljden blir fullt slumpmässig (exempelvis inte har långa se- rier av växande värden). Mvh Lars ( Kommentar i text 915 av Hans Holmberg <2838> ) ( Text 914 ) ( Text 915 ) 1987-08-02 00.51.07 Hans Holmberg <2838> Mottagare: Z80 Kommentar till text: 914 av Lars Gjörling <6825> Ärende: Z80 slump En enkel och behändig metod är att man börjar med ett frö, adderar ett 16-bitars tal hämtat från R-registret, gör en del matematiska konster med det, tar sedan detta tal och läser av ett 16-bitars tal från den minnesposition som det första talet pekade ut, och returnera sedan det hämtade talet som frö/slumptal! /Hasse ( Kommentar i text 916 av Anders Franzén <5258> ) ( Kommentar i text 918 av Lars Gjörling <6825> ) ( Kommentar i text 949 av David Andersson <5201> ) ( Text 915 ) ( Text 916 ) 1987-08-02 09.21.56 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 915 av Hans Holmberg <2838> Ärende: Z80 slump Jag beräknade slumptal på följande sätt när jag bara hade en TI57:a (en liten programmerbar miniräknare): Ta ett frö så att 0 ) ( Text 916 ) ( Text 917 ) 1987-08-03 01.40.42 Lars Gjörling <6825> Mottagare: Z80 Kommentar till text: 916 av Anders Franzén <5258> Ärende: Z80 slump Att få fram slumpartade tal är inte så svårt och kan göras på hur många olika sätt som helst. Skall man bara ta fram några enstaka, och använda dem själv för skojs skull, så är det väl inte så noga. Men skall man låta ett datorprogram simulera slumphändelser, hämtade från verkligheten, ställs det krav på att de framslumpade talen har rätt sannolikhetsfördelning. För verkliga händelser har den matema- tiska statistiken ställt upp en hel rad olika slags fördelningar, likformig fördelning, binomialfördelning, normalfördelning, poisson- fördelning, exponentialfördelning etc. Fördelningskurvan ser ut på olika sätt för dessa fördelningar. Funktionen RND *SKALL* slumpa fram tal med likformig fördelning, dvs fördelningskurvan skall bli en rät obrutenlinje, parallell med x-ax- eln. Sinusfunktionen lämpar sig verkligen inte, den kurvan är knap- past en rät linje. Sin(30)=0,5 varav man inser att av slumpmässigt valda vinklar 0-90 måste det bli dubbelt så många sinusvärden mellan 0,5 - 1 som mellan 0 - 0,5. Vanliga hobbyprogrammerare använder väl ofta RND i spelprogram, för att kasta krona och klave, göra tärningskast eller dra kort ur kort- lek etc. Detta är att simulera slumphändelser i verkliga livet. Och dessa är typiska händelser med likformig sannolikhetsfördelning. Tärningkast simuleras exempelvis genom att man delar in hela mängden av möjliga RND-värden i 6 lika stora intervall och ser efter inom vilket man hamnade. Det får då inte bli så, att exempelvis sexa bara inträffar var hundrade gång eller att ettor är dubbelt så vanliga som tvåor eller treor. 47-generatorn, 137-generatorn och 31421-generatorn är inte påhittade genom att man har tagit tal ur luften. Det ligger mycket matematiskt arbete bakom dem. Det är inte helt omöjligt att det dåliga tipsresultatet berodde på att räknaren tippade för många tvåor. Mvh Lars ( Text 917 ) ( Text 918 ) 1987-08-03 12.19.51 Lars Gjörling <6825> Mottagare: Z80 Kommentar till text: 915 av Hans Holmberg <2838> Ärende: Z80 slump Metoden inger inte mig förtroende. Man kan inte ta ett '16-bitars tal från R-registret' utan att hämta två 8-bitars tal efter varandra. Att göra matematiska konster med det är meningslöst, det blir ändå bara 128 st möjliga 16-bitars tal som kan bli resultatet (se mitt inlägg 914). Att använda internminnets innehåll för att generera slumptal tror jag inte är någon bra ide. De 65535 st möjliga PEEK2-värdena är inte lik- formigt fördelade, framför allt så är värdet 0 enormt överrepresente- rat. Skriv programmet: 10 ; Slump; : Slump=PEEK2(Slump) : GOTO 10 så får du den inte särskilt lyckade talföljden: 0 29720 -21632 0 29720 -21632 0 29720 -21632 .................. Startar du med ett godtyckligt frö, så får snart PEEK2 värdet 0 och då börjar en sådan serie. Om man varje gång lägger till ett '16-bitars tal från R-registret', så blir naturligtvis variationsmöjligheterna mycket större. Men även då kan knappast fördelningen bli likformig. Det är nog bäst att hålla sig till noggrannt beräknade och utprovade matematiska metoder (t ex enligt inlägg 900). I inlägg 447 i mötet EJBASIC angavs anropsadressen till slumptals- rutinen i basictolken för ABC80, vilket gör att man kan göra ett enkelt CALL för att få ett slumptal. Det måste ju finnas en sådan adress även i BASIC II-tolken, både för RND och RANDOMIZE. Det gäller bara att veta den. Den plats i minnet, där dessa rutiner lagrar det genererade slumptalet är 65351-65355 (ett 40-bitars tal i 5 bytes). Mvh Lars ( Text 918 ) ( Text 919 ) 1987-08-04 18.30.06 Martin Lundahl <5254> Mottagare: Z80 Ärende: OPEN ..... AS FILE X Jag undrar hur man öppnar en fil i assembler och hur man läser in ett tecken från filen. /Martin ( Kommentar i text 922 av Kent Jönsson <5924> ) ( Text 919 ) ( Text 920 ) 1987-08-04 18.31.19 Martin Lundahl <5254> Mottagare: Z80 Ärende: RUN i assembler Hur gör man för att göra RUN på ett BASIC-program som ligger i minnet via assembler? /Martin ( Kommentar i text 921 av Kent Jönsson <5924> ) ( Text 920 ) ( Text 921 ) 1987-08-04 23.18.49 Kent Jönsson <5924> Mottagare: Z80 Kommentar till text: 920 av Martin Lundahl <5254> Ärende: RUN i assembler => SVAR På en ABC80 är det call(3413) . ( Kommentar i text 924 av Martin Lundahl <5254> ) ( Text 921 ) ( Text 922 ) 1987-08-04 23.46.53 Kent Jönsson <5924> Mottagare: Z80 Kommentar till text: 919 av Martin Lundahl <5254> Ärende: OPEN ..... AS FILE X Jmf ABC Rapport nr 1, sid 88, adress 7:194 mm. ( Kommentar i text 923 av Bo Kullmar SYSOP <1789> ) ( Text 922 ) ( Text 923 ) 1987-08-05 06.56.22 Bo Kullmar SYSOP <1789> Mottagare: Z80 Kommentar till text: 922 av Kent Jönsson <5924> Ärende: OPEN ..... AS FILE X Matrin frågar kanske efter ABC800 eftersom han har ställt en del frågor i ABC800 mötet? ( Text 923 ) ( Text 924 ) 1987-08-05 10.00.23 Martin Lundahl <5254> Mottagare: Z80 Kommentar till text: 921 av Kent Jönsson <5924> Ärende: RUN i assembler => SVAR Jag glömde tala om att jag har en ABC806:a. /Martin ( Kommentar i text 925 av Kristoffer Eriksson <5357> ) ( Kommentar i text 926 av Lars Gjörling <6825> ) ( Text 924 ) ( Text 925 ) 1987-08-05 23.19.10 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 924 av Martin Lundahl <5254> Ärende: RUN i assembler => SVAR Du bordeha ställt dina två frågor i det möte som är avsett för den dator frågorna gäller. Du har fortfarande möjlghet att i efterhand flytta inläggen till 800-mötet. Först återser du det inlägg du vill flytta, och sen ger du flytta-kommandot. ( Text 925 ) ( Text 926 ) 1987-08-06 00.54.28 Lars Gjörling <6825> Mottagare: Z80 Kommentar till text: 924 av Martin Lundahl <5254> Ärende: RUN i assembler => SVAR På min 806:a fungerar det här: Om man vill kunna göra RUN på ett BASIC-program, som ligger i minnet, via assembler, kan man lägga den här lilla snutten någonstans i minnet och anropa den: START LD DE,(16605) PUSH DE LD HL,PAR RET PAR DEFB 13 END START Mvh Lars ( Kommentar i text 927 av Kristoffer Eriksson <5357> ) ( Text 926 ) ( Text 927 ) 1987-08-09 02.01.41 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 926 av Lars Gjörling <6825> Ärende: RUN i assembler => SVAR Den metoden har den lilla nackdelen att den endast fungerar på just 806, och inte på 800 eller 802. Jag skulle då inte vilja göra ett program jag inte kan ta med mig till en annan 800-modell. Den rätta metoden är förstås att lägga ned lite mer arbete på att hitta den adress som motsvarar 16605 i alla modeller. 16605 är adressen till tabellen med kommandoexekveringsrutiner, och den ligger omedelbart efter tabellen med kommandonas namn. Den tabellen slutar med "RESUME"<255>, som man kan söka igenom Basic-prommen efter, utan allt för stora problem. ( Kommentar i text 928 av Lars Gjörling <6825> ) ( Text 927 ) ( Text 928 ) 1987-08-10 00.36.22 Lars Gjörling <6825> Mottagare: Z80 Kommentar till text: 927 av Kristoffer Eriksson <5357> Ärende: RUN i assembler => SVAR Jag visste att det bara fungerar på 806-an, det var därför jag sär- skilt poängterade att det fungerade på MIN 806-a. Det var ju inte fråga om ett program, som sändes in till programbank- en, utan bara ett svar till Martin L., som tidigare hade meddelat att han hade en 806-a. Jag ville bara ge en kort lösning på HANS problem. Mvh Lars ( Text 928 ) ( Text 929 ) 1987-08-13 16.47.42 Mattias Ericson <6615> Mottagare: Z80 Ärende: LOOPAR En kompis undrar varför följande program inte fungerar d.v.s loopa ett antalgånger och seda återvända till basic när HL=0 ORG 64000 LOOP LD HL,1000 DEC HL JR NZ,LOOP RET END 64000 /Mattias ( Kommentar i text 930 av Harald Nautsch <4479> ) ( Kommentar i text 931 av Kjell Enblom <5575> ) ( Kommentar i text 932 av Peter Thärning <3707> ) ( Text 929 ) ( Text 930 ) 1987-08-13 18.27.41 Harald Nautsch <4479> Mottagare: Z80 Kommentar till text: 929 av Mattias Ericson <6615> Ärende: LOOPAR DEC på ett 16-bitarsregister påverkar inga flaggor. Gör så här, så funkar det: org 64000 ld hl,1000 loop dec hl ld a,h or l jr nz,loop ret end 64000 ( Text 930 ) ( Text 931 ) 1987-08-13 18.31.22 Kjell Enblom <5575> Mottagare: Z80 Kommentar till text: 929 av Mattias Ericson <6615> Ärende: LOOPAR DEC BC DEC DE DEC HL "These one byte commands do not affect the status flags." Z80 Instruction handbook av Wadsworth /kjell-e ( Kommentar i text 933 av Kristoffer Eriksson <5357> ) ( Text 931 ) ( Text 932 ) 1987-08-14 20.30.48 Peter Thärning <3707> Mottagare: Z80 Kommentar till text: 929 av Mattias Ericson <6615> Ärende: LOOPAR Som skrivet är så påverkar inte DEC xx några flaggor, men även om instruktionen gjorde det så skulle inte programmet fungera eftersom JR NZ hoppar tillbaka till LD HL vilket gör att HL aldrig kommer minskas till mindre än 999. M.a.o. så skall labeln LOOP stå framför DEC HL istället. ( Text 932 ) ( Text 933 ) 1987-08-15 03.08.33 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 931 av Kjell Enblom <5575> Ärende: LOOPAR "two byte commands" ska det väl stå? (Nu står det "one byte...") ( Kommentar i text 935 av Harald Nautsch <4479> ) ( Text 933 ) ( Text 934 ) 1987-08-15 11.56.50 Johan Olofsson <5809> Mottagare: Z80 Ärende: ASM.BAC i TEXT/ASMKURS Vad gör egentligen detta program? Vem har gjort programmet (inget FileID-block i monitorn)? Kan det laddas/köras/användas till något??? ( Text 934 ) ( Text 935 ) 1987-08-16 16.58.20 Harald Nautsch <4479> Mottagare: Z80 Kommentar till text: 933 av Kristoffer Eriksson <5357> Ärende: LOOPAR Fel, dessa instruktioner tar bara upp en byte. ( Kommentar i text 936 av Kristoffer Eriksson <5357> ) ( Text 935 ) ( Text 936 ) 1987-08-20 00.33.06 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 935 av Harald Nautsch <4479> Ärende: LOOPAR Jaså, "one byte" syftfade på maskinkoden. Eftersom det som disku- terades var instruktioner som behandlade två-bytes data trodde jag det var något misstag. ( Text 936 ) ( Text 937 ) 1987-08-25 00.26.21 Johan Olofsson <5809> Mottagare: Z80 Ärende: Blåbär... Jag har nu för första gången i mitt liv lyckats få en Z80-assembler att fungera. Anledningen till att det dröjt ända till nu är, förutom latmasken, att Z80 saknar ordenlig relativ-adressering. Men när jag väl satte igång så visade det sig att jag är osäkrast på hur man lämpligast utför 16-bits operationer. Nu måste jag fråga er som är lite äldre i gamet om råd: - Hur bör man jämföra innehållet i 16-bits register? - Hur bör man inkremera en 16-bits variabel i arbetsminnet? Exempel: COMPARE:EQU * ; jämför innehållet i HL och DE registren, sätt Z-flag ;Version 1 LD A, D CP H RET NZ LD A, E CP L A har osäkert innehåll RET ;Version 2 ; PUSH HL A nollställs ; XOR A ; SBC HL, DE ; POP HL ; RET *H Interupt-rutiner *E ; TICK0: EQU * INCREMERA SINCE MED KLOCKAN PUSH AF PUSH HL ; LD HL, (SINCE) Räkna upp Since INC HL OBS inga flaggor ändras! ; LD A, H ÄR Since = 0 nu ??? OR L JR Z, EXIT (Since får inte "slå över".) LD (SINCE), HL Lagra annars tillbaka Since ; EXIT: POP HL POP AF JPTICK: JP TICK ; ( Kommentar i text 938 av Björn Linderson <5829> ) ( Kommentar i text 944 av Kristoffer Eriksson <5357> ) ( Text 937 ) ( Text 938 ) 1987-08-25 01.55.25 Björn Linderson <5829> Mottagare: Z80 Kommentar till text: 937 av Johan Olofsson <5809> Ärende: Blåbär... Öka minnesadress (16 bittar) med 1 LD HL,(adress) INC HL LD (adress),HL Klart.... Taskig uppsättning med relativa hopp?? Det kan jag nog inte godkänna... (sitter med "PROGRAMMING THE Z80" i tassen...) JR nn JR cc nn cc kan vara en av : NZ, Z, NC, C nn är det antal BYTE frammåt / bakåt som den skall hoppa. ( Kommentar i text 939 av Björn Linderson <5829> ) ( Kommentar i text 941 av Johan Olofsson <5809> ) ( Text 938 ) ( Text 939 ) 1987-08-25 01.57.16 Björn Linderson <5829> Mottagare: Z80 Kommentar till text: 938 av Björn Linderson <5829> Ärende: Blåbär... OOPS! Glömde.... DJNZ nn Decrement Jump No Zero - Minska B med ett,testa om noll, och om inte noll, hoppa. Instruktionsuppsättningen är trots allt ganska normal... ( Text 939 ) ( Text 940 ) 1987-08-25 08.29.33 Anders Johnson <4001> Mottagare: Z80 Ärende: Assemblerkurs? Känner någon till någon Z80-orienterad assemblerkurs som börjar i stockholmstrakten i höst? Jag har bläddrat i studieförbundens kataloger utan att finna någon. ( Kommentar i text 952 av Curt Rehnborg <1121> ) ( Text 940 ) ( Text 941 ) 1987-08-25 19.11.05 Johan Olofsson <5809> Mottagare: Z80 Kommentar till text: 938 av Björn Linderson <5829> Ärende: Taskig uppsättning relativa hopp - NEJ, Taskigt med relativa JUMPs, CALL, och LoaD. Relativa CALLs saknas ju faktiskt helt och hållet! Möjligheten att adresser med IX eller IY plus en 8-bits offset är naturligtvis en stor förbättring mot Intel-8080, men det ger INGEN praktisk möjlighet att ladda och lokalisera PROGRAM-delar oberoende av varandra. Åtminstone 12 bits offset hade behövts! Så vitt jag förstår måste det krävas en rätt så komplicerad "LOADER" för att ladda assemblerad Z80-kod om man inte redan vid assembleringen kan _fixera_ alla adresser! Därför torde nästan alla Z80-pgm göras så. Naturligtvis sparar processorn _tid_ på att slippa addera adress-offset med innehåll i något adress-register, men det blir ju besvärligt att se till att rutiner _inte kolliderar_ med varandra. Z80 funkar alltså bra om man har ETT program som ska köras kontinuerligt, eller om man har många program som _vart och ett_ fyller upp hela minnet med kod och variabler. ( Kommentar i text 942 av Björn Linderson <5829> ) ( Text 941 ) ( Text 942 ) 1987-08-26 00.51.48 Björn Linderson <5829> Mottagare: Z80 Kommentar till text: 941 av Johan Olofsson <5809> Ärende: Taskig uppsättning relativa hopp - NEJ, Hmm... LD relativt???? var hittar du det i någon processor?? Indirekta adresseringar, det kan jag vara med på, men relativa? (utöver IX och IY) som är special... Monroe är en Z80-dator, som kör FLER än ett program, och i den maskinen så hamnar inte programmen alltid på samma plats, utan måste vara relativt adresserade. (även basic-tolken) Visst går det att göra det relativt, men å andra sidan, så kanske inte Z80:an är direkt avsedd för det som större processorer måste kunna i och med den större minnesarean och de längre inmstruktionskoderna.. ( Kommentar i text 943 av Anders Franzén <5258> ) ( Kommentar i text 948 av Kristoffer Eriksson <5357> ) ( Text 942 ) ( Text 943 ) 1987-08-26 20.24.50 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 942 av Björn Linderson <5829> Ärende: Taskig uppsättning relativa hopp - (NEJ) JA! I vissa maskiner använder man ett basregister. Detta basregister talar t ex om var programmet börjar i minnet. En instruktion typ LOAD adresserar en area i minnet som beräknas mha basadress och avstånd från basadressen. Sålunda använder man då relativ adressering vid LOAD. ( Text 943 ) ( Text 944 ) 1987-08-26 22.37.13 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 937 av Johan Olofsson <5809> Ärende: Blåbär... Båda versionerna för 16-bittsjämförelse är rätt, fast observera att i den ena räknade du DE-HL och i den andra HL-DE. Ökningen är också rätt om variabeln inte får slå om. Om inte förbehållet vore kunde man ev göra LD HL,Since INC (HL) JR NZ,Exit INC HL INC (HL) i syfte att tjäna några få maskincykel i alla de fall då bara den låga byten påverkas, jämfört med att hämta in hela variabeln i ett dubbelregister. Det är bara att acceptera att så här jobbigt är det. Z80 är trots allt bara en 8-bittars processor, inte en 16-bittars. De 16-bitts-instruktioner som finns är väl mest avsedda att hantera adresser typ pekare. Apropå relativ adressering, eller brist på sådan, och laddare, så finns det de som gjort sig relokerande laddningsrutiner, om jag får "skryta" lite... Om man för resten tittar på hyffsat större maskiner med minnesmappning, så minskar åter behovet av konsekvent relativadressering, särskilt PC-relativ, eftersom alla program kan placeras på en privat virtuell adress som den kompilerats för från början. ( Kommentar i text 945 av Johan Olofsson <5809> ) ( Text 944 ) ( Text 945 ) 1987-08-27 01.52.27 Johan Olofsson <5809> Mottagare: Z80 Kommentar till text: 944 av Kristoffer Eriksson <5357> Ärende: INC av 16-bits variabel Just ett sådant svar önskade jag mig. I den aktuella rutinen är det högst väsentligt att kunna spara MOP-ar, så jag har gjort en grundlig jämförelse av alternativen: (Först står hur många bytes OP-koden tar upp, sedan hur lång tid exekveringen tar.) Kristoffers förslag Min ursprungliga kod ------------------- -------------------- 3 10 LD HL, SINCE 3 16 LD HL, (SINCE) 1 11 INC (HL) 1 6 INC HL 2 12/7 JR NZ, T_EXIT 1 4 LD A, H 1 4 OR L 1 6 INC HL 2 12/7 JR Z, T_EXIT 1 11 INC (HL) 3 16 LD (SINCE), HL 2 12/7 JR NZ, T_EXIT 11 = summa 1 11 DEC (HL) 1 6 * DEC HL 1 11 * DEC (HL) 14 = summa Resultat: --------- (med H och L avses nu högre och lägre byte av _ SINCE _ !) Kr. min --- --- Om L<255 33 53 OBS 99,25% av anropen hit Om L=255, H<255 57 53 Om L=255, H=255 80 32 Om H=255 ej medf. dec(L) 63 - samt att 99,25% av anrop tar 33 T Jag väljer därför att utgå från Kristoffers förslag, och _inte_ räkna ner den minst signifikanta byten i variabeln. Till rutinen hör dessutom PUSH, POP och JP, som tar 52 tidsenheter. Därmed har rutinen blivit 20% snabbare. ( Kommentar i text 946 av Johan Olofsson <5809> ) ( Kommentar i text 950 av Kristoffer Eriksson <5357> ) ( Text 945 ) ( Text 946 ) 1987-08-27 01.52.58 Johan Olofsson <5809> Mottagare: Z80 Kommentar till text: 945 av Johan Olofsson <5809> Ärende: INC av 16-bits variabel beklagar den misslyckade utskriften! ( Kommentar i text 961 av Patric Ljung <5455> ) ( Text 946 ) ( Text 947 ) 1987-08-27 20.50.05 Johan Olofsson <5809> Mottagare: Z80 Ärende: Optioner till ASMZ Jag har försökt räkna ut vad optionerna till ASMZ (vers 4.36) kan betyda. Det skulle vara roligt om någon kunde rätta mig. (Att assemblern verkligen är intresserad av de här optionerna har jag kontrollerat med trial-and-error-metoden.) Assemblern anropas med "AS, " Z Zilogs mnemonics D listning på skärm L listning på printer O objektfil skrivs C kontroll att alla symboler definieras innan de används U konvertering till Intel-mnemonics T utskrift av kompileringstidpunkten på listan ( Text 947 ) ( Text 948 ) 1987-08-27 23.47.13 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 942 av Björn Linderson <5829> Ärende: Taskig uppsättning relativa hopp Det hittar man i t ex M68000. Där finns både "Program Counter Relative with Offset" och "with Index and Offset". Indexet är då valfritt register. ( Text 948 ) ( Text 949 ) 1987-08-29 17.24.52 David Andersson <5201> Mottagare: Z80 Kommentar till text: 915 av Hans Holmberg <2838> Ärende: Z80 slump Som Lars Görling säger, man ska vara försiktig med slumptalsalgoritmer. I ABC80 får vi acceptera att det finns inget enkelt sätt att få ett slumptal som kan ha fler än 128 olika värden (register R). Försöker man mixtra med det värde man får från R så kan man inte få flera värden eller bättre fördelning av värdena, det kan mest bara bli tvärt om. Det säkraste är att ha en pseudoslumptalsgenerator typ 47, 137 eller så. Eller varför inte använda basic-tolkens slumptalsgenerator. I spel (ej kortspel) där slumpfördelning inte är så noga kan man använda register R rakt av. T ex HOPPERT gör så. ( Text 949 ) ( Text 950 ) 1987-08-29 23.42.14 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 945 av Johan Olofsson <5809> Ärende: INC av 16-bits variabel Varför får inte SINCE slå om? Det kanske skulle räcka med att sätta en flagga när den slår om, och sedan räkna vidare, så slipper du backa SINCE när du upptäcker att det gått för långt. Eller den höga byten kan agera flagga, så att när den är 255, betyder det att räknaren har nått taket (i stället för när hela SINCE är 65535), så slipper du backa båda byte:arna när du upptäcker att det gått för långt. ( Kommentar i text 951 av Johan Olofsson <5809> ) ( Text 950 ) ( Text 951 ) 1987-08-30 00.04.27 Johan Olofsson <5809> Mottagare: Z80 Kommentar till text: 950 av Kristoffer Eriksson <5357> Ärende: INC av 16-bits variabel Faen, att du alltid ska uttrycka allting så mycket bättre! Det var ju det jag tänkte på, att Since höga byte kan vara flagga. Man tjänar väldigt många maskincykler på att låta den låga byten bara snurra på. ( Text 951 ) ( Text 952 ) 1987-08-30 18.55.35 Curt Rehnborg <1121> Mottagare: Z80 Kommentar till text: 940 av Anders Johnson <4001> Ärende: Assemblerkurs? Hör efter med Lexicon AB i Danderydåi, dom har assemblerkurser på programmet. ( Text 952 ) ( Text 953 ) 1987-08-31 23.10.15 Kurt Malm <3065> Mottagare: Z80 Ärende: Nya instruktioner Har nu hittat 101st. icke offesiella instuktioner i Z80. Fungerar på zilog och sharp chips. 46st. Berör IX-reg. Lika många IY. 8 bits instr. IXh-IYh (hög) motsvarar reg. H IXl-IYl (hög) motsvarar reg. L 8 st. Shift Left (SL) + 1 . 1 st. Status port (C). IN S,(C). Flaggar för status rör ej Carry. Utan att ladda något register. Kod 237,112D ED,70H ( Kommentar i text 954 av Stefan Lennerbrant <4364> ) ( Text 953 ) ( Text 954 ) 1987-09-01 18.55.26 Stefan Lennerbrant <4364> Mottagare: Z80 Kommentar till text: 953 av Kurt Malm <3065> Ärende: Nya instruktioner Menar du att dessa går på *alla* Z80..? Det låter lite otroligt - vanligtvis är det lite dumt att använda "extra"-instruktioner då de inte passar alla processorer. ( Kommentar i text 955 av Kurt Malm <3065> ) ( Kommentar i text 956 av Kjell Svensson <5318> ) ( Text 954 ) ( Text 955 ) 1987-09-04 22.10.22 Kurt Malm <3065> Mottagare: Z80 Kommentar till text: 954 av Stefan Lennerbrant <4364> Ärende: Nya instruktioner Ja troligtvis på alla 'second suorse'. Instuktionerna i sig är väl inte särskilt användbara. Det kostar ju en byte extra bara för val av IX eller IY. SL Shift Left får in en etta i bit noll. IN flaggorna,(C) står omskriven i en 'lärobok'. Författaren måste ha haft en nanocomputer då den är omtalad flera gånger. (minns ej titteln) Men om man vill dölja msk.kod går det utmärkt att lura disassemblers. Processorn kan ju inte säga ERR 11, oftast gör den nop. (PC=PC+1) ( Text 955 ) ( Text 956 ) 1987-09-05 08.00.24 Kjell Svensson <5318> Mottagare: Z80 Kommentar till text: 954 av Stefan Lennerbrant <4364> Ärende: Nya instruktioner Är det någon som har hittat någon instruktion som går på en Z80 men inte på en annan? Jag har provat en del av de koder som Kurt har hittat och alla har fungerat hitills. H/Kjell ( Kommentar i text 957 av Peter Thärning <3707> ) ( Text 956 ) ( Text 957 ) 1987-09-05 19.30.57 Peter Thärning <3707> Mottagare: Z80 Kommentar till text: 956 av Kjell Svensson <5318> Ärende: Nya instruktioner Gör ett program som testar koderna och om möjligt rapporterar vilka som inte fungerar om så är fallet. Det kan kanske bli en skojig undersökning. ( Text 957 ) ( Text 961 ) 1987-10-07 20.00.17 Patric Ljung <5455> Mottagare: Z80 Kommentar till text: 946 av Johan Olofsson <5809> Ärende: INC av 16-bits variabel, ojoj, allmän kommentar Ojojoj, en sån massa olika metoder, men som sagt, programmering är konst. Jag skall inte lämna bidrag, och mina egna tankar blir helt virriga. Skall jag lyckas skriva litet assembler idag får jag nog sluta nu. (Dum kommentar) ( Text 961 ) ( Text 962 ) 1987-10-08 01.02.26 Arne Hartelius <2731> Mottagare: Z80 Ärende: Rutin för sökning av text (ABC80) Hur skrivs en rutin som söker efter text i minnet ? Om jag själv kan peka på en text och vill ha fram adressen till första förekomsten av en matchande text, i t ex någon av dosbufferterna, dvs från adress 62720, hur skriver jag då ? ( Kommentar i text 963 av Staffan Lantz <6650> ) ( Text 962 ) ( Text 963 ) 1987-10-08 23.30.57 Staffan Lantz <6650> Mottagare: Z80 Kommentar till text: 962 av Arne Hartelius <2731> Ärende: Rutin för sökning av text (ABC80) Här kommer ett fungerande sökprogram för ABC80. Håll till godo. ;Program: HITTA Datum:871008 Version 1.0 ; HL skall peka på texten, DE skall peka på ett ord ; BC=sök från position i HL. ; Programmet söker ord i text. Satt Z-flag=ord hittat. ; Texten och ordet skall båda avslutas med CR. TITLE HITTA ORG 64000 ; VARIABLER OCH KONSTANTER LÄNGD EQU 80 ORD DM "hitta",13 INTEXT DS LÄNGD ; HUVUDPROGRAM START LD HL,INTEXT LD BC,LÄNGD CALL 5 ;Läs in en textrad. LD HL,INTEXT ;Hl pekar på texten. LD DE,ORD ;De pekar på ordet som skall letas upp. LD BC,0 ;Sök från 1:a position (0,1,2,...) CALL INSTR ;Sök. BC blir den position där ordet hittas. INC BC LD H,B LD L,C RET Z ;Om ordet hittat hl<>0. LD HL,0 ;Ordet ej hittat hl=0. RET ;-------------------------------------------------------------------------- INSTR ADD HL,BC ;Sätt rätt startkolumn CALL SÖKALLA RET SÖKALLA PUSH HL PUSH DE PUSH BC CALL STRSCN POP BC POP DE POP HL RET Z ;Zero=Ord hittat. INC HL INC BC ;Öka pekarna LD A,13 CP (HL) JR NZ,SÖKALLA CP A ;Non Zero=Ord ej hittat. RET ;-------------------------------------------------------------------------- STRSCN LD A,(DE) ;Sökrutin: Jämför ordet endast med 'första' kolumn. CP 13 RET Z ;Samma, om CR är ordet hittat. CP (HL) RET NZ ;Ej samma, ordet ej hittat i den här kolumnen. INC HL INC DE ;Öka pekarna. INC BC JR STRSCN END START ( Kommentar i text 968 av Anders Franzén <5258> ) ( Text 963 ) ( Text 964 ) 1987-10-10 03.15.55 Arne Hartelius <2731> Mottagare: Z80 Ärende: Öppna fil i assembler Jag vill öppna en fil, egentligen bara för att få reda på vilken fysisk sektor den ligger på, för att senare kunna fibbla med direktaccess av sagda fil. Filens namn FOO.BAR ska ligga hårdkodat i programet. Drivnumret har jag själv bestämt innan. Hur göra detta ? Observera att jag egentligen inte behöver öppna filen eftersom den ändå ska stängas pronto när jag fått reda på sektornumret för headern, men jag antar att koden måste bli mycket enklare och kortare om jag använder basicen och dosets rutiner än om jag ska ut i biblioteket för att leta själv. ( Kommentar i text 965 av Arne Hartelius <2731> ) ( Text 964 ) ( Text 965 ) 1987-10-10 12.50.54 Arne Hartelius <2731> Mottagare: Z80 Kommentar till text: 964 av Arne Hartelius <2731> Ärende: Öppna fil i assembler Glömde bort felhanteringen. Om Öppningen lyckas vill jag bara fortsätta i assemblerprogramet, om den misslyckas är det bra om basicen kan ta hand om felutskrift, eftersom jag ändå vill tillbaka till kommandomod då. ( Kommentar i text 966 av Staffan Lantz <6650> ) ( Kommentar i text 972 av Kristoffer Eriksson <5357> ) ( Text 965 ) ( Text 966 ) 1987-10-10 15.25.10 Staffan Lantz <6650> Mottagare: Z80 Kommentar till text: 965 av Arne Hartelius <2731> Ärende: Öppna fil i assembler Använd HJÄLP1.MAC ! Mycket användbart. Finns i ABC80/ASMKOD. Hälsningar Staffan. ( Kommentar i text 967 av Arne Hartelius <2731> ) ( Text 966 ) ( Text 967 ) 1987-10-10 20.05.57 Arne Hartelius <2731> Mottagare: Z80 Kommentar till text: 966 av Staffan Lantz <6650> Ärende: Öppna fil i assembler Den är lite för svårläsbar för mig, dessutom är det tänkt att man ska ge filnamn med input där medan jag vill ha det hårdkodat i programet. Dessutom vill jag ha reda på sektornumret. Men det är just den där användningen av basicens rutiner jag efterlyser. ( Kommentar i text 969 av Anders Franzén <5258> ) ( Kommentar i text 973 av Staffan Lantz <6650> ) ( Text 967 ) ( Text 968 ) 1987-10-11 11.56.00 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 963 av Staffan Lantz <6650> Ärende: Rutin för sökning av text (ABC80) Kan du inte skicka in ditt program som en textfil till banken istället? Då vet man var den finns om man behöver den senare! ( Text 968 ) ( Text 969 ) 1987-10-11 12.03.32 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 967 av Arne Hartelius <2731> Ärende: Öppna fil i assembler Varför vill du ha reda på var på skivan filen ligger? Om du använder direktfils- tekniken kan man ange relativt sektornr i filen och DOS läser in önskad sektor. Då behöver man inte bry sig om var på skivan datat ligger. Jag utgår ifrån att du kör på ABC80 och jag antar att du känner till direktfils- tekniken. Man gör ett CALL(??,n) och då hamnar önskad sektor i Q0¤. Variabeln Q0¤ har "pokats om" så dess egentliga värde är lika med en DOS-buffer. Slutligen, varför döper man en fil till FOO.BAR??? ( Kommentar i text 970 av Arne Hartelius <2731> ) ( Kommentar i text 971 av Björn Linderson <5829> ) ( Text 969 ) ( Text 970 ) 1987-10-11 17.46.16 Arne Hartelius <2731> Mottagare: Z80 Kommentar till text: 969 av Anders Franzén <5258> Ärende: Öppna fil i assembler OK, vare sig jag öppnar filen bara för att ta reda på var den ligger, eller öppnar den för att använda den så behöver jag veta hur man gör detta i assembler. ( Kommentar i text 977 av Anders Franzén <5258> ) ( Text 970 ) ( Text 971 ) 1987-10-11 21.59.51 Björn Linderson <5829> Mottagare: Z80 Kommentar till text: 969 av Anders Franzén <5258> Ärende: Öppna fil i assembler FOO.BAR... Det är den allmänna beteckningen på en kvalificerad slaskfil som kan raderas vid behov, eftersom den inte fyller någon annan funktion än just slask. Likaså döper man filer som är ENORMT STORA, och innehåller kanske viktiga data, till VRAAAAAL.DAT, eftersom dattan saknar ÅÄÖ (om man har annan än ABC) ( Kommentar i text 980 av Nils Hammar <4341> ) ( Text 971 ) ( Text 972 ) 1987-10-11 22.55.57 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 965 av Arne Hartelius <2731> Ärende: Öppna fil i assembler Den här frågan tycker jag hör bättre hemma i antingen ABC80- eller 800-mötet (eller MSDOS?) där du kan få hjälp av experter på de maskin det gäller. Frågan rör ju operativsystemet mer än själva processorn. I varje fall glömde du tala om vilken maskin det gäller. Jag kan berätta hur man kan göra i ABC800. Eftersom du redan när programet skrivs vet både filnamn och drive, och att det är en fil på disk, och du inte ska använda Basicens I/O-funktioner, är det lika bra att gå direkt på DOS:ets rutiner. Sålunda placerar man drive-numret i register C, dosbuffertens nummer multiplicerat med 16 i B, adresse till filens namn (11 tecken utan punkt) i DE och anropar OPEN i DOS:et (24600). Sen avläser man filens första sektor (RIB, den som håller reda på filens övriga sektorerna) på adress 64776 (två bytes). Till sist stänger man filen genom att anropa CLOSE (24609). B har kvar värdet från förra anropet så den behöver man inte ladda om. Visar det sig att filen inte finns kommer man att få sann carry vid retur från OPEN. Uppstår något annat fel, görs hopp till den DOS-felhaneringsvektor som gäller för det felet. Denna bör du i förväg ha ställt till att peka på din egen felhanteringsrutin som återställer SP och t ex anropar basicens felhantering. Sen tillåter jag mig att betvivla att du klarar av att hitta de andra sektorena i filen, även om det med stor möda är möjligt. ( Kommentar i text 976 av Bert Holgersson <560> ) ( Kommentar i text 984 av Kristoffer Eriksson <5357> ) ( Text 972 ) ( Text 973 ) 1987-10-12 20.04.10 Staffan Lantz <6650> Mottagare: Z80 Kommentar till text: 967 av Arne Hartelius <2731> Ärende: Öppna fil i assembler Så här kan du använda HJÄLP1.MAC: INCLUDE HJÄLP1.MAC FILNAMN DM "FOO.DAT",13 FILB DS 15 ERROR RET START OPEN FILNAMN,FILB,ERROR CLOSE FILB,ERROR END START Därefter finns filens header-block i DOS-buff 0. Kan det hjälpa dig? Hälsningar Staffan. ( Text 973 ) ( Text 975 ) 1987-10-12 19.34.57 Lars Michael Jogbäck <5862> Mottagare: Monitor Flyttad till: Z80 av Lars Michael Jogbäck Ärende: Assemblerkurs Skulle inte det bli en assemblerkurs i mötet Z80? Hur blev det med den. Jag är mycket intresserad av att lära mig assembler på abc80/800. mvh /LMJ ( Kommentar i text 978 av Bo Kullmar SYSOP <1789> ) ( Text 975 ) ( Text 976 ) 1987-10-12 21.48.07 Bert Holgersson <560> Mottagare: Z80 Kommentar till text: 972 av Kristoffer Eriksson <5357> Ärende: Öppna fil i assembler Fungerar på samma sätt i ABC80 med UFD-dos. Vad menar du med dina två sista rader i inlägget ? Om "man inte skulle klara det själv", så finns det ju anrop i DOS för att läsa de andra sektorena i filen också. ( Eller kommer jag ihåg så ILLA fel ) Hälsningar Bert ( Kommentar i text 981 av Nils Hammar <4341> ) ( Kommentar i text 983 av Kristoffer Eriksson <5357> ) ( Kommentar i text 985 av Kristoffer Eriksson <5357> ) ( Text 976 ) ( Text 977 ) 1987-10-12 21.48.50 Anders Franzén <5258> Mottagare: Z80 Kommentar till text: 970 av Arne Hartelius <2731> Ärende: Öppna fil i assembler Att öppna en fil i assembler är lätt om man använder tolkens rutiner: LD IX,AREA LD HL,FILNAMN LD A,TYP_AV_OPEN CALL 0:62 AREA är en 15 bytes lång area, FILNAMN är en adress till ditt filnamn avslutat med CR (kan innehålla enhet, t ex DR1:) och TYP_AV_OPEN är en siffra 0-4 där 0 = OPEN 1 = PREPARE 2 = OPEN default BAC eller BAS 3 = PREPARE default BAS 4 = PREPARE default BAC Vill man kunna hantera fel själv kan man göra som i TED tex. ( Text 977 ) ( Text 978 ) 1987-10-13 08.16.45 Bo Kullmar SYSOP <1789> Mottagare: Z80 Kommentar till text: 975 av Lars Michael Jogbäck <5862> Ärende: Assemblerkurs Det rann ut i sanden, varför kommer jag inte ihåg, men det var väl för att MSG inte är ett så bra medium för detta. ( Kommentar i text 979 av Lars Michael Jogbäck <5862> ) ( Text 978 ) ( Text 979 ) 1987-10-13 15.58.04 Lars Michael Jogbäck <5862> Mottagare: Z80 Kommentar till text: 978 av Bo Kullmar SYSOP <1789> Ärende: Assemblerkurs Är det någon som vet var man kan lära sig assembler till ABC800 (80) Självstudiekurs från grunden. Eller möjligt vis 8088 assembler. Finns det böcker? Finns de på svenska? Var kan man köpa dom? Vad kostar dom? Frågorna är många kan någon svara på någon av frågorna så är jag tacksam mvh /LMJ ( Text 979 ) ( Text 980 ) 1987-10-14 20.53.04 Nils Hammar <4341> Mottagare: Z80 Kommentar till text: 971 av Björn Linderson <5829> Ärende: FOO.BAR M.M Det finns även andra alternativ t.ex. GLÖKEN.LK/GLOKEN.ULK FAR_SLANGAS_BORT.SKIT (Vax vms) och mång fler varianter fantasin sätter begränsningar! använd dock bara ett uttryck samtidigt annars får man ett helsicke när man skall städa! ( Text 980 ) ( Text 981 ) 1987-10-14 20.56.46 Nils Hammar <4341> Mottagare: Z80 Kommentar till text: 976 av Bert Holgersson <560> Ärende: UFD-dos i ABC80 Var finns UFD-DOS till ABC80 och hur mycket kostar det? Har själv dos till ABC832 i min abc80 (monterat i tangentbordet,men jag har en 806:a också!) eller menar du UFD-DOS till abc800 så är¤jag med på vad du har skrivit! ( Kommentar i text 982 av Bert Holgersson <560> ) ( Text 981 ) ( Text 982 ) 1987-10-15 07.50.02 Bert Holgersson <560> Mottagare: Z80 Kommentar till text: 981 av Nils Hammar <4341> Ärende: UFD-dos i ABC80 Finns i programbanken. Kostnad: teleräkningen. Hälsningar Bert ( Text 982 ) ( Text 984 ) 1987-10-16 03.03.30 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 972 av Kristoffer Eriksson <5357> Ärende: Öppna fil i assembler Fortsättning angående felhanteringen: DOS:et arbetar lite speciellt med felsituationer. När det inträffar fel med koderna 35-43, hoppar DOS direkt till någon felhanterings- rutin för detta fel, och man får alltså ingen retur från anropet med indikering i A på eventuellt fel. Den felrutin som Basic använder (åtminstone på 800), återställer SP till det läge den hade vid inhopp i drivrutinen för det enhetsnamn man använt. Eftersom den metod jag beskrivit inte anropar DOS:et genom denna drivrutin, vore det katastrof att hamna i denna felrutin vid fel. Rutinen mixtrar också med bit 5 i drivenummerbyten i den aktuella filens LFT, som den hittar genom att titta i IX-blockets uppgifter som inte heller finns tillgängliga vid direktanrop till DOS. Du kan disassemblera den rutin som felhanteringspekaren är inställd på normalt och se vad den gör (och sen kan du kanske strunta i den...). Att frånen egen felrutin sen hoppa in i basicens felhantering är inte svårt; det finns ju anropspunkter för det: SOFTNOCO, SOFTCONT och RST.ERR, och något liknande lär väl finnas i ABC80. ( Text 984 ) ( Text 985 ) 1987-10-16 03.05.59 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 976 av Bert Holgersson <560> Ärende: Öppna fil i assembler Jo visst finns det såna anrop. Det vara bara det att Arne försöker uppenbarligen göra på något annat vis, eftersom han frågar efter numret på första sektorn bara. ( Kommentar i text 986 av Kjell Svensson <5318> ) ( Text 985 ) ( Text 986 ) 1987-10-16 14.57.45 Kjell Svensson <5318> Mottagare: Z80 Kommentar till text: 985 av Kristoffer Eriksson <5357> Ärende: Öppna fil i assembler Man behöver väl inte öppna filen för att hitta första sektorn. Det räcker väl att gå via skivans bibliotek,där finns pekare till var filen finns. Man kan ju studera libprogram som talar om hur stora filerna är. Där används väl den metoden. H/Kjell ( Kommentar i text 987 av Bert Holgersson <560> ) ( Text 986 ) ( Text 987 ) 1987-10-16 18.35.14 Bert Holgersson <560> Mottagare: Z80 Kommentar till text: 986 av Kjell Svensson <5318> Ärende: Öppna fil i assembler Nej, men om man öppnar filen så kan man ju överlåta letandet åt inbyggda rutiner. Så slipper man skriva kod för sådant som det redan finns kod för. Mvh BER ( Text 987 ) ( Text 988 ) 1987-10-25 15.56.38 Sture Engström <7237> Mottagare: Z80 Ärende: HEX till DEC Hur omvandlar man hexadecimal till decimal tal med maskinkod ?. Hexa talet är på fyra byte. Jag blir mycke tacksam om någon kan svara idag. ( Kommentar i text 989 av Stefan Lennerbrant <4364> ) ( Text 988 ) ( Text 989 ) 1987-10-25 21.57.20 Stefan Lennerbrant <4364> Mottagare: Z80 Kommentar till text: 988 av Sture Engström <7237> Ärende: HEX till DEC In: DE pekar på hextalet Ut: HL=Talet, DE på byte före hextalet START: LD HL,0 LD B,4 INC DE : INC DE : INC DE IGEN: LD A,(DE) DEC DE SUB 48 CP 10 JR C,SIFFRA SUB 7 ; Bokstav A-F till siffra 10-15 SIFFRA: OR L ADD HL,HL ADD HL,HL ADD HL,HL ADD HL,HL DJNZ IGEN RET Hoppas detta fungerar - det skrevs i en hast och det går säkert att göra snabbare och kortare varianter. ( Kommentar i text 990 av Lars Gjörling <6825> ) ( Text 989 ) ( Text 990 ) 1987-10-26 01.37.03 Lars Gjörling <6825> Mottagare: Z80 Kommentar till text: 989 av Stefan Lennerbrant <4364> Ärende: HEX till DEC Nej det förslaget fungerar inte, det är flera tankefel i det. Men det här fungerar: START LD HL,0 LD B,3 IGEN LD A,(DE) ; DE skall peka på hextalet. CALL DECIMAL CALL MUL16 DJNZ IGEN LD A,(DE) CALL DECIMAL RET ; HL = talet ; DECIMAL SUB 48 CP 10 JR C,SIFFRA SUB 7 ; Bokstav A-F till siffra 10-15 SIFFRA OR L LD L,A RET ; MUL16 ADD HL,HL ADD HL,HL ADD HL,HL ADD HL,HL INC DE RET Mvh Lars ( Kommentar i text 991 av Björn Linderson <5829> ) ( Text 990 ) ( Text 991 ) 1987-10-26 22.26.41 Björn Linderson <5829> Mottagare: Z80 Kommentar till text: 990 av Lars Gjörling <6825> Ärende: HEX till DEC I det näst senaste (?) ABC-bladet skall det finnas en eller flera snuttar i mkod för att omvandla tal från en bas till en annan, som man anger. ( Kommentar i text 992 av Lars Gjörling <6825> ) ( Text 991 ) ( Text 992 ) 1987-10-28 16.55.34 Lars Gjörling <6825> Mottagare: Z80 Kommentar till text: 991 av Björn Linderson <5829> Ärende: HEX till DEC Även förslaget i mitt inlägg 990 kan lätt generaliseras till att gälla godtycklig bas. Om man skall omvandla en ASCII-sträng, som innehåller siffror (A-F... räknas också som siffror) av ett god- tyckligt tal i en godtycklig bas och med godtyckligt antal bytes till ett 16-bitars binärt tal (svaret får inte bli större), så kan man göra så här: IN: DE pekar på strängen B = antalet bytes C = basen (radix) UT: HL = 16-bitars binärt tal, som utgör svaret START LD HL,0 ; B = antalet bytes, C = basen IGEN CALL MUL_BAS ; Multiplicera HL med basen. LD A,(DE) ; DE pekar på in-strängen. CALL ASC_TAL ; Ascii --> tal. Addera till HL INC DE DJNZ IGEN RET ; Återgå med HL = resultatet. ; ASC_TAL SUB 48 ; Om 0-9, ascii --> tal 0-9. CP 10 JR C,SIFFRA SUB 7 ; Om A-F, ascii --> tal 10-15 SIFFRA ADD A,L ; Addera .......... JR NC,NOCARRY INC H NOCARRY LD L,A ; ...... A till HL. RET ; MUL_BAS PUSH BC ; HL skall multipliceras med basen PUSH DE LD B,C DEC B ; B laddas med basen minus 1 LD D,H LD E,L LOOP ADD HL,DE DJNZ LOOP ; Multiplikation genom upprepad ad- POP DE ; dition (en mycket klumpig metod, POP BC ; men basen är ju inte så stor). RET Mvh Lars ( Text 992 ) ( Text 993 ) 1987-10-29 21.34.43 Sture Engström <7237> Mottagare: Z80 Ärende: HEX till DEC Du Lars , Jag får inte ditt program att funka! Vad ja ville med första frågan var att omvandla fyra bytes tal (ex. AD F3 4B BC) till Decimalt. (ex. 12 34 56 78 90 fem byte) Programmet BINASC som står i ABC bladet 87.2 funkar, men den klara bara två byte. Föresten kan någon hjälpa mej hur man DIV / o MUL * stora tal i BCD-kod. Tack för in som visar intresse "DEC till HEX" inlägget. Mvh S.E. ( Kommentar i text 994 av Lars Gjörling <6825> ) ( Kommentar i text 996 av Kristoffer Eriksson <5357> ) ( Text 993 ) ( Text 994 ) 1987-10-30 00.42.56 Lars Gjörling <6825> Mottagare: Z80 Kommentar till text: 993 av Sture Engström <7237> Ärende: HEX till DEC Jaså det var ju en helt annan sak. I ditt inlägg 988 frågar du om hur man omvandlar ett hexadecimalt tal till decimalt. Både jag och Stefan Lennerbrant uppfattade detta som att du hade en ascii-text på 4 bytes med ett hexadecimalt tal lagrat tecken för tecken, och som du ville få omvandlat till ett 16-bitars tal. Vad BINASC i ABC-bl.87.2 gör är att omvandla ett 16-bitars binärt tal till en textsträng, där varje siffra får en egen byte. ASCBIN gör det omvända. Om jag förstår inlägg 993 rätt, så vill du ha en rutin, som omvand- lar ett 32-bitars binärt tal till ett decimalt, skrivet i BCD-form. Det vore kanske inte helt omöjligt att bygga ut BINASC till 32 bitar, men då får man en textsträng, där varje siffra får en egen byte. Om- vandlingen till BCD kan göras efteråt. Stämmer verkligen det exempel du ger? Jag har en räknedosa, som kan räkna med hex-dec-oct-bin på 32-bitars tal, och jag kan inte få det att stämma. Mvh Lars ( Text 994 ) ( Text 995 ) 1987-10-30 09.04.52 Sture Engström <7237> Mottagare: Z80 Ärende: DEC till HEX Nej , exempelet var bara att visa hur många byte det skulle ta för Hex o DEC. men jag kunnde skivet det med ord. jag är alldeles för lat för det. Nå BINASC programmet tycker jag är ett klurigt program att förstå. Skulle det hjälpa om manköpte räknare som klarar tal omvandling för att förstå och göra program i maskinspråk. Mvh S.E. ( Kommentar i text 997 av Lars Gjörling <6825> ) ( Text 995 ) ( Text 996 ) 1987-11-01 00.43.44 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 993 av Sture Engström <7237> Ärende: HEX till DEC Kandu förtydliga dig lite: Är det omvandling från binär form eller från hexadecimal textform till decimal textform du vill ha? Är det från binär form är det bara att hacka om den BINASC som fanns i Bladet lite grand. Jag har aldrig sysslat med räkning på BCD-tal, men kommer man inte på något bättre, går det ju alltid att låta datorn imitera det sätt man räknar på med papper och penna. När man multiplicerar binärt får man hålla reda på tre tal som vid start är A=Ena intalet, B=Andra intalet, R=Blir svaret och startar som 0. Sen kan man göra på två sätt. 1) Skifta talet A åt vänster en bit i taget tills alla bittar skiftats ut. Skifta även R ett steg åt vänster varje gång och för in nya nollor från höger. Vid varje skiftning trillar det ut en ny bit till vänster ur A, och varje gång det är en etta, adderar vi B till R. När bittarna i A ärslut har vi svaret i R. 2) Skifta talet A åt höger en bit i taget tills alla bittar skiftats ut. För man in nya nollor från vänster kan man avbryta redan när A=0. Om en etta trillar ut till höger adderar vi B till R. Skifta sen B ett steg åt vänster och för in en ny nolla från höger, och fortsätt med nästa skift av A. Vill man vara säker på att aldrig förlora en bit av resultatet måste R innehålla lika många bittar som A och B tillsammans. I metod 2 måste det även finnas plats att utöka B till denna längd. Vänsterskift är det samma som att dubblera ett tal, och högerskift är detsamma som en halvering. Det hela bygger på att A i tur och ordning multipliceras med en bitt från B, och varje delprodukt ackumuleras i R. Att multiplicera med en bitt är mycket enkelt, för den kan ju bara vara antingen 0 eller 1, och 0 * A = 0 samt 1 * A = A. En mycket kort multiplikationstabell alltså. Ska man nu multiplicera ett BCD-tal med ett vanligt binärt tal och få svaret i BCD kan man låta A vara det binära talet, och göra räkningen på B och R med ADD/ADC och DAA. Vänsterskift är ju detsamma som att talet adderas med sig självt, och Z80 har den inbyggda instruktionen DAA för att fixa BCD-addering. Ska man multiplicera två BCD-tal utan att omvandla till binära tal, kommer jag inte på annat än att skala upp det hela och skifta en BCD-siffra i taget och multiplicera en BCD-siffra i taget lämpligen via en 10 * 10 multiplikationstabell där resultatet bara är att slå upp. Lämpligen har man en särskild subrutin för multiplikation av en BCD-sträng med en BCD-siffra så blir det snyggt. Division går till på ett liknande sätt. ( Kommentar i text 998 av Sture Engström <7237> ) ( Text 996 ) ( Text 997 ) 1987-11-01 23.23.53 Lars Gjörling <6825> Mottagare: Z80 Kommentar till text: 995 av Sture Engström <7237> Ärende: DEC till HEX Du frågar om en räknare för talomvandling hjälper dej att förstå och göra maskinspråksprogram. Svar: Nej resp ja. Den hjälper dej inte att förstå mer, men den kan vara en hjälp när du gör program, därför att den kan göra vissa räkningar snabbare och felfriare. Mvh Lars ( Text 997 ) ( Text 998 ) 1987-11-01 23.33.26 Sture Engström <7237> Mottagare: Z80 Kommentar till text: 996 av Kristoffer Eriksson <5357> Ärende: HEX till DEC Jag vill bara veta hur man omvandlar hex till dec, och det har jag fått ett bra program. BINASC var namnet. Om det sen är ascii tecken eller binärt man startar o slutar med gör det inget. Om multiplikation och division i decimalt,så har jag fått hjälp med det. hejdå! ( Kommentar i text 999 av Kristoffer Eriksson <5357> ) ( Kommentar i text 1000 av Lars Gjörling <6825> ) ( Text 998 ) ( Text 999 ) 1987-11-02 01.40.57 Kristoffer Eriksson <5357> Mottagare: Z80 Kommentar till text: 998 av Sture Engström <7237> Ärende: HEX till DEC Det verkar vara viss språkförbistring här. Den där rutinen BINASC omvandlar faktiskt inte från HEX-form, utan från BINÄR-form, precis som namnet anger. Det är skillnad på hexadecimal och binär, även om du kanske är van att tänka på binära tal representerade i hexadecimal form. ( Kommentar i text 1001 av Sture Engström <7237> ) ( Text 999 )