[Reduction] #426: graph_200line

Yup. TH03's graphics layer is actually set to a resolution of 640x200 and
upscaled by the hardware, which gives the game its distinctive low-res look.
This commit is contained in:
nmlgc 2014-09-01 08:32:22 +02:00
parent 1276b727ff
commit c90b76bff9
2 changed files with 79 additions and 43 deletions

View File

@ -0,0 +1,77 @@
; master library - PC98
;
; Description:
; グラフィック画面を 200lineに設定する
;
; Function/Procedures:
; void graph_200line( int tail ) ;
;
; Parameters:
; int tail 0 = 上半分、 1 = 下半分
;
; Returns:
; none
;
; Binding Target:
; Microsoft-C / Turbo-C / Turbo Pascal
;
; Running Target:
; PC-9801
;
; Requiring Resources:
; CPU: 8086
;
; Notes:
; 同時にアクセスページを 0 に設定します。
;
; Compiler/Assembler:
; TASM 3.0
; OPTASM 1.6
;
; Author:
; 恋塚昭彦
;
; Revision History:
; 92/11/16 Initial
; 93/ 3/27 gc_poly.lib合併
; 94/ 1/22 [M0.22] graph_VramZoom対応
func GRAPH_200LINE
mov BX,SP
mov BX,SS:[BX+RETSIZE*2]
mov CX,BX
ror CX,1
cmc
rcr CX,1
mov AH,42h
int 18h
mov AL,8 ; 高密度
out 68h,AL
mov AX,0a800h
or BX,BX
jz short @@SKIP
mov AX,0abe8h
@@SKIP:
mov graph_VramSeg,AX
mov ClipYT_Seg,AX
mov AX,0
mov ClipXL,AX
mov ClipYT,AX
mov AX,639
mov ClipXR,AX
mov ClipXW,AX
mov graph_VramWords,8000
mov AX,200
mov graph_VramLines,AX
dec AX
mov ClipYB,AX
mov ClipYH,AX
mov ClipYB_adr,(80*199)
mov graph_VramZoom,1 ; GDC 2.5MHz固定, zoom 1bit(2倍)
ret 2
endfunc

View File

@ -152,48 +152,7 @@ include libs/master.lib/gaiji_putca.asm
include libs/master.lib/gaiji_putsa.asm
include libs/master.lib/gaiji_read.asm
include libs/master.lib/gaiji_write.asm
; =============== S U B R O U T I N E =======================================
sub_1402 proc far
mov bx, sp
mov bx, ss:[bx+4]
mov cx, bx
ror cx, 1
cmc
rcr cx, 1
mov ah, 42h ; 'B'
int 18h ; TRANSFER TO ROM BASIC
; causes transfer to ROM-based BASIC (IBM-PC)
; often reboots a compatible; often has no effect at all
mov al, 8
out 68h, al
mov ax, 0A800h
or bx, bx
jz short loc_1421
mov ax, 0ABE8h
loc_1421:
mov graph_VramSeg, ax
mov ClipYT_seg, ax
mov ax, 0
mov ClipXL, ax
mov ClipYT, ax
mov ax, 27Fh
mov ClipXR, ax
mov ClipXW, ax
mov graph_VramWords, 1F40h
mov ax, 0C8h ; 'È'
mov graph_VramLines, ax
dec ax
mov ClipYB, ax
mov ClipYH, ax
mov ClipYB_adr, 3E30h
mov graph_VramZoom, 1
retf 2
sub_1402 endp
include libs/master.lib/graph_200line.asm
include libs/master.lib/graph_400line.asm
include libs/master.lib/graph_clear.asm
include libs/master.lib/graph_copy_page.asm
@ -4481,7 +4440,7 @@ loc_9E24:
push cs
call near ptr sub_A38E
push 0
call sub_1402
call graph_200line
call sub_F0EE
mov byte_23AEE, 0
mov byte_23AEF, 1