[net.micro.atari16] 50 line screens

stone@calgary.UUCP (Glen Stone) (05/16/86)

Here are the small programs for the monochrome system that give 50 lines
and 25 lines. Also in response to the mouse controls in micro-emacs
you'll notice that the cursor keys work in micro-emacs. You can write a small
program that changes the mouse such that it outputs the cursor keys...
thus the mouse works in micro-emacs. It's a bios or xbios call, I'm
sorry I haven't got the code handy right now. Also I have a micro-emacs
with the features we've added, but I'm not sure if current versions have them.
They are:

    -query-replace  (ESC q)
    -Cntl x Cntl v works properly (create a second window and bring in
     the file all at once)
    -The editor works in 50 line mode
    - ESC w (like cntl W but just makes a copy)
    - ESC g (goto line)
    - Cntl x Cntl f works
    -others I can't remember- mostly the commands resemble EMACS commands

If this oldhat sorry for the waste of space, otherwise I guess I could
post the executable (the source is in complete shabbles right now)

Posted now are both source and executable for the 50/25 lines per screen.

-------- Source for 50 lines --------------
                                                                             
*  Make hi rez screen bios handle 50 lines of 8x8 characters               
*                                                                           
*                                                                           
* author:                                                                    
*               j d eisenstein                                              
*                                                                            
* date:                                                                      
*               15-aug-85                                                   
*                                                                            
             .text
             .global _hi50                                                                             
LINEA_INIT      equ     $A000                                               
GET_REZ         equ     4               ; extended bios resolution inquiry 
                                                                            
                                                                            
_hi50:                                                                        
                                                                              
        lea     stack,sp                                                     
                                                                            
        move.w  #GET_REZ,-(sp)          ; get screen resolution               
        trap    #14                                                         
        addq.w  #2,sp                                                        
                                                                             
        cmp.w   #2,d0                   ; only execute if already in hi rez   
        bne     exit                                                         
                                                                            
                                                                              
        dc.w    LINEA_INIT              ; get the important pointers         
                                                                            
        move.l  04(a1),a1               ; a1 -> 8x8 font header              
                                                                            
        move.l  72(a1),-$0A(a0)         ; v_off_ad <- 8x8 offset table addr  
        move.l  76(a1),-$16(a0)         ; v_fnt_ad <- 8x8 font data addr  
                                                                           
        move.w  #008,-$2E(a0)           ; v_cel_ht <- 8    8x8 cell height   
        move.w  #049,-$2A(a0)           ; v_cel_my <- 49   maximum cell "Y
        move.w  #640,-$28(a0)           ; v_cel_wr <- 640  offset to cell Y+
                                                                            
exit:                                                                        
        clr.w   -(sp)                   ; back to the os                     
        trap    #1                                                          
                                                                             
                                                                             
        ds.l    $10                                                          
stack:  ds.l    $01                     ; stack em up an blow em out         
                                                                           
        end                                                                 

-------- Source for 25 lines -------------
                                                                             
                                                                          
*  Make hi rez screen bios handle 25 lines of 8x16 characters                
*                                                                            
*                                                                            
* author:                                                                    
*               j d eisenstein                                                
*                                                                           
* date:                                                                      
*               15-aug-85                                                    
*                                                                            

		.text
		.global _hi25                                    

LINEA_INIT      equ     $A000                                                 
GET_REZ         equ     4               ; extended bios resolution inquiry    
                                                                             
                                                                          
_hi25:                                                                       
                                                                            
        lea     stack,sp                                                 
                                                                          
        move.w  #GET_REZ,-(sp)          ; get screen resolution              
        trap    #14                                                         
        addq.w  #2,sp                                                      
                                                                           
        cmp.w   #2,d0                   ; only execute if already in hi rez  
        bne     exit                                                         
                                                                           
                                                                          
        dc.w    LINEA_INIT              ; get the important pointers       
                                                                             
                                                                          
        move.l  08(a1),a1               ; a1 -> 8x16 font header           
                                                                          
        move.l  72(a1),-$0A(a0)         ; v_off_ad <- 8x16 offset table ad
        move.l  76(a1),-$16(a0)         ; v_fnt_ad <- 8x16 font data addr 
                                                                            
        move.w  #0016,-$2E(a0)          ; v_cel_ht <- 16    8x16 cell heigh
        move.w  #0024,-$2A(a0)          ; v_cel_my <- 24    maximum cell "Y" 
        move.w  #1280,-$28(a0)          ; v_cel_wr <- 1280  vertical byte offset
                                                                             
exit:   clr.w   -(sp)                   ; back to the os                     
        trap    #1                                                         
                                                                           
                                                                            
        ds.l    $10                                                          
stack:  ds.l    $01                     ; hey chef, gimme a short stack      
                                                                            
                                                                           
        end                                                                
                                              
------- Encoded 50 line executable ------------
begin 644 hres50
M8!H   "                              $_Y    ?#\\  1.3E1/L'P 
M F8DH  B:0 $(6D 2/_V(6D 3/_J,7P "/_2,7P ,?_6,7P"@/_80F=.00  
M                                                            
M                                 @                          
M                                                            
?                                            
 
end

-------- Encoded 25 line executable --------
begin 644 hres25
M8!H   "                              $_Y    ?#\\  1.3E1/L'P 
M F8DH  B:0 ((6D 2/_V(6D 3/_J,7P $/_2,7P &/_6,7P% /_80F=.00  
M                                                            
M                                 @                          
M                                                            
?                                            
 
end