www.pegasos.org

Programmering - C-kursen fortsätter =)

Develin - Apr 23, 2004 - 17:46
Post subject: C-kursen fortsätter =)
Sådär, nu fick jag tummen ur o komplettera del2 i kursen.
Det kompletta arkivet finns att hämta som vanligt på publika FTPn samt på http://www.onyxsoft.se/stefan/ckurs02.lha

Sitter och funderar på nästa del just nu, men jag tror vi kan avvakta med ytterligare grafik-exempel ett tag nu så går vi på GUI eller ljud i nästa del eller så...

Håll till godo - låt det goa rulla!
Gullden - Apr 23, 2004 - 18:35
Post subject:
Gott jobbat Develin! Very Happy
TimK - Apr 29, 2004 - 13:06
Post subject:
Superbra, äntligen känns det motiverande att lära sig C.
Men jag undrar var man kan få tag i Autodoc, eller snarare hur det fungerar?

Detta är ett jättebra initativ. Kanske vi snart ser en flod av MOS program dyka upp på Aminet (Pegnet? Wink ).

// Tim
Develin - May 04, 2004 - 15:06
Post subject:
@TimK

Här kan du plocka hem NDK'n som kan komma att behövas för 3.x-API-kompabiliteten :

http://www.amiga.com/3.9/download/NDK3.9.lha

I MOS SDK'n som du hittar på :
http://mdc.morphos.net/

Finner du de uppdaterade delarna som tillkom iom. ABox'en osv.

Jag ska försöka förklara hur man använder dessa, men just nu har jag brådis så jag återkommer senare ikväll eller imorrn om detta!
T1k - May 05, 2004 - 10:29
Post subject:
Bra där Develin Smile

Så fort jag har fått ordning på peggen skall jag sätta igång.
Jag har gett mig tusan på att lyckas köra både MOS och Gentoo på peggen men det verkar vara lite svårare än jag först trodde....eller snarare jag är mer n00b än jag trodde.... :]

Jag har en partition med hela mitt oldskool-arkiv från the golden days och råkar jag radera den så dör jag! Jag är en peka och klicka-kille, förbannelse över alla commandlines men jag SKA lära mig!
gunne - May 05, 2004 - 11:40
Post subject:
Det Nicolas har gjort en ganska bra guide för detta här;

Linux + Mos

Den är iofs lite gammal nu, och inte aktuell i alla delar, men med lite fri vilja och smärre modifikationer greppar du det nog.

Det som väl är grundläggande att ha i åtanke är att man skapar partitioner ifrån ett av os:en, och helst bör försöka undvika gå in med partitionsverktyg ifrån olika os på samma disk.
lisardman - May 05, 2004 - 12:24
Post subject:
T1k wrote:

Jag har en partition med hela mitt oldskool-arkiv från the golden days och råkar jag radera den så dör jag! Jag är en peka och klicka-kille, förbannelse över alla commandlines men jag SKA lära mig!


jag klarar inte av att använda en dator utan bra kommandotolk längre.
Gullden - May 05, 2004 - 12:31
Post subject:
finns det datorer som inte har kommandotolk ? Wink
lisardman - May 05, 2004 - 12:46
Post subject:
jag menar bra kommando tolk.. t.ex Windows kommandotolk är väl ingen höjdare direkt..
gunne - May 05, 2004 - 12:50
Post subject:
Shocked
dholm - May 05, 2004 - 19:07
Post subject:
Jag har alltid minst två terminaler igång på desktoppen och ett par till på servern. Det tar helt enkelt för lång tid att göra saker med musen, så den sparar man tills när man måste använda den.
Develin - May 06, 2004 - 06:50
Post subject:
Liten förklaring till hur Autodocs funkar...

I början av filen hittar man innehållsförteckningen över bibliotekets funktioner.
När jag skriver bibliotek ovan så är det inte enbart libraries, utan kan även
omfatta devices, resources eller annat.

Iaf. namnet på funktionerna har ofta anknytning till dess funktion (konstigt vore väl annars) Smile
Ett problem som man kan komma på om man inte är van upplägget på systemet är att
hitta funktionen man vill ha information om. Men det är bara att leta på så finner man
allt det man söker efter till slut Smile

Jag brukar själv använda mig av AutoDocReader (kommer inte ihåg URL'en nu tyvärr)
och detta programmet är bra för det kan man enkelt söka o dela upp olika delar.

Men, vi tar ett exempel...

Säg att vi ska allokera en minnesarea till nån form av grafik eller ljud
som vi ska använda oss av. Först måste vi känna till vart de grundläggande
funktionerna för minnehantering ligger. Och om man inte kände till det
innan så finner man dem i exec.library.
Detta bibliotek är grunden i det mesta i systemet så här finner
man funktioner för signalering, minneshanteringar I/O-hantering mm.
Så vi tar oss en titt på "exex.doc"...

Vi kollar i förteckningen och finner ett antar olika Allokerings-funktioner.
"AllocMem" låter väl som en bra början att hoppa till o kontrollera ? Smile

Väl nere på det stycket ser vi en kort introduktion :
- "AllocMem -- allocate memory given certain requirements"

Låter ju som det skulle kanske passa för det vi vill göra, eller hur?
Men vi läser vidare o ser om det finns för några andra funktioner
som kan vara till fördel eller ev. nackdel för oss.

"SYNOPSIS" visar hur funktionen fungerar mera generellt.
- memoryBlock = AllocMem(byteSize, attributes)
- void *AllocMem(ULONG, ULONG);

De två argumenten är av typen ULONG och resultatet är av typen "*" eller
pekare som det heter i ord...


Sedan kommer vi till funktionsförklaringen vilket är bra att skumma
igenom så vi vet vad som händer vid ett anrop av denna funktion.

Nästa steg är "INPUTS", vilket man i kombination med SYNOPSIS-delen
ser vart de fält som tas upp hör hemma (vart de ligger som funktions-
parametrar osv.).

- "byteSize" är den önskade storleken i bytes.
dvs. behöver vi en minnesmängd på 1kB så anger vi 1024 som argument här.

- "attributes"

Här står det om inga flaggor är satta (dvs. vi anger NULL) så kommer
systemet att själv göra det bästa av situationen.
Här anges det om FAST och CHIP-mem eller PUBLIC, och efterssom vi varken har
nått specifikt FAST eller CHIP-mem så är det PUBLIC-memory vi anger.

Vi kollar vidare och hittar flaggan MEMF_CLEAR, detta nollställer
minnet som vi allokerar från starten, kan ju vara bra i vissa fall
annars helt onödigt då det slöar ner allokeringsfunktionen något.

Om vi vill ha dessa 2 flaggor i funktionsanropet och alloker 1kb så
kommer vårt anrop att se ut som följande :

- unsigned char *datablock;
- datablock = AllocMem(1024, MEMF_PUBLIC | MEMF_CLEAR);


Om vi följer autodocs nästa steg så ser vi "RESULT" och det är vikitgt
att läsa denna del för här står det vad man bör tänka på vid olika retur
värden man får från funktionen osv.
det står tex. att funkionen returnerar 0 om inte allokeringen gick som det var
tänkt.

Så det vi bör göra efter allokerings-funktionen är alltså att kontrollera
att datablock inte är 0. För om det är 0 så bör vi hoppa ur programmet och
skriva att allokeringen misslyckades osv.

I slutet på autodocs står det ofta om det finns några fallgropar med funktionen,
vad man bör tänka på och även referenser till närliggande funktioner.
I AllocMem's fall så står det tex. "FreeMem", vilket är logiskt för det avallokerar
det minne vi har tagit från systemet...

Men ett tips, kontrollera runt lite om det finns någon bättre funktion som motsvarar
det eftersträvande funktionen ni vill åt.
Om vi tex. tittar på AllocVec-funktionen istället så är den bra mycket smidigare
än tex. AllocMem för AllocVec kräver inte att man själv håller reda på storleken som man
allokerade minnet med utan kan själv hålla reda på detta och när man avallokerar minnet
som man har nyttjat med AllocVec använder man FreeVec-funktionen istället (och där anges enbart
pekaren till datablocket). Så det är alltid ide att kolla runt lite på närliggande
funktioner o referenser i dokumentationen.

Jag vet att mycket av detta kan låta rörigt, men man vänjer sig snart med upplägget
om man provar på o använder det. Det är lika bra att försöka o fela än att inte försöka
över huvud tagit sas. Smile
AmigaFF - Apr 03, 2007 - 11:47
Post subject:
Kul kurs du skrivit ihop! Första delen var bra för att repa upp mina gamla C kunskaper, den andra var klurigare men inte helt
omöjlig hoppas jag, ska bara få fart på GCC så ska jag nog lära mig. Bara jag får tid till det så.
Jag hoppas att du kan få ut en del tre så småningom, så det blir en triologi i alla fall Very Happy
Develin - Apr 04, 2007 - 08:44
Post subject:
Det vore ju onekligen på tiden att skapa lite nya delar och även rusta upp lite i de gamla kanske.
Ska se ifall man kan få nån extra tid till övers innan det nya lilla blåa "trollet" anländer hemma får då blir det nog inte mycket datorer kan jag tänka mig Smile
lisardman - Apr 04, 2007 - 09:29
Post subject:
det blir bara mer o mer datorer då..
Frek - Apr 05, 2007 - 22:59
Post subject:
Blir nästan sugen att installera UAE och prova själv Wink
All times are GMT + 1 Hour
Powered by PNphpBB2 © 2003-2004 The PNphpBB Group
Credits