
Figure 1.1	Stack contents after entry into FastPrint.	

	 Ŀ
	   First Parameter       BP + 12	ROW% co-ordinate
	 Ĵ
	   Second Parameter      BP + 10	COLUMN% co-ordinate
	 Ĵ
	   Third Parameter       BP + 8	Pointer to string
	 Ĵ
	   Fourth Parameter      BP + 6	ATTRIBUTE% value
	 Ĵ 
	   Return Segment          This is a FAR call so both the
	 Ĵ   Segment & Offset of the return
	   Return Offset           address are pushed.
	 Ĵ 
	   Saved BP register     <--	Base Pointer (BP) stays here.
	 Ĵ
	   Saved ES register    
	 Ĵ
	   Saved SI register    
	 Ĵ	Stack Pointer (SP) register
	   Saved DI register     <--	points to last item pushed.
	 


Figure 1.2	The interrupt sequence used on computers such as the IBM-PC
			which use the Intel 80x86 family of micro-processors.

 Interrupt Vector       Program         Interrupt Handler
      Table                           at address 1DA6:01E3
 
   Ĵ      Ĵ        Ŀ
14  167F:0439    >  INT 16  > PUSH AX  
   Ĵ     Ĵ        Ĵ
15  0070:0774                <Ŀ    PUSH BX  
   Ĵ                        Ĵ
16  1DA6:01E3 <     Stack              etc.   
   Ĵ      Ĵ           .     
17  F000:F84D        saved IP Ŀ 
   Ĵ      Ĵ          .     
18  F000:F841        saved CS Ĵ        .     
   Ĵ      Ĵ      Ĵ
                         Flags  Ĵ ĳ   IRET   
                      Ĵ       
                                    


Figure 1.3    PC Memory map highlighting the BIOS data area in low RAM

Segment address (in hex)

FFFF   Ŀ 1024K
              ROM-BIOS      
E000   Ĵ
        Hardware extensions 
C000   Ĵ Color screen is at segment B800
          Display  memory    Mono screen is at segment B000
A000    
                               up to 640K
9FFF   Ŀ
         Transient part of  
                DOS         
       Ĵ
                            
                            
                              
             far data       
         (dynamic arrays)   
      ſ
                           
         QuickBASIC data    Default DEF SEG address
         segment (DGROUP)  
                            Ŀ
        Offsets from segment 40(Hex) 
         QuickBASIC program                                 
                          Ĵ   0050                   Ĵ  
               TSRs                  Offset address of    
                          Ĵ           current page       
          Resident part of     004E                   Ĵ  
                DOS                  Number of bytes in   
       Ĵ           cureent screen     
           BIOS Data area      004C                   Ĵ  
0040   Ĵ<Ĵ       Characters per row   
         Interrupt vectors     0049                   Ĵ  
0000                                   
                                 
                                  


Figure 1.4     Structure of the String Descriptor passed by QuickBASIC

                   
                Ŀ
                  LSB   MSB    LSB   MSB  
                
                    Length        Offset
                 (0 to 32767)  (0 to 65535)

      LSB = Least Significant Byte    MSB = Most Significant Byte


