Sturen van COMx en LPTx met ASM

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

Reply to
CV
Loading thread data ...

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 :)

Reply to
Marco

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

Reply to
Peter van Merkerk

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!
Reply to
Venlig Hilsen

"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

Reply to
Rene

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 | |

Reply to
Peet

"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

0000:0400 F8 03 F8 02 E8 03 E8 02-BC 03 78 03 78 02 80 9F 0000:0410 23 C8 00 80 02 28 00 00-00 00 2E 00 2E 00 64 20 0000:0420 20 39 30 0B 3A 27 34 05-30 0B 30 0B 0D 1C 00 00 0000:0430 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 80 0000:0440 C7 00 C3 00 83 59 83 E0-CA 03 50 00 00 10 00 00 0000:0450 00 0A 00 00 00 00 00 00-00 00 00 00 00 00 00 00 0000:0460 0F 0C 00 D4 03 29 30 03-00 00 CF 00 CA 63 03 00 0000:0470 00 00 00 00 00 00 00 00-14 14 14 00 01 01 01 01

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.

Reply to
Vincent Himpe

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

Reply to
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.

Reply to
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.

Reply to
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 :-).

Reply to
Christophe Van Praet

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.