home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   alt.os.development      Operating system development chatter      4,255 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 3,883 of 4,255   
   Robert Pengelly to wolfgang kern   
   Re: COM1 interrupt for 16-bit OS   
   11 Nov 23 00:21:15   
   
   From: robertapengelly@gmail.com   
      
   On Saturday, 11 November 2023 at 08:15:49 UTC, wolfgang kern wrote:   
   > On 11/11/2023 08:57, Robert Pengelly wrote:   
   > ...   
   > > so that part is sorted I just don't know what interrupt get fired.   
   > have you enabled and covered it by a routine where its address need to   
   > be stored into the Interrupt Table ?   
   > __   
   > wolfgang   
   > oh, and I forgot to mention that old hardware need delays between I/O   
   > writes (2..5 mSec)   
   >   
   > more info from RBIL about IRQ->INT and ENABLE:   
   >   
   > port A0 work equal for IRQ 8..15   
   >   
   > PORT 0020-003F - PIC 1 - PROGRAMMABLE INTERRUPT CONTROLLER (8259A)   
   > SeeAlso: PORT 00A0h-00AFh"PIC 2",INT 08"IRQ0",INT 0F"IRQ7"   
   >   
   > 0020 -W PIC initialization command word ICW1 (see #P0010)   
   > 0020 -W PIC output control word OCW2 (see #P0015)   
   > 0020 -W PIC output control word OCW3 (see #P0016)   
   > 0020 R- PIC interrupt request/in-service registers after OCW3   
   > request register:   
   > bit 7-0 = 0 no active request for the corresponding int. line   
   > = 1 active request for corresponding interrupt line   
   > in-service register:   
   > bit 7-0 = 0 corresponding line not currently being serviced   
   > = 1 corresponding int. line currently being serviced   
   >   
   > 0021 -W PIC ICW2,ICW3,ICW4 immed after ICW1 to 0020 (see   
   > #P0011,#P0012,#P0013)   
   > 0021 RW PIC master interrupt mask register OCW1 (see #P0014)   
   >   
   > Bitfields for PIC initialization command word ICW1:   
   > Bit(s) Description (Table P0010)   
   > 7-5 0 (only used in 8080/8085 mode)   
   > 4 ICW1 is being issued   
   > 3 (LTIM)   
   > =0 edge triggered mode   
   > =1 level triggered mode   
   > 2 interrupt vector size   
   > =0 successive interrupt vectors use 8 bytes (8080/8085)   
   > =1 successive interrupt vectors use 4 bytes (80x86)   
   > 1 (SNGL)   
   > =0 cascade mode   
   > =1 single mode, no ICW3 needed   
   > 0 ICW4 needed   
   > SeeAlso: #P0011,#P0012,#P0013   
   >   
   > Bitfields for PIC initialization command word ICW2:   
   > Bit(s) Description (Table P0011)   
   > 7-3 address lines A0-A3 of base vector address for PIC   
   > 2-0 reserved   
   > SeeAlso: #P0010,#P0012,#P0013   
   >   
   > Bitfields for PIC initialization command word ICW3:   
   > Bit(s) Description (Table P0012)   
   > 7-0 =0 slave controller not attached to corresponding interrupt pin   
   > =1 slave controller attached to corresponding interrupt pin   
   > SeeAlso: #P0010,#P0011,#P0013   
   >   
   > Bitfields for PIC initialization command word ICW4:   
   What do you mean by:   
      
   "have you enabled and covered it by a routine where its address need to   
   be stored into the Interrupt Table ?"   
      
   I thought interrupts were "intno * 4 (+ 2)" so for INT 0Ch it would be:   
      
   mov [12 * 4], offset handler   
   mov [12 * 4 + 2], segment   
      
   but that doesn't work or am I missing something?   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca