Spring naar bijdragen

Voor oude (!!) programmeurs


Aanbevolen berichten

Zojuist zei Bonjour:

Yes wrap around.

32k = 64k bytes.

int[] arr heeft een 16 bits pointer voor de index p een 80286. arr[32768] is dus gelijk aan arr[0]. de 5 wordt dus overgeschreven met 10. Wellicht was het wel met een memory model te verhelpen, maar aangezien ik het voor mijn hobby deed en geen internet had, kwam ik er niet uit. Op de Atari 1040 ST was het geen probleem. die had een lineaire memory space van 1 MB. En zijn registers waren lang genoeg.

Ha, ja, de memory-modellen van de x86 :'(

op assembly-niveau niet op te lossen, zonder bizarre kunstgrepen. Ik heb gevloekt toen ik van Z80 naar x86 ging

Link naar bericht
Deel via andere websites

Ik had een spectrum ZX met een Z80. Prachtige processor. Een maat had een boek met daarin het ROM uitgeschreven. Heerlijk. Nooit gedoe. Altijd starten. Atari ST was ook prachtig. Met een 68000. Ook mooie processor. Nu altijd gedonder. OS2 vond ik ook prettig werken.

Op de een of andere manier is het altijd het betere spul wat weggewerkt wordt.

Link naar bericht
Deel via andere websites

Ik had een ZX80 en later de ZX Spectrum+ (plus betekende harde plastic toetsen ipv die rubberen stukjes kauwgom). Mijn eerste echte baan was met de Hitachi versie cq kloon van de Z80 processor. Ik heb daar hele dikke low-level en real-time shit geschreven voor micro controllers, dicht op de hardware, dus 0- en en 1-en detecteren uit IC's, real-time interrupt handling etc. Dat was pas t echte nerdenwerk haha. Nostalgie.

 

Link naar bericht
Deel via andere websites
2 uur geleden zei Bonjour:

Ik had een spectrum ZX met een Z80. Prachtige processor. Een maat had een boek met daarin het ROM uitgeschreven. Heerlijk. Nooit gedoe. Altijd starten. Atari ST was ook prachtig. Met een 68000. Ook mooie processor. Nu altijd gedonder. OS2 vond ik ook prettig werken.

Op de een of andere manier is het altijd het betere spul wat weggewerkt wordt.

Ik ook ik ook! Inclusief dat boek :) oh herinneringen!

Link naar bericht
Deel via andere websites

Ik was verkocht toen mijn nichtje e.o.a. Philips bak hout, met cartrdiges waarop spellen als Pong stonden. Gefascineerd. Toen ik voor t eerst in de V&D of Bijenkorf in Amsterdam iemand op zijn ding live pacman zag programmeren in C64 Basic, toen was ik verkocht. Toen kreeg ik de ZX en een vriendje had de C64, dat waren gouden tijden. Als ik die games nu terug zie zijn ze qua graphics niets natuurlijk, maar wat een inventiviteit zeg. Daarna hele tijd niet gegamed, tot de PS1, de Resident Evil serie wooooooow dat was vet! Jaar of 3 geleden op mijn mobieltje met een PS1 emulator nog de eerste 3 Resident Evil disc images op de PS1 gespeeld, aangesloten op een tv en met een bluetooth game controller. Nostalgie zeg.

 

On 

Link naar bericht
Deel via andere websites

O wow Flash Gordon. Dit is echt ver van voor mijn tijd. :#
En aan rare hardcore stuff wat MysticNetherlands doet brand ik me niet aan, is het assembleertaal?

En van Bonjour dacht ik het te begrijpen, tot ik zijn vervolgpost las. :#
Ik ben al blij dat ik weet dat je in een integer array allemaal vrolijke getalletjes kunt opslaan.

Ik vermoed dat "printf(arr[0]);" 5 is, omdat je dat daar hebt opgeslagen, net als arr[32768] 10 is. En ik denk dat de rest vanaf 0 t/m 32769 0 is, want die heb je niet gedefinieerd.
Klopt dat?

Maar hoe het verder met pimitives zit, geen idee. Heeft met geheugen te maken. Dacht dat float 32bit is en double 64. En ineger zal vast minder vragen en short nog minder. Maar 'als' dat al klopt, dan houdt het voor mij daar een beetje bij op.
 

Link naar bericht
Deel via andere websites
7 uur geleden zei Olorin:

Ik vermoed dat "printf(arr[0]);" 5 is, omdat je dat daar hebt opgeslagen, net als arr[32768] 10 is. En ik denk dat de rest vanaf 0 t/m 32769 0 is, want die heb je niet gedefinieerd.
Klopt dat?

Even beginnen met een verhaaltje uit de oude doos. Bij een apotheker-systeem wordt het geboortejaar met 2 cijfers opgeslagen. (We praten over jaren 80). Iemand die in 1879 is dan even oud als iemand die in 1979 geboren is. In 1980 zijn ze allebei 1. Wanneer er medicijnen voor de bejaarde opgehaald worden, komt er een foutmelding "Deze medicijnen mogen niet aan babies gegeven worden.

Bij c heb je een pointer naar het begin van het array en een offset pointer. Voor de waarde in de offset pointer kijken we eerst naar de size van 1 element. Een int in die dagen was 2 bytes. Dus voor arr staat de waarde 2*i in de pointer. In de tijd van de 80286 en dos was de pointer 16 bits. Maak je het array te groot kan de pointer het getal niet opslaan, vergelijkbaar met de leeftijd van de bejaarde. arr[0] en arr[32768] hebben dezelfde waarde in de offset pointer en wijzen naar hetzelfde element.

De rest van het array heeft inderdaad de initiële waarde. Voor een int is dat 0.

Deze test toont aan de intel destijds waardeloze chips bakte. Er waren al betere klaar, maar iedereen liep achter Intel/IBM/Microsoft aan. Kwestie van goede en slechte reclame makers. De Atari ST had een veel mooiere architectuur dan de pc's van dat moment en was nog goedkoper ook. Op het moment dat ik de Atari kocht eind jaren 80, was ie 1700 gulden tegen 3000 voor een AT. Daar kon ie zich makkelijk mee meten.

Link naar bericht
Deel via andere websites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Antwoord op deze discussie...

×   Plakken als rijke tekst.   Opmaak herstellen

  Er zijn maximaal 75 emoticons toegestaan.

×   Je link is automatisch geïntegreerd.   In plaats daarvan als link tonen

×   Je voorgaande bijdrage is hersteld.   Tekstverwerker leegmaken

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen in vanaf URL.

×
×
  • Nieuwe aanmaken...

Belangrijke informatie

We hebben cookies op je apparaat geplaatst om de werking van deze website te verbeteren. Je kunt je cookie-instellingen aanpassen. Anders nemen we aan dat je akkoord gaat. Lees ook onze Gebruiksvoorwaarden en Privacybeleid