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