mirror of https://github.com/nmlgc/ReC98.git
[JWasm move] Use unique global names for local labels where it matters
From the TASM manual: "NEAR labels defined with the colon directive (:) are considered block-scoped if they are located inside a procedure, and you've selected a language interfacing convention with the MODEL statement. However, these symbols are not truly block-scoped; they can't be defined as anything other than a near label elsewhere in the program." MASM's own local label syntax - declaring labels using @@ and then jumping to the next and previous @@ using @F and @B - is obviously too limiting for any longer function, and is not even supported by TASM unless we switch it to MASM mode completely. While this is indeed ugly, it only affected 16 files, which is way less than what we would get in a TASM build without LOCALS. In comparison to having a modern, cross-platform assembler, that really is a small price to pay.
This commit is contained in:
parent
5e35cfb1af
commit
2279e82167
|
@ -25,7 +25,7 @@ N_LXLSH@:
|
|||
LXLSH@:
|
||||
F_LXLSH@:
|
||||
cmp cl,16
|
||||
jae @@lsh@small
|
||||
jae llsh_@small
|
||||
mov bx,ax ; save the low bits
|
||||
shl ax,cl ; now shift each half
|
||||
shl dx,cl
|
||||
|
@ -40,7 +40,7 @@ F_LXLSH@:
|
|||
shr bx,cl
|
||||
or dx,bx
|
||||
retf
|
||||
@@lsh@small:
|
||||
llsh_@small:
|
||||
sub cl,16 ; for shifts more than 15, do this
|
||||
; short sequence.
|
||||
xchg ax,dx
|
||||
|
|
|
@ -25,7 +25,7 @@ N_LXRSH@:
|
|||
LXRSH@:
|
||||
F_LXRSH@:
|
||||
cmp cl,16
|
||||
jae @@lsh@small
|
||||
jae lrsh_@small
|
||||
mov bx,dx ; save the high bits
|
||||
shr ax,cl ; now shift each half
|
||||
sar dx,cl
|
||||
|
@ -40,7 +40,7 @@ F_LXRSH@:
|
|||
shl bx,cl
|
||||
or ax,bx
|
||||
retf
|
||||
@@lsh@small:
|
||||
lrsh_@small:
|
||||
sub cl,16 ; for shifts more than 15, do this
|
||||
; short sequence.
|
||||
xchg ax,dx ;
|
||||
|
|
|
@ -4,9 +4,9 @@ _flushall proc
|
|||
@@Nb = word ptr -(dPtrSize + 2)
|
||||
@@fp = DPTR_ -(dPtrSize)
|
||||
if LDATA
|
||||
@@local_stack equ 8
|
||||
@@local_stack = 8
|
||||
else
|
||||
@@local_stack equ 6
|
||||
@@local_stack = 6
|
||||
endif
|
||||
|
||||
push bp
|
||||
|
@ -21,31 +21,29 @@ if LDATA
|
|||
mov word ptr [bp+@@fp+2], ds
|
||||
endif
|
||||
mov word ptr [bp+@@fp], offset _streams
|
||||
jmp short @@loop
|
||||
jmp short flushall_loop
|
||||
|
||||
@@RDWR?:
|
||||
flushall_RDWR?:
|
||||
LES_ bx, [bp+@@fp]
|
||||
test byte ptr ES_[bx+FILE.flags], 3
|
||||
jz short @@next
|
||||
jz short flushall_next
|
||||
if LDATA
|
||||
push word ptr [bp+@@fp+2]
|
||||
endif
|
||||
push bx
|
||||
nopcall _fflush
|
||||
if LDATA
|
||||
pop cx
|
||||
endif
|
||||
popCX_
|
||||
pop cx
|
||||
inc [bp+@@Cpt]
|
||||
|
||||
@@next:
|
||||
flushall_next:
|
||||
add word ptr [bp+@@fp], size FILE
|
||||
|
||||
@@loop:
|
||||
flushall_loop:
|
||||
mov ax, [bp+@@Nb]
|
||||
dec [bp+@@Nb]
|
||||
or ax, ax
|
||||
jnz short @@RDWR?
|
||||
jnz short flushall_RDWR?
|
||||
mov ax, [bp+@@Cpt]
|
||||
pop di
|
||||
pop si
|
||||
|
|
|
@ -4,9 +4,9 @@ Displacement proc near
|
|||
@@disp = word ptr -2
|
||||
@@fp = DPTR_ 4
|
||||
if LDATA
|
||||
@@local_stack equ 6
|
||||
@@local_stack = 6
|
||||
else
|
||||
@@local_stack equ 2
|
||||
@@local_stack = 2
|
||||
endif
|
||||
|
||||
push bp
|
||||
|
|
|
@ -11,28 +11,28 @@ _FlushOutStreams proc near
|
|||
mov [bp+@@Ndx], FOPEN_MAX
|
||||
mov word ptr [bp+@@fp+2], ds
|
||||
mov word ptr [bp+@@fp], offset _streams
|
||||
jmp short @@loop
|
||||
jmp short flush_loop
|
||||
|
||||
@@outstream?:
|
||||
flush_outstream?:
|
||||
LES_ bx, [bp+@@fp]
|
||||
mov ax, ES_[bx+FILE.flags]
|
||||
and ax, _F_TERM or _F_OUT
|
||||
cmp ax, _F_TERM or _F_OUT
|
||||
jnz short @@next
|
||||
jnz short flush_next
|
||||
push word ptr [bp+@@fp+2]
|
||||
push bx
|
||||
nopcall _fflush
|
||||
pop cx
|
||||
pop cx
|
||||
|
||||
@@next:
|
||||
flush_next:
|
||||
add word ptr [bp+@@fp], size FILE
|
||||
|
||||
@@loop:
|
||||
flush_loop:
|
||||
mov ax, [bp+@@Ndx]
|
||||
dec [bp+@@Ndx]
|
||||
or ax, ax
|
||||
jnz short @@outstream?
|
||||
jnz short flush_outstream?
|
||||
pop di
|
||||
pop si
|
||||
mov sp, bp
|
||||
|
|
|
@ -17,16 +17,14 @@ endif
|
|||
@@loop:
|
||||
LES_ bx, [bp+@@fp]
|
||||
test byte ptr ES_[bx+FILE.flags], 3
|
||||
jz short @@next
|
||||
jz short xfclose_next
|
||||
push word ptr [bp+@@fp+2]
|
||||
push bx
|
||||
nopcall _fclose
|
||||
if LDATA
|
||||
pop cx
|
||||
endif
|
||||
popCX_
|
||||
pop cx
|
||||
|
||||
@@next:
|
||||
xfclose_next:
|
||||
add word ptr [bp+@@fp], size FILE
|
||||
inc [bp+@@i]
|
||||
|
||||
|
|
|
@ -79,7 +79,7 @@ func BFNT_ENTRY_PAT ; bfnt_entry_pat() {
|
|||
@@clear_color = (RETSIZE+1)*2
|
||||
|
||||
mov AX,[BP+@@clear_color]
|
||||
mov CS:@@color,AX
|
||||
mov CS:bftentry_color,AX
|
||||
mov CS:_DS_,DS
|
||||
mov AX,[BP+@@handle]
|
||||
mov CS:bftentry_file_handle,AX
|
||||
|
@ -211,7 +211,7 @@ B2V_LOOP:
|
|||
push ES ; seg addr
|
||||
xor AX,AX
|
||||
push AX ;offset address
|
||||
JMOV AX,@@color ;clear_color
|
||||
JMOV AX,bftentry_color ;clear_color
|
||||
push AX
|
||||
_call SUPER_ENTRY_PAT ; (patsize, far addr, clear_color)
|
||||
|
||||
|
|
|
@ -42,16 +42,16 @@
|
|||
|
||||
func _BGM_BELL_ORG
|
||||
test Machine_State,10h
|
||||
jnz short @@PCAT
|
||||
jnz short B_B_ORG_PCAT
|
||||
|
||||
@@PC98:
|
||||
; B_B_ORG_PC98:
|
||||
xor AX,AX
|
||||
mov ES,AX
|
||||
test byte ptr ES:[0501H],80h
|
||||
mov BX,TVAL8ORG/2
|
||||
jnz short @@CLOCK8MHZ
|
||||
jnz short B_B_ORG_CLOCK8MHZ
|
||||
mov BX,TVAL10ORG/2
|
||||
@@CLOCK8MHZ:
|
||||
B_B_ORG_CLOCK8MHZ:
|
||||
;タイマカウント値設定
|
||||
mov DX,BEEP_CNT
|
||||
mov AL,BL
|
||||
|
@ -62,7 +62,7 @@ func _BGM_BELL_ORG
|
|||
mov AL,BEEP_OFF
|
||||
out BEEP_SW,AL ; 98
|
||||
ret
|
||||
@@PCAT:
|
||||
B_B_ORG_PCAT:
|
||||
;ビープOFF
|
||||
in AL,61h
|
||||
and AL,not 3
|
||||
|
|
|
@ -51,14 +51,14 @@ func _BGM_EFFECT_SOUND ; _bgm_effect_sound() {
|
|||
les BX,esound[BX].sptr
|
||||
mov CX,ES:[BX]
|
||||
mov BX,AX
|
||||
jcxz short @@END_OF_SOUND ; cmp CX,SEND / jne
|
||||
jcxz short B_E_SND_END_OF_SOUND ; cmp CX,SEND / jne
|
||||
|
||||
;bgm_bell2(*(esound[glb.scnt - 1].sptr)++);
|
||||
add word ptr esound[BX].sptr,2
|
||||
|
||||
test Machine_State,10h ; PC/AT
|
||||
jz short @@PC98
|
||||
@@PCAT:
|
||||
jz short B_E_SND_PC98
|
||||
; PCAT:
|
||||
in AL,61h ;ビープON
|
||||
or AL,3
|
||||
out 61h,AL ; AT
|
||||
|
@ -66,9 +66,9 @@ func _BGM_EFFECT_SOUND ; _bgm_effect_sound() {
|
|||
mov DX,0012h ; 1193.18K(AT互換機)
|
||||
mov AX,34dch
|
||||
mov BX,BEEP_CNT_AT
|
||||
jmp short @@CLOCK8MHZ
|
||||
jmp short B_E_SND_CLOCK8MHZ
|
||||
EVEN
|
||||
@@PC98:
|
||||
B_E_SND_PC98:
|
||||
;ビープON (上にもってきたけど大丈夫かなあ)
|
||||
mov AL,BEEP_ON
|
||||
out BEEP_SW,AL ; 98
|
||||
|
@ -81,18 +81,18 @@ func _BGM_EFFECT_SOUND ; _bgm_effect_sound() {
|
|||
test byte ptr ES:[0501H],80h
|
||||
mov DX,001eh ; 1996.8K(8MHz系)
|
||||
mov AX,7800h
|
||||
jnz short @@CLOCK8MHZ
|
||||
jnz short B_E_SND_CLOCK8MHZ
|
||||
mov DX,0025h ; 2457.6K(10MHz系)
|
||||
mov AX,8000h
|
||||
@@CLOCK8MHZ:
|
||||
B_E_SND_CLOCK8MHZ:
|
||||
cmp CX,DX
|
||||
ja short @@NORMAL
|
||||
ja short B_E_SND_NORMAL
|
||||
mov AX,0ffffh
|
||||
jmp short @@PLAY
|
||||
jmp short B_E_SND_PLAY
|
||||
EVEN
|
||||
@@NORMAL:
|
||||
B_E_SND_NORMAL:
|
||||
div CX
|
||||
@@PLAY:
|
||||
B_E_SND_PLAY:
|
||||
;タイマカウント値設定
|
||||
mov DX,BX ; BEEP_CNT
|
||||
out DX,AL ; 98,AT
|
||||
|
@ -107,7 +107,7 @@ func _BGM_EFFECT_SOUND ; _bgm_effect_sound() {
|
|||
ret
|
||||
EVEN
|
||||
|
||||
@@END_OF_SOUND:
|
||||
B_E_SND_END_OF_SOUND:
|
||||
;esound[glb.scnt - 1].sptr = (uint far *)esound[glb.scnt - 1].sbuf;
|
||||
mov AX,word ptr esound[BX].sbuf+2
|
||||
mov word ptr esound[BX].sptr+2,AX
|
||||
|
|
|
@ -65,57 +65,57 @@ func BGM_INIT ; bgm_init() {
|
|||
nopcall GET_MACHINE
|
||||
|
||||
cmp glb.init,0
|
||||
je short @@NOTINITIALIZED1
|
||||
je short B_INIT_NOTINITIALIZED1
|
||||
xor AX,AX ; BGM_COMPLETE
|
||||
MRETURN
|
||||
|
||||
@@NOTINITIALIZED1:
|
||||
B_INIT_NOTINITIALIZED1:
|
||||
;bsize2 = bufsiz;
|
||||
mov DX,[BP+@@bsize]
|
||||
mov [BP+@@bsize2],DX
|
||||
or DX,DX
|
||||
jg short @@SETBUFSIZE
|
||||
jg short B_INIT_SETBUFSIZE
|
||||
mov word ptr [BP+@@bsize2],BUFMAX
|
||||
@@SETBUFSIZE:
|
||||
B_INIT_SETBUFSIZE:
|
||||
mov AX,[BP+@@bsize2]
|
||||
mov glb.bufsiz,AX
|
||||
|
||||
;曲バッファ確保
|
||||
mov DI,offset part
|
||||
@@ALLOCATEMBUF:
|
||||
B_INIT_ALLOCATEMBUF:
|
||||
;if ((part[cnt].mbuf = MK_FP(hmem_allocbyte(bsize2),0)) == NULL)
|
||||
mov mem_AllocID,MEMID_bgm
|
||||
push word ptr [BP+@@bsize2]
|
||||
nopcall HMEM_ALLOCBYTE
|
||||
mov word ptr [DI].mbuf+2,AX
|
||||
mov word ptr [DI].mbuf,0
|
||||
jnc short @@MBUFALLOCATED
|
||||
jnc short B_INIT_MBUFALLOCATED
|
||||
mov AX,BGM_OVERFLOW
|
||||
MRETURN
|
||||
@@MBUFALLOCATED:
|
||||
B_INIT_MBUFALLOCATED:
|
||||
add DI,type SPART
|
||||
cmp DI,offset part + (type SPART * PMAX)
|
||||
jne short @@ALLOCATEMBUF
|
||||
jne short B_INIT_ALLOCATEMBUF
|
||||
|
||||
;効果音バッファ確保
|
||||
mov DI,offset esound
|
||||
@@ALLOCATESBUF:
|
||||
B_INIT_ALLOCATESBUF:
|
||||
;if ((esound[cnt].sbuf = MK_FP(hmem_allocbyte(SBUFMAX * sizeof(uint) + 1),0)) == NULL)
|
||||
mov mem_AllocID,MEMID_efs
|
||||
push (SBUFMAX * 2)+1
|
||||
nopcall HMEM_ALLOCBYTE
|
||||
mov word ptr [DI].sbuf+2,AX
|
||||
mov word ptr [DI].sbuf,0
|
||||
jnc short @@SBUFALLOCATED
|
||||
jnc short B_INIT_SBUFALLOCATED
|
||||
push word ptr [DI].mbuf+2
|
||||
mov word ptr [DI].mbuf+2,0
|
||||
nopcall HMEM_FREE
|
||||
mov AX,BGM_OVERFLOW
|
||||
MRETURN
|
||||
@@SBUFALLOCATED:
|
||||
B_INIT_SBUFALLOCATED:
|
||||
add DI,type SESOUND
|
||||
cmp DI,offset esound + (type SESOUND * SMAX)
|
||||
jne short @@ALLOCATESBUF
|
||||
jne short B_INIT_ALLOCATESBUF
|
||||
|
||||
;BGMOFF
|
||||
mov glb.rflg,OFF
|
||||
|
@ -158,18 +158,18 @@ func BGM_INIT ; bgm_init() {
|
|||
;glb.clockbase = ((ulong)TVAL1ms * 120UL);
|
||||
;tempo120のタイマカウント
|
||||
test Machine_State,10h ; PC/AT
|
||||
jz short @@PC98
|
||||
jz short B_INIT_PC98
|
||||
mov AX,TVALATORG_RTC
|
||||
jmp short @@SET_CLOCKBASE
|
||||
@@PC98:
|
||||
jmp short B_INIT_SET_CLOCKBASE
|
||||
B_INIT_PC98:
|
||||
xor AX,AX
|
||||
mov ES,AX
|
||||
test byte ptr ES:[0501H],80h
|
||||
mov AX,TVAL8ORG
|
||||
jnz short @@CLOCK8MHZ
|
||||
jnz short B_INIT_CLOCK8MHZ
|
||||
mov AX,TVAL10ORG
|
||||
@@CLOCK8MHZ:
|
||||
@@SET_CLOCKBASE:
|
||||
B_INIT_CLOCK8MHZ:
|
||||
B_INIT_SET_CLOCKBASE:
|
||||
and AX,0fffeh
|
||||
mov DX,DEFTEMPO
|
||||
mul DX
|
||||
|
@ -183,7 +183,7 @@ func BGM_INIT ; bgm_init() {
|
|||
mov BX,offset part.mbuf
|
||||
xor DX,DX
|
||||
xor AX,AX
|
||||
@@BUFFERCLEARLOOP:
|
||||
B_INIT_BUFFERCLEARLOOP:
|
||||
les DI,[BX]
|
||||
mov CX,glb.bufsiz
|
||||
shr CX,1
|
||||
|
@ -193,14 +193,14 @@ func BGM_INIT ; bgm_init() {
|
|||
add BX,type SPART
|
||||
inc DX
|
||||
cmp DX,PMAX
|
||||
jl short @@BUFFERCLEARLOOP
|
||||
jl short B_INIT_BUFFERCLEARLOOP
|
||||
|
||||
nopcall _BGM_TIMER_INIT
|
||||
|
||||
;BEEPモード設定
|
||||
test Machine_State,10h ; PC/AT
|
||||
jz short @@PC98_2
|
||||
@@PCAT_2:
|
||||
jz short B_INIT_PC98_2
|
||||
B_INIT_PCAT_2:
|
||||
mov AX,TVALATORG/2
|
||||
mov CX,AX
|
||||
mov AL,0b6h ; CNT#2, L-H WORD, 方形波, binary
|
||||
|
@ -209,18 +209,18 @@ func BGM_INIT ; bgm_init() {
|
|||
out BEEP_CNT_AT,AL ; AT
|
||||
mov AL,CH ; 上位, count start
|
||||
out BEEP_CNT_AT,AL ; AT
|
||||
jmp short @@B_INIT_DONE
|
||||
jmp short B_INIT_DONE
|
||||
EVEN
|
||||
|
||||
@@PC98_2:
|
||||
B_INIT_PC98_2:
|
||||
;bgm_bell_mode(3, (INPB( CLOCK_CHK ) & 0x20) ? 998 : 1229);
|
||||
xor AX,AX
|
||||
mov ES,AX
|
||||
test byte ptr ES:[0501H],80h
|
||||
mov AX,TVAL8ORG/2
|
||||
jnz short @@CLOCK8MHZ_2
|
||||
jnz short B_INIT_CLOCK8MHZ_2
|
||||
mov AX,TVAL10ORG/2
|
||||
@@CLOCK8MHZ_2:
|
||||
B_INIT_CLOCK8MHZ_2:
|
||||
mov CX,AX
|
||||
;OUTB(BEEP_MODE, ((mode & 0x03) << 1) | 0x70);
|
||||
mov AL,3
|
||||
|
@ -236,7 +236,7 @@ func BGM_INIT ; bgm_init() {
|
|||
mov AL,CH
|
||||
out DX,AL ; 98
|
||||
|
||||
@@B_INIT_DONE:
|
||||
B_INIT_DONE:
|
||||
mov glb.init,TRUE
|
||||
xor AX,AX ; BGM_COMPLETE
|
||||
MRETURN
|
||||
|
|
|
@ -46,34 +46,35 @@ BGM_BELL:
|
|||
|
||||
;マスクON ならリターン
|
||||
cmp [SI].SGLB.pmask,ON
|
||||
je short @@EXIT
|
||||
je short B_PLAY_EXIT
|
||||
;spval = (ulong)(note_dat[part2->note - 'A'] * 2);
|
||||
mov BX,[SI].SPART.note
|
||||
shl BX,1
|
||||
mov BX,note_dat[BX-('A'*2)]
|
||||
|
||||
cmp [SI].SPART.oct,1
|
||||
jne short @@NOTOCT1
|
||||
jne short B_PLAY_NOTOCT1
|
||||
shl BX,1
|
||||
jmp short @@OCT1
|
||||
@@NOTOCT1:
|
||||
jmp short B_PLAY_OCT1
|
||||
B_PLAY_NOTOCT1:
|
||||
;spval = (ulong)(note_dat[part2->note - 'A'] / octdat[part2->oct - 1]);
|
||||
mov CX,[SI].SPART.oct
|
||||
dec CX
|
||||
dec CX
|
||||
shr BX,CL
|
||||
@@OCT1:
|
||||
B_PLAY_OCT1:
|
||||
test Machine_State,10h ; PC/AT
|
||||
jz short @@PC98
|
||||
@@PCAT: in AL,61h ;ビープON
|
||||
jz short B_PLAY_PC98
|
||||
;@@PCAT:
|
||||
in AL,61h ;ビープON
|
||||
or AL,3
|
||||
out 61h,AL ; AT
|
||||
mov AX,BX
|
||||
mov BX,TVALATORG/2
|
||||
mov CX,BEEP_CNT_AT
|
||||
jmp short @@DO_SCALE
|
||||
jmp short B_PLAY_DO_SCALE
|
||||
EVEN
|
||||
@@PC98:
|
||||
B_PLAY_PC98:
|
||||
;ビープON (上にもってきたけど大丈夫かなあ)
|
||||
mov AL,BEEP_ON
|
||||
out BEEP_SW,AL ; 98
|
||||
|
@ -84,16 +85,16 @@ BGM_BELL:
|
|||
xor AX,AX
|
||||
mov ES,AX
|
||||
test byte ptr ES:[0501H],80h
|
||||
jz short @@CLOCK10MHZ
|
||||
jz short B_PLAY_CLOCK10MHZ
|
||||
;spval = spval * 998UL / 1229UL;
|
||||
mov AX,BX
|
||||
mov BX,TVAL8ORG/2
|
||||
@@DO_SCALE:
|
||||
B_PLAY_DO_SCALE:
|
||||
mul BX
|
||||
mov BX,TVAL10ORG/2
|
||||
div BX
|
||||
mov BX,AX
|
||||
@@CLOCK10MHZ:
|
||||
B_PLAY_CLOCK10MHZ:
|
||||
;タイマカウント値設定
|
||||
mov AL,BL
|
||||
mov DX,CX
|
||||
|
@ -103,7 +104,7 @@ BGM_BELL:
|
|||
;ビープON
|
||||
; mov AL,BEEP_ON
|
||||
; out BEEP_SW,AL
|
||||
@@EXIT:
|
||||
B_PLAY_EXIT:
|
||||
pop SI
|
||||
ret
|
||||
|
||||
|
|
|
@ -340,14 +340,14 @@ _dummy_skip:
|
|||
stosw
|
||||
test AX,AX
|
||||
mov AX,InvalidData
|
||||
jz short @@COLOR
|
||||
jz short GRPPILOD_COLOR
|
||||
jmp _errorA
|
||||
@@COLOR:
|
||||
GRPPILOD_COLOR:
|
||||
call byte_load
|
||||
cmp DL,4 ; 色数=16色?
|
||||
jz short @@MACHINE_INFORMATION
|
||||
jz short GRPPILOD_MACHINE_INFORMATION
|
||||
jmp _errorA
|
||||
@@MACHINE_INFORMATION:
|
||||
GRPPILOD_MACHINE_INFORMATION:
|
||||
mov AL,DL
|
||||
stosb
|
||||
call byte_load
|
||||
|
@ -430,9 +430,9 @@ _minfo_skipB:
|
|||
pop DS
|
||||
mov BX,AX
|
||||
mov AX,InsufficientMemory
|
||||
jnb short @@SET_PTRS
|
||||
jnb short GRPPILOD_SET_PTRS
|
||||
jmp _errorA
|
||||
@@SET_PTRS:
|
||||
GRPPILOD_SET_PTRS:
|
||||
mov AX,BX
|
||||
mov DS:gbuffer_off,0
|
||||
mov DS:gbuffer_seg,AX
|
||||
|
@ -543,9 +543,9 @@ loop_rlA:
|
|||
mov DS:bit_len,CL
|
||||
mov DH,0
|
||||
dec BH
|
||||
jnz short @@LENGTH_CONTEXT
|
||||
jnz short GRPPILOD_LENGTH_CONTEXT
|
||||
jmp end_rlA
|
||||
@@LENGTH_CONTEXT:
|
||||
GRPPILOD_LENGTH_CONTEXT:
|
||||
IF 1
|
||||
cmp BH,8 ; read length context
|
||||
jl short skip_rlB
|
||||
|
@ -600,10 +600,10 @@ end_rlA:
|
|||
mov CX,AX
|
||||
|
||||
test BL,BL
|
||||
jnz short @@POSITION
|
||||
jnz short GRPPILOD_POSITION
|
||||
jmp _position_zero ; position: 0 前の2dotが同じ色なら2dot左
|
||||
; 違う色なら4dot左
|
||||
@@POSITION:
|
||||
GRPPILOD_POSITION:
|
||||
mov BH,0 ; BH = pixel position
|
||||
mov AX,DS:xwidth
|
||||
cmp BL,1
|
||||
|
|
|
@ -69,19 +69,19 @@ func PALETTE_SHOW ; palette_show() {
|
|||
|
||||
mov CH,BL ; 0
|
||||
cmp DH,100
|
||||
jna short @@SKIP
|
||||
jna short PALSHOW_SKIP
|
||||
mov CH,0fh
|
||||
sub DH,200 ; AL = 200 - AL
|
||||
neg DH
|
||||
@@SKIP:
|
||||
PALSHOW_SKIP:
|
||||
mov SI,offset Palettes
|
||||
mov DL,100
|
||||
|
||||
cmp PaletteNote,BX ; 0
|
||||
jne short @@LCD
|
||||
jne short PALSHOW_LCD
|
||||
|
||||
|
||||
@@PLOOP: mov AL,BL
|
||||
PALSHOW_PLOOP: mov AL,BL
|
||||
out 0a8h,AL ; palette number
|
||||
|
||||
lodsw
|
||||
|
@ -109,14 +109,14 @@ func PALETTE_SHOW ; palette_show() {
|
|||
|
||||
inc BX
|
||||
cmp BX,16
|
||||
jl short @@PLOOP
|
||||
jl short PALSHOW_PLOOP
|
||||
|
||||
pop SI
|
||||
ret
|
||||
|
||||
; 液晶〜〜〜
|
||||
EVEN
|
||||
@@LCD:
|
||||
PALSHOW_LCD:
|
||||
mov BX,DX
|
||||
IF 0
|
||||
mov DX,0ae8eh
|
||||
|
@ -129,22 +129,22 @@ ELSE
|
|||
out 0f6h,AL
|
||||
in AL,DX
|
||||
cmp AL,0ffh
|
||||
jnz short @@NEWNOTE
|
||||
jnz short PALSHOW_NEWNOTE
|
||||
mov DX,0ae8eh
|
||||
in AL,DX
|
||||
shr AL,2
|
||||
@@NEWNOTE:
|
||||
PALSHOW_NEWNOTE:
|
||||
shr AL,1
|
||||
cmc
|
||||
ENDIF
|
||||
sbb AL,AL
|
||||
mov CS:@@XORVAL,AL ; 反転
|
||||
mov CS:PALSHOW_XORVAL,AL ; 反転
|
||||
mov DX,BX
|
||||
|
||||
push DI ; 1byte
|
||||
mov DI,0 ; +3byte
|
||||
; =4(even)
|
||||
@@LLOOP:
|
||||
PALSHOW_LLOOP:
|
||||
mov AX,DI
|
||||
out 0a8h,AL ; palette number
|
||||
|
||||
|
@ -172,12 +172,12 @@ ENDIF
|
|||
mov AH,BH ; AL = g' AH = BH = b'
|
||||
|
||||
cmp BH,AL ; BL = r AL = g AH = BH = b
|
||||
ja short @@S1
|
||||
ja short PALSHOW_S1
|
||||
mov BH,AL
|
||||
@@S1: cmp BH,BL
|
||||
ja short @@S2
|
||||
PALSHOW_S1: cmp BH,BL
|
||||
ja short PALSHOW_S2
|
||||
mov BH,BL ; BH = max(r,g,b)
|
||||
@@S2:
|
||||
PALSHOW_S2:
|
||||
shl AL,1
|
||||
add AL,BL
|
||||
shl AL,1
|
||||
|
@ -195,7 +195,7 @@ ENDIF
|
|||
and AH,AL
|
||||
xor AH,0
|
||||
org $-1
|
||||
@@XORVAL db ?
|
||||
PALSHOW_XORVAL db ?
|
||||
|
||||
shr AH,1
|
||||
sbb AL,AL
|
||||
|
@ -211,7 +211,7 @@ ENDIF
|
|||
out 0aah,AL ; g
|
||||
inc DI
|
||||
cmp DI,16
|
||||
jl short @@LLOOP
|
||||
jl short PALSHOW_LLOOP
|
||||
|
||||
pop DI
|
||||
pop SI
|
||||
|
|
|
@ -65,29 +65,29 @@ func RESDATA_EXIST ; resdata_exist() {
|
|||
int 21h
|
||||
CLD
|
||||
mov BX, ES:[BX-2]
|
||||
@@FIND:
|
||||
RSDEXIST_FIND:
|
||||
mov ES,BX
|
||||
inc BX
|
||||
mov AX,ES:[_mcb_owner]
|
||||
or AX,AX
|
||||
je short @@SKIP
|
||||
je short RSDEXIST_SKIP
|
||||
mov AX,ES:[_mcb_size]
|
||||
cmp AX,[BP+@@parasize]
|
||||
jne short @@SKIP
|
||||
jne short RSDEXIST_SKIP
|
||||
mov CX,[BP+@@id_len]
|
||||
_lds SI,[BP+@@id_str]
|
||||
mov DI,10h ; MCBの次
|
||||
rep cmpsb
|
||||
je short @@FOUND
|
||||
@@SKIP:
|
||||
je short RSDEXIST_FOUND
|
||||
RSDEXIST_SKIP:
|
||||
mov AX,ES:[_mcb_size]
|
||||
add BX,AX
|
||||
mov AL,ES:[_mcb_flg]
|
||||
cmp AL,'M'
|
||||
je short @@FIND
|
||||
@@NOTFOUND:
|
||||
je short RSDEXIST_FIND
|
||||
RSDEXIST_NOTFOUND:
|
||||
mov BX,0
|
||||
@@FOUND:
|
||||
RSDEXIST_FOUND:
|
||||
mov AX,BX
|
||||
|
||||
_pop DS
|
||||
|
@ -118,8 +118,8 @@ endif
|
|||
push word ptr [BP+@@parasize]
|
||||
_call RESDATA_EXIST
|
||||
or AX,AX
|
||||
jnz short @@IGNORE
|
||||
@@CREATE:
|
||||
jnz short RSDCREATE_IGNORE
|
||||
RSDCREATE_CREATE:
|
||||
mov AX,5800h ; アロケーションストラテジを得る
|
||||
int 21h
|
||||
mov DX,AX ; 得たストラテジを保存する
|
||||
|
@ -131,10 +131,10 @@ endif
|
|||
mov BX,[BP+@@parasize]
|
||||
int 21h
|
||||
mov CX,0
|
||||
jc short @@DAME
|
||||
jc short RSDCREATE_DAME
|
||||
mov BX,CS ; 自分より前ならOK
|
||||
cmp BX,AX
|
||||
jnb short @@ALLOC_OK
|
||||
jnb short RSDCREATE_ALLOC_OK
|
||||
mov ES,AX ; 自分より後ろだったら
|
||||
mov AH,49h ; 解放する。
|
||||
int 21h ;
|
||||
|
@ -146,7 +146,7 @@ endif
|
|||
mov AH,48h ; メモリ割り当て
|
||||
mov BX,[BP+@@parasize]
|
||||
int 21h
|
||||
@@ALLOC_OK:
|
||||
RSDCREATE_ALLOC_OK:
|
||||
mov CX,AX
|
||||
push AX
|
||||
|
||||
|
@ -163,13 +163,13 @@ endif
|
|||
|
||||
pop CX
|
||||
|
||||
@@DAME:
|
||||
RSDCREATE_DAME:
|
||||
mov AX,5801h ; アロケーションストラテジの復帰
|
||||
mov BX,DX ;
|
||||
int 21h ;
|
||||
mov AX,CX
|
||||
|
||||
@@IGNORE:
|
||||
RSDCREATE_IGNORE:
|
||||
_pop DS
|
||||
pop DI
|
||||
pop SI
|
||||
|
|
|
@ -57,26 +57,26 @@ func RESPAL_EXIST
|
|||
int 21h
|
||||
CLD
|
||||
mov BX, ES:[BX-2]
|
||||
@@FIND:
|
||||
RSPEXIST_FIND:
|
||||
mov ES,BX
|
||||
inc BX
|
||||
mov AX,ES:[_mcb_owner]
|
||||
or AX,AX
|
||||
je short @@SKIP
|
||||
je short RSPEXIST_SKIP
|
||||
mov DI,10h ; MCBの次
|
||||
mov CX,IDLEN
|
||||
mov SI,offset ResPalID
|
||||
rep cmpsb
|
||||
je short @@FOUND
|
||||
@@SKIP:
|
||||
je short RSPEXIST_FOUND
|
||||
RSPEXIST_SKIP:
|
||||
mov AX,ES:[_mcb_size]
|
||||
add BX,AX
|
||||
mov AL,ES:[_mcb_flg]
|
||||
cmp AL,'M'
|
||||
je short @@FIND
|
||||
@@NOTFOUND:
|
||||
je short RSPEXIST_FIND
|
||||
RSPEXIST_NOTFOUND:
|
||||
mov BX,0
|
||||
@@FOUND:
|
||||
RSPEXIST_FOUND:
|
||||
mov AX,BX
|
||||
mov ResPalSeg,AX
|
||||
|
||||
|
@ -97,8 +97,8 @@ endif
|
|||
call RESPAL_EXIST
|
||||
or AX,AX
|
||||
mov AX,2
|
||||
jnz short @@IGNORE
|
||||
@@CREATE:
|
||||
jnz short RSPEXIST_IGNORE
|
||||
RSPEXIST_CREATE:
|
||||
mov AX,5800h ; アロケーションストラテジを得る
|
||||
int 21h
|
||||
mov DX,AX ; 得たストラテジを保存する
|
||||
|
@ -110,10 +110,10 @@ endif
|
|||
mov BX,4 ; 64/16
|
||||
int 21h
|
||||
mov CX,0
|
||||
jc short @@DAME
|
||||
jc short RSPEXIST_DAME
|
||||
mov BX,CS ; 自分より前ならOK
|
||||
cmp BX,AX
|
||||
jnb short @@ALLOC_OK
|
||||
jnb short RSPEXIST_ALLOC_OK
|
||||
mov ES,AX ; 自分より後ろだったら
|
||||
mov AH,49h ; 解放する。
|
||||
int 21h ;
|
||||
|
@ -125,7 +125,7 @@ endif
|
|||
mov AH,48h ; メモリ割り当て
|
||||
mov BX,4 ; 64/16
|
||||
int 21h
|
||||
@@ALLOC_OK:
|
||||
RSPEXIST_ALLOC_OK:
|
||||
mov CX,AX
|
||||
mov ResPalSeg,AX
|
||||
|
||||
|
@ -146,13 +146,13 @@ endif
|
|||
stosw
|
||||
mov CX,1
|
||||
|
||||
@@DAME:
|
||||
RSPEXIST_DAME:
|
||||
mov AX,5801h ; アロケーションストラテジの復帰
|
||||
mov BX,DX ;
|
||||
int 21h ;
|
||||
mov AX,CX
|
||||
|
||||
@@IGNORE:
|
||||
RSPEXIST_IGNORE:
|
||||
pop DI
|
||||
pop SI
|
||||
ret
|
||||
|
|
|
@ -6,6 +6,8 @@
|
|||
; (???), resulting in a "symbol already defined elsewhere" error
|
||||
; * the "piloadc_" prefix on constants
|
||||
; * the @@ prefix on function parameters
|
||||
; * unique label names to make up for JWasm's lack of support for truly block-
|
||||
; scoped symbols
|
||||
; * "rep segcs movsw" being spelled out to what it's actually supposed to mean
|
||||
; (movs word ptr es:[di], word ptr cs:[si])
|
||||
; * the ID check being changed from 'iP' to 'NZ' (lol ZUN)
|
||||
|
@ -362,19 +364,19 @@ piload0:
|
|||
error: ret
|
||||
pilop:
|
||||
test ds:piloadc_option,4
|
||||
jz @@lop2
|
||||
@@lop:
|
||||
jz pilop_lop2
|
||||
pilop_lop:
|
||||
lodsb
|
||||
cmp al,1ah
|
||||
jz @@lop2
|
||||
jz pilop_lop2
|
||||
mov dl,al
|
||||
mov ah,2
|
||||
int 21h
|
||||
jmp short @@lop
|
||||
@@lop2:
|
||||
jmp short pilop_lop
|
||||
pilop_lop2:
|
||||
lodsb
|
||||
or al,al
|
||||
jnz @@lop2
|
||||
jnz pilop_lop2
|
||||
lodsb
|
||||
mov bl,al ;palet flag
|
||||
lodsw ;ドット比率
|
||||
|
@ -384,10 +386,10 @@ pilop:
|
|||
mov ax,-32
|
||||
jnz error
|
||||
test ds:piloadc_option,8
|
||||
jz @@skip
|
||||
jz pilop_skip
|
||||
mov ax,cx
|
||||
call gmode
|
||||
@@skip:
|
||||
pilop_skip:
|
||||
add si,4 ;machine code skip
|
||||
lodsw
|
||||
xchg ah,al ;dmy
|
||||
|
@ -431,13 +433,13 @@ code2:
|
|||
codee:
|
||||
mov si,di
|
||||
cmp ds:piloadc_x_pos,0
|
||||
jge @@jmp@
|
||||
jge codee_jmp@
|
||||
mov ds:piloadc_x_pos,cx
|
||||
@@jmp@:
|
||||
codee_jmp@:
|
||||
cmp ds:piloadc_y_pos,0
|
||||
jge @@jmp
|
||||
jge codee_jmp
|
||||
mov ds:piloadc_y_pos,dx
|
||||
@@jmp:
|
||||
codee_jmp:
|
||||
|
||||
mov cx,ds:piloadc_x_pos
|
||||
mov ax,ds:piloadc_y_pos
|
||||
|
@ -486,11 +488,11 @@ codee:
|
|||
jnz nopalet
|
||||
mov cx,48
|
||||
mov di,piloadc_PaletteBuff
|
||||
@@lop1:
|
||||
codee_lop1:
|
||||
lodsb
|
||||
shr al,4
|
||||
stosb
|
||||
loop @@lop1
|
||||
loop codee_lop1
|
||||
mov bx,si
|
||||
jmp short palend
|
||||
nopalet:
|
||||
|
@ -501,9 +503,9 @@ nopalet:
|
|||
rep movs word ptr es:[di], word ptr cs:[si]
|
||||
palend:
|
||||
test ds:piloadc_option,1
|
||||
jz @@skip
|
||||
jz palend_skip
|
||||
call palset
|
||||
@@skip:
|
||||
palend_skip:
|
||||
call maketbl
|
||||
mov dh,1
|
||||
mov di,piloadc_gbuff
|
||||
|
@ -637,10 +639,10 @@ lop0:
|
|||
|
||||
bit01:
|
||||
get1bit e
|
||||
jc @@jmp
|
||||
jc bit01_jmp
|
||||
lodsb
|
||||
jmp short color2
|
||||
@@jmp:
|
||||
bit01_jmp:
|
||||
mov ax,[si]
|
||||
xchg ah,al
|
||||
mov [si],ax
|
||||
|
@ -711,12 +713,12 @@ color2:
|
|||
|
||||
@bit01:
|
||||
get1bit f
|
||||
jc @@jmp
|
||||
jc @bit01_jmp
|
||||
mov ah,[si]
|
||||
mov di,bp
|
||||
cld
|
||||
ret
|
||||
@@jmp:
|
||||
@bit01_jmp:
|
||||
mov cx,[si]
|
||||
xchg ch,cl
|
||||
mov [si],cx
|
||||
|
@ -803,7 +805,7 @@ fclose:
|
|||
; in ax=ドット比率データ
|
||||
gmode:
|
||||
cmp ax,102h
|
||||
jz @@next
|
||||
jz gmode_next
|
||||
; or ax,ax
|
||||
; mov ax,-32
|
||||
; jnz error
|
||||
|
@ -815,7 +817,7 @@ gmode:
|
|||
mov al,1
|
||||
out 6ah,al
|
||||
ret
|
||||
@@next:
|
||||
gmode_next:
|
||||
mov ch,080h
|
||||
mov ah,42h
|
||||
int 18h
|
||||
|
@ -834,13 +836,13 @@ gtrans:
|
|||
pusha
|
||||
push es
|
||||
cmp ds:piloadc_vadr,32000
|
||||
jl @@skip
|
||||
jl gtrans_skip
|
||||
sub ds:piloadc_vadr,32000
|
||||
or ds:piloadc_flg800,1
|
||||
mov al,1
|
||||
out 0a6h,al
|
||||
; out 0a4h,al
|
||||
@@skip:
|
||||
gtrans_skip:
|
||||
|
||||
disp:
|
||||
mov si,ds:piloadc_bufend
|
||||
|
@ -856,7 +858,7 @@ ylop:
|
|||
mov di,ds:piloadc_vadr
|
||||
mov ax,ds:piloadc_x_pos
|
||||
and ax,7
|
||||
jz @@skip
|
||||
jz ylop_skip
|
||||
mov cx,8
|
||||
sub cx,ax
|
||||
push cx
|
||||
|
@ -865,7 +867,7 @@ ylop:
|
|||
not al
|
||||
xor bx,bx
|
||||
mov dx,bx
|
||||
@@lop:
|
||||
ylop_lop:
|
||||
lodsb
|
||||
shl1 al
|
||||
rcl1 bl
|
||||
|
@ -875,7 +877,7 @@ ylop:
|
|||
rcl1 dl
|
||||
shl1 al
|
||||
rcl1 dh
|
||||
loop @@lop
|
||||
loop ylop_lop
|
||||
mov cx,0a800h
|
||||
mov es,cx
|
||||
|
||||
|
@ -891,28 +893,28 @@ ylop:
|
|||
out 7eh,al
|
||||
mov al,ah
|
||||
test ds:piloadc_option,40h
|
||||
jz @@skip0
|
||||
jz ylop_skip0
|
||||
mov ah,ds:piloadc_tcol
|
||||
shr ah,1
|
||||
jnc @@jmp1
|
||||
jnc ylop_jmp1
|
||||
not dh
|
||||
@@jmp1:
|
||||
ylop_jmp1:
|
||||
shr ah,1
|
||||
jnc @@jmp2
|
||||
jnc ylop_jmp2
|
||||
not dl
|
||||
@@jmp2:
|
||||
ylop_jmp2:
|
||||
shr ah,1
|
||||
jnc @@jmp3
|
||||
jnc ylop_jmp3
|
||||
not bh
|
||||
@@jmp3:
|
||||
ylop_jmp3:
|
||||
shr ah,1
|
||||
jnc @@jmp4
|
||||
jnc ylop_jmp4
|
||||
not bl
|
||||
@@jmp4:
|
||||
ylop_jmp4:
|
||||
or bx,dx
|
||||
or bl,bh
|
||||
or al,bl
|
||||
@@skip0:
|
||||
ylop_skip0:
|
||||
stosb
|
||||
xor al,al
|
||||
out 7ch,al
|
||||
|
@ -922,7 +924,7 @@ ylop:
|
|||
sub cx,ax
|
||||
shr cx,3
|
||||
jmp short xlop
|
||||
@@skip:
|
||||
ylop_skip:
|
||||
mov cx,ds:piloadc_x_wid
|
||||
shr cx,3
|
||||
xlop:
|
||||
|
@ -949,7 +951,7 @@ xlop:
|
|||
mov es,ax
|
||||
|
||||
test ds:piloadc_option,40h
|
||||
jnz @@jmp0
|
||||
jnz xlop_jmp0
|
||||
mov es:[di],dh
|
||||
mov es:[di+8000h],dl
|
||||
mov ah,0b8h
|
||||
|
@ -962,7 +964,7 @@ xlop:
|
|||
dec cx
|
||||
jz xend
|
||||
jmp xlop
|
||||
@@jmp0:
|
||||
xlop_jmp0:
|
||||
mov ah,ds:piloadc_tcol
|
||||
mov al,0c0h
|
||||
out 7ch,al
|
||||
|
@ -976,21 +978,21 @@ xlop:
|
|||
out 7eh,al
|
||||
|
||||
shr ah,1
|
||||
jnc @@jmp1
|
||||
jnc xlop_jmp1
|
||||
not dh
|
||||
@@jmp1:
|
||||
xlop_jmp1:
|
||||
shr ah,1
|
||||
jnc @@jmp2
|
||||
jnc xlop_jmp2
|
||||
not dl
|
||||
@@jmp2:
|
||||
xlop_jmp2:
|
||||
shr ah,1
|
||||
jnc @@jmp3
|
||||
jnc xlop_jmp3
|
||||
not bh
|
||||
@@jmp3:
|
||||
xlop_jmp3:
|
||||
shr ah,1
|
||||
jnc @@jmp4
|
||||
jnc xlop_jmp4
|
||||
not bl
|
||||
@@jmp4:
|
||||
xlop_jmp4:
|
||||
mov ax,dx
|
||||
or ax,bx
|
||||
or al,ah
|
||||
|
@ -1009,7 +1011,7 @@ xend:
|
|||
sub ah,cl
|
||||
xor bx,bx
|
||||
mov dx,bx
|
||||
@@lop:
|
||||
xend_lop:
|
||||
lodsb
|
||||
shl1 al
|
||||
rcl1 bl
|
||||
|
@ -1019,7 +1021,7 @@ xend:
|
|||
rcl1 dl
|
||||
shl1 al
|
||||
rcl1 dh
|
||||
loop @@lop
|
||||
loop xend_lop
|
||||
mov cl,ah
|
||||
mov ch,0ffh
|
||||
shl ch,cl
|
||||
|
@ -1040,28 +1042,28 @@ xend:
|
|||
out 7eh,al
|
||||
mov al,ch
|
||||
test ds:piloadc_option,40h
|
||||
jz @@skip0
|
||||
jz xend_skip0
|
||||
mov ah,ds:piloadc_tcol
|
||||
shr ah,1
|
||||
jnc @@jmp1
|
||||
jnc xend_jmp1
|
||||
not dh
|
||||
@@jmp1:
|
||||
xend_jmp1:
|
||||
shr ah,1
|
||||
jnc @@jmp2
|
||||
jnc xend_jmp2
|
||||
not dl
|
||||
@@jmp2:
|
||||
xend_jmp2:
|
||||
shr ah,1
|
||||
jnc @@jmp3
|
||||
jnc xend_jmp3
|
||||
not bh
|
||||
@@jmp3:
|
||||
xend_jmp3:
|
||||
shr ah,1
|
||||
jnc @@jmp4
|
||||
jnc xend_jmp4
|
||||
not bl
|
||||
@@jmp4:
|
||||
xend_jmp4:
|
||||
or bx,dx
|
||||
or bl,bh
|
||||
or al,bl
|
||||
@@skip0:
|
||||
xend_skip0:
|
||||
stosb
|
||||
xor al,al
|
||||
out 7ch,al
|
||||
|
@ -1081,12 +1083,12 @@ ext2:
|
|||
ret
|
||||
piloadc_fin:
|
||||
test ds:piloadc_flg800,1
|
||||
jle @@jmp
|
||||
jle fin_jmp
|
||||
mov al,0
|
||||
; out 0a4h,al
|
||||
out 0a6h,al
|
||||
and ds:piloadc_flg800,not 2
|
||||
@@jmp:
|
||||
fin_jmp:
|
||||
call fclose
|
||||
mov sp,spreg
|
||||
xor ax,ax
|
||||
|
@ -1105,22 +1107,22 @@ palset:
|
|||
mov bh,100
|
||||
mov di,piloadc_tonetbl
|
||||
xor cx,cx
|
||||
@@plop:
|
||||
palset_plop:
|
||||
mov al,cl
|
||||
mul bl
|
||||
div bh
|
||||
stosb
|
||||
inc cl
|
||||
cmp cl,16
|
||||
jnz @@plop
|
||||
jnz palset_plop
|
||||
|
||||
mov si,piloadc_PaletteBuff
|
||||
mov bx,piloadc_tonetbl
|
||||
mov cx,16
|
||||
xor ah,ah
|
||||
test ds:piloadc_option,16
|
||||
jnz @@lop2
|
||||
@@lop: ;通常
|
||||
jnz palset_lop2
|
||||
palset_lop: ;通常
|
||||
mov al,ah
|
||||
out 0a8h,al ;palet no
|
||||
lodsb
|
||||
|
@ -1133,10 +1135,10 @@ palset:
|
|||
xlat [bx]
|
||||
out 0aeh,al ;blue
|
||||
inc ah
|
||||
loop @@lop
|
||||
loop palset_lop
|
||||
pop bx
|
||||
ret
|
||||
@@lop2: ;NOTE用
|
||||
palset_lop2: ;NOTE用
|
||||
mov al,16
|
||||
sub al,cl
|
||||
out 0a8h,al ;palet no
|
||||
|
@ -1162,7 +1164,7 @@ palset:
|
|||
sbb al,al
|
||||
out port,al
|
||||
endm
|
||||
loop @@lop2
|
||||
loop palset_lop2
|
||||
pop bx
|
||||
ret
|
||||
|
||||
|
|
Loading…
Reference in New Issue