Author |
Message |
|
Post subject: C-kursen fortsätter =)
Posted: Apr 23, 2004 - 17:46
|
|
Addict


Joined: Aug 19, 2003
Posts: 169
Location: Karlstad
|
|
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! |
_________________ Mvh
Stefan Blixth, OnyxSoft
|
|
|
|
 |
|
Post subject:
Posted: Apr 23, 2004 - 18:35
|
|
Elderman

Joined: Jan 24, 2004
Posts: 305
Location: location
|
|
Gott jobbat Develin!  |
_________________ coffe: because there is no reason to be miserable every day until you die
|
|
|
|
 |
|
Post subject:
Posted: Apr 29, 2004 - 13:06
|
|
Journeyman


Joined: Aug 19, 2003
Posts: 45
Location: Amsterdam
|
|
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? ).
// Tim |
|
|
|
|
 |
|
Post subject:
Posted: May 04, 2004 - 15:06
|
|
Addict


Joined: Aug 19, 2003
Posts: 169
Location: Karlstad
|
|
@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! |
_________________ Mvh
Stefan Blixth, OnyxSoft
|
|
|
|
 |
|
Post subject:
Posted: May 05, 2004 - 10:29
|
|
Journeyman


Joined: Mar 04, 2004
Posts: 55
Location: Stockholm
|
|
Bra där Develin
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! |
_________________ Mind - Universe - Mind - Universe
|
|
|
|
 |
|
Post subject:
Posted: May 05, 2004 - 11:40
|
|
Order of the Pegasos


Joined: Aug 16, 2003
Posts: 2538
Location: Göteborg
|
|
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. |
_________________ Mvh Gunne
|
|
|
|
 |
|
Post subject:
Posted: May 05, 2004 - 12:24
|
|
Order of the Butterfly


Joined: Jan 14, 2004
Posts: 1940
Location: Karlsborg,Sverige
|
|
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. |
|
|
|
|
 |
|
Post subject:
Posted: May 05, 2004 - 12:31
|
|
Elderman

Joined: Jan 24, 2004
Posts: 305
Location: location
|
|
finns det datorer som inte har kommandotolk ?  |
_________________ coffe: because there is no reason to be miserable every day until you die
|
|
|
|
 |
|
Post subject:
Posted: May 05, 2004 - 12:46
|
|
Order of the Butterfly


Joined: Jan 14, 2004
Posts: 1940
Location: Karlsborg,Sverige
|
|
jag menar bra kommando tolk.. t.ex Windows kommandotolk är väl ingen höjdare direkt.. |
|
|
|
|
 |
|
Post subject:
Posted: May 05, 2004 - 12:50
|
|
Order of the Pegasos


Joined: Aug 16, 2003
Posts: 2538
Location: Göteborg
|
|
 |
_________________ Mvh Gunne
|
|
|
|
 |
|
Post subject:
Posted: May 05, 2004 - 19:07
|
|
Order of the Butterfly


Joined: Aug 26, 2003
Posts: 1784
Location: Malmö
|
|
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. |
_________________ I need this baby in a month send me nine women!
|
|
|
|
 |
|
Post subject:
Posted: May 06, 2004 - 06:50
|
|
Addict


Joined: Aug 19, 2003
Posts: 169
Location: Karlstad
|
|
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)
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
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 ?
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.  |
_________________ Mvh
Stefan Blixth, OnyxSoft
|
|
|
|
 |
|
Post subject:
Posted: Apr 03, 2007 - 11:47
|
|
Journeyman

Joined: Mar 08, 2007
Posts: 31
|
|
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  |
|
|
|
|
 |
|
Post subject:
Posted: Apr 04, 2007 - 08:44
|
|
Addict


Joined: Aug 19, 2003
Posts: 169
Location: Karlstad
|
|
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  |
_________________ Mvh
Stefan Blixth, OnyxSoft
|
|
|
|
 |
|
Post subject:
Posted: Apr 04, 2007 - 09:29
|
|
Order of the Butterfly


Joined: Jan 14, 2004
Posts: 1940
Location: Karlsborg,Sverige
|
|
det blir bara mer o mer datorer då.. |
_________________ RR!
|
|
|
|
 |
|