weet iemand waar ik uitgebreide uitleg en voorbeelden zou kunnen vinden om de COMx en LPTx poorten van een PC te sturen met Assembler code? Ik ben eveneens op zoek naar een lijst met de adressen van alle registers die instaan voor het instellen van allerlei poorten, IRQ's, ... , een lijst met beschikbare IRQ's.
Kan iemand mij hieraan helpen?
Google vindt veel, maar begrijpt m'n vraag niet zo goed. Ik weet dan ook niet echt met welke termen ik moet gaan zoeken. "driving COM1 assembler" levert op de eerste pagina's geen (mijn inziens) interessante links op.
Alvast bedankt voor de hulp!
CV
Didn't find your answer? Ask the community — no account required.
M
Marco
Zoek de datasheet van de 8250 op. Meeste interfaces zijn daarmee compatible. Als je wat luxer wilt, kun je ook die van de 16550 nemen.
Voor de interrupts heb je dacht ik wat met de 8259 te maken. Niet dat die nog gebruikt wordt, maar alles is er wel mee compatible.
En eh... dik 10 jaar geleden had ik hetzelfde probleem :)
P
Peter van Merkerk
lijst
Er is een programmaatje HelpPC waarin dit soort informatie staat:
formatting link
Er is ook een HTML versie van de informatie die in HelpPC staat:
formatting link
Ook interessant is deze site:
formatting link
Houdt er overigens rekening mee dat je onder Windows en Linux hardware poorten niet direct kan aansturen; dat kan alleen vanuit een device driver. Vanuit MS-DOS is het overigens geen probleem.
-- Peter van Merkerk peter.van.merkerk(at)dse.nl
V
Venlig Hilsen
Heb je wat aan sourcecode als voorbeeld?
Venlig Hilsen
Rozen zeggen: "Ik hou van jou". Lelies hebben praal. Maar een
paardebloem in een kinderhand, overtreft ze allemaal!
R
Rene
"CV" schreef in bericht news:cGexd.4414$ snipped-for-privacy@phobos.telenet-ops.be...
Zoek op Ralph Brown interrupt list en gij zult vinden. Verder zul je op
formatting link
vast wel een en ander vinden. Verder is comp.lang.asm.x86 een groep waar dit soort dingen nogal eens aan de orde komt. Als je de header van de berichten daar eens bekijkt, zul je de site van de FAQ van die groep vinden, waar mogelijk ook nog wel het een en ander te vinden is.
Veel succes met je programmeren! Vriendelijke groeten, Rene
P
Peet
In de jaren van de Z80 heb ik heel wat programmeerwerk gedaan en assembler gestudeerd, poorten aanspreken en uitlezen doe je met simpele IN en OUT commando's. Ik neem aan dat je een boekwerkje hebt met mnemmonics? Zonder de taal kan je immers niets voor elkaar krijgen;-)) Handiger is het een bijvoorbeeld basic interpreter of C(++) VB of een andere hogere programmeertaal te gebruiken. Een PC in assembler te programmeren zijn parels voor de zwijnen.
"CV" schreef in bericht news:cGexd.4414$ snipped-for-privacy@phobos.telenet-ops.be... | Hallo, | | weet iemand waar ik uitgebreide uitleg en voorbeelden zou kunnen vinden om | de COMx en LPTx poorten van een PC te sturen met Assembler code? | Ik ben eveneens op zoek naar een lijst met de adressen van alle registers | die instaan voor het instellen van allerlei poorten, IRQ's, ... , een lijst | met beschikbare IRQ's. | | Kan iemand mij hieraan helpen? | | Google vindt veel, maar begrijpt m'n vraag niet zo goed. Ik weet dan ook | niet echt met welke termen ik moet gaan zoeken. | "driving COM1 assembler" levert op de eerste pagina's geen (mijn inziens) | interessante links op. | | Alvast bedankt voor de hulp! | | CV | |
V
Vincent Himpe
"Peet" wrote in news: snipped-for-privacy@corp.supernews.com:
kijk een sop
formatting link
dat is een basic compiler die inline assembler kan doen. er zijn op hun bulleting board voorbeelden te vinden waar ze met de poorten aan de slag gaan.
een goed boek is Tom hogan's. The PC sourcebook. daarin staan alle interrupt , bios funkties en gedetailleerde address maps.
Jan Axelsons parallel port complete en serial port complete zijn ook een goede bron van informatie
formatting link
Onder dos kun je kijken waar de pporten zitten door segment 0 te dumpen vanaf adress 400
statrt een dos sesie en lanceer debug ( zit zelfs nog in windows XP) tik volgend commando d 0:400
daar zie je dat mijn systeem 4 seriele en 3 printerpoorten heeft
0000:0400 F8 03 = 3F8 is io adress van com1 F8 02 = 278 is io adress can com 2 dan volgt 3e8 ( com3) en 2E8 ( com4) vervolgens de LPR poort (3BC) LPT1 op 378 en lpt2 op 278
als je iets op lpt1 wilt laten verschijnen dan kun je volgende doen out 0x378,
een printerpoort heeft altijd 3 adressen in gebruik het base ( 378 278 of
3bc ) en de 2 volgende base adress is de data ( pin 2 to 9 op de connector zijn d0 tot d7 )
dan heb je een controle register op base +1 en dan het input register op base + 2
ook een goede handleiding is de manual van Turbo Assembler van Borland of MASM van Microsoft. De beste assemblers voor PC is vind ik persoonlijk IASM86 van intel. omdat je daar ook rommable code can mee maken. ( TASM en MASM assembleren alleen code die onder een OS zoals DOS kan draaien )
met IASM kan je als je wilt zelf een bios schrijven of een romcode die op een eprom moet komen op een insteekkaart. ( heb ik vroeger meerdere malen gedaan )
Ik moet zelfs nog ergens de sourcecode liggen hebben van de originele IBM bios zoals ie op de AT ( 286) zat.
en voor die persoon die stelde dat assembler programmeren op de Pc 'parels voor de zwijnen zijn'. : LJMP 0:FFFE
stoeien in assembler is zeer leuk en je kan echt het onderste uit de kan halen. maar je moet wel bereid zijn er voldoende tijd in te steken.
C
Christophe Van Praet
Bedankt voor alle reacties. Ik kan nu pas antwoorden doordat mijn pc aan een herinstallatie toe was, en er complicaties waren...
Aangezien ik nu wordt verondersteld te blokken heb ik niet zoveel tijd. Ik heb wel eens snel alle links bezocht, en die lijken uiterst goed aan m'n vraag te voldoen.
Na de examens ga ik ermee aan de slag.
Dank U!
CV
C
Christophe Van Praet
Een boekje met mnemmonics heb ik nog niet. Ik veronderstel dat die niet zo moeilijk te vinden zijn. Eigenlijk zit het zo: ik volg elektronica op school. We hebben wat assembler bestudeerd, en ik wilde dat eens toepassen. Volgend semester krijgen we een cursus C die ons in staat zou moeten stellen microcontrollers te programmeren. Het is alleszins niet de bedoeling om gigantische toepassingen uit te werken.
C
Christophe Van Praet
Ik veronderstel dat ik genoeg voorbeelden zal vinden op de verschillende websites die mij werden aangeraden. Indien dit niet het geval zou blijven, stuur ik wel een mail.
Bedankt voor het aanbod.
C
Christophe Van Praet
Dank u! Hiermee kan ik zowat onmiddelijk aan de slag. Jammergenoeg zal ik nog een dikke maand geduld moeten oefenen. Maar dan is er weer tijd in overvloed :-).
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required
Report Content
You are reporting this content to the moderators. They will look at it
ASAP.