diff code_part1/OSTC_code_asm_part1/aa_wordprocessor.asm @ 120:5c7f98fad01a

aa_wordprocessor too fast ?
author JeanDo
date Sat, 11 Dec 2010 16:23:43 +0100
parents 3bcccb697bce
children 25433449bcb5
line wrap: on
line diff
--- a/code_part1/OSTC_code_asm_part1/aa_wordprocessor.asm	Sat Dec 11 12:34:30 2010 +0100
+++ b/code_part1/OSTC_code_asm_part1/aa_wordprocessor.asm	Sat Dec 11 16:23:43 2010 +0100
@@ -1,16 +1,31 @@
 ;=============================================================================
 ;
-; file   aa_wordprocessor.asm
-; brief  Anti-aliased word processor
-; author JD Gascuel.
+;    File aa_wordprocessor.asm
+;
+;    Anti-aliased word processor
+;
+;    This program is free software: you can redistribute it and/or modify
+;    it under the terms of the GNU General Public License as published by
+;    the Free Software Foundation, either version 3 of the License, or
+;    (at your option) any later version.
 ;
-; copyright (c) 2010, JD Gascuel. All rights reserved.
-; $Id: aa_wordprocessor.asm 72 2010-11-29 22:45:12Z gascuel $
+;    This program is distributed in the hope that it will be useful,
+;    but WITHOUT ANY WARRANTY; without even the implied warranty of
+;    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;    GNU General Public License for more details.
+;
+;    You should have received a copy of the GNU General Public License
+;    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+;
+;    Copyright (c) 2010, JD Gascuel.
 ;=============================================================================
 ; HISTORY
 ;  2010-11-22 : [jDG] Creation.
+;  2010-12-01 : [jDG] Adding 3bits antialiased fonts.
 ;
-; BUGS : None known yet...
+; BUGS :
+;  * If the three fonts are not in the same half of the PROM memory, TBLPTRU
+;    will be badly set, and font48 or font90 will display giberish...
 ;=============================================================================
 ;
 ; MEMORY FOOTPRINT:
@@ -266,21 +281,20 @@
 ; Trashed: PROD
 ;
 aa_box_cmd:
+			AA_CMD_WRITE	0x35		; this is the left border
 			movf	win_leftx2,W,BANKED	; Compute left = 2*leftx2
 			mullw	2
-			AA_CMD_WRITE	0x35		; this is the left border
 			AA_DATA_WRITE_PROD
 
 			movf	aa_width,W,BANKED	; right = left + width - 1
 			addwf	PRODL,F,A
 			movf	aa_width+1,W,BANKED
 			addwfc	PRODH,F,A
+			AA_CMD_WRITE	0x36		; Write and the right border
 			decf	PRODL,F,A			; decrement result
 			bc		aa_box_cmd_1		; No borrow (/Carry) ? skip propagating.
 			decf	PRODH,F,A
 aa_box_cmd_1:			
-
-			AA_CMD_WRITE	0x36		; Write and the right border
 			AA_DATA_WRITE_PROD
 
 			movf	win_top,W,BANKED	; Write top / bottom window
@@ -289,16 +303,18 @@
 			decf	WREG,A
 			movwf	PRODL,A				; And PRODL is later...
 			AA_CMD_WRITE	0x37
+			nop
+			nop
 			AA_DATA_WRITE_PROD
 
+			AA_CMD_WRITE	0x20
 			movf	win_leftx2,W,BANKED	; Start ptr left
 			mullw	2
-			AA_CMD_WRITE	0x20
 			AA_DATA_WRITE_PROD
 
+			AA_CMD_WRITE	0x21
 			movf	win_top,W,BANKED	; Start ptr top
 			mullw	1					; Load into PRODH:L
-			AA_CMD_WRITE	0x21
 			AA_DATA_WRITE_PROD
 
 			return