Skip to content

Commit a44dc95

Browse files
committed
restore the original clear routine for the plasmacube
1 parent ccddc6d commit a44dc95

File tree

3 files changed

+49
-46
lines changed

3 files changed

+49
-46
lines changed

Parts/PLZPART/PLZA.ASM

Lines changed: 47 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -440,85 +440,89 @@ global _do_clear
440440
_do_clear:
441441

442442
; ARG vmem:dword, otau:dword, ntau:dword
443-
%define vmem esp+8
444-
%define otau esp+12
445-
%define ntau esp+16
443+
%define vmem ebp+8
444+
%define otau ebp+12
445+
%define ntau ebp+16
446446

447447
push ebp
448+
mov ebp, esp
449+
push esi
450+
push edi
451+
push ebx
448452

449-
mov dx, 3c4h
450-
mov ax, 0f02h
453+
;mov dx, 3c4h
454+
;mov ax, 0f02h
451455
;out dx, ax
452456

453457
mov edx, [vmem]
454-
mov edi, edx
455-
mov ebx, [otau] ; dx:bx-> otau
458+
mov ebx, [otau] ; dx:bx-> otau
456459
mov esi, [ntau]
457460
sub esi, ebx ; dx:bx+si-> ntau
458-
movzx edx, byte [vmem] ; fill latches
461+
;movzx edx, byte [vmem] ; fill latches
459462
mov word [ycnt], 134
460463
xor eax, eax
461464

462465
..@lineloop:
463-
cmp word [ebx], 320
466+
cmp word [ebx], 640
464467
je ..@nextline
465468

466469
movzx edi, word [ebx]
467-
shr edi, 2
470+
;shr edi, 2
468471
movzx ecx, word [ebx+esi]
469-
shr ecx, 2
472+
;shr ecx, 2
470473
sub ecx, edi
471474
jb ..@l1
472475
add edi, edx
473-
add edi, [vmem]
474476
rep stosb
475477
..@l1:
476478
movzx edi, word [ebx+esi+2]
477-
shr edi, 2
479+
;shr edi, 2
478480
movzx ecx, word [ebx+2]
479-
shr ecx, 2
481+
;shr ecx, 2
480482
sub ecx, edi
481483
jb ..@nextline
482484
add edi, edx
483485
inc edi
484-
add edi, [vmem]
485-
rep stosb
486+
rep stosb
486487

487488
..@nextline:
488-
mov word [ebx], 320
489+
mov word [ebx], 640
489490
mov word [ebx+2], 0
490491

491-
add dx, 320
492-
add bx, 4
492+
add edx, 640
493+
add ebx, 4
493494
sub word [ycnt], 1
494495
jae ..@lineloop
495496

496497
; Maskaa p„„t...
497498

498-
mov edi, [vmem]
499-
mov esi, [ntau] ; dx:bx-> ntau
500-
mov ecx, 134
501-
mov edx, 3c4h
502-
mov eax, 0f02h
503-
..@maskloop:
504-
movzx ebx, word [esi]
505-
dec bx
506-
mov ah, [end_mask+ebx]
507-
;out dx, ax
508-
shr bx, 2
509-
mov [ebx+edi], ch
510-
511-
movzx ebx, word [esi+2]
512-
inc bx
513-
mov ah, [start_mask+ebx]
514-
;out dx, ax
515-
shr bx, 2
516-
mov [ebx+edi], ch
517-
518-
..@nextmask:
519-
add si,4
520-
add di, 320
521-
loop ..@maskloop
499+
; mov edi, [vmem]
500+
; mov esi, [ntau] ; dx:bx-> ntau
501+
; mov ecx, 134
502+
; mov edx, 3c4h
503+
; mov eax, 0f02h
504+
;..@maskloop:
505+
; movzx ebx, word [esi]
506+
; dec bx
507+
; mov ah, [end_mask+ebx]
508+
; ;out dx, ax
509+
; shr bx, 2
510+
; mov [ebx+edi], ch
511+
;
512+
; movzx ebx, word [esi+2]
513+
; inc bx
514+
; mov ah, [start_mask+ebx]
515+
; ;out dx, ax
516+
; shr bx, 2
517+
; mov [ebx+edi], ch
518+
;
519+
;..@nextmask:
520+
; add si,4
521+
; add di, 320
522+
; loop ..@maskloop
522523

524+
pop ebx
525+
pop edi
526+
pop esi
523527
pop ebp
524528
ret

Parts/PLZPART/PLZFILL.C

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ int x1,y1,x2,y2,x3,y3,x4,y4,color, dd;
183183

184184
clear()
185185
{
186-
short *otau=clrtau[(clrptr-3)&7], *ntau=clrtau[clrptr];
186+
short *otau=clrtau[(clrptr-1)&7], *ntau=clrtau[clrptr];
187187

188188
clrptr=(clrptr+1)&7;
189189

Parts/PLZPART/VECT.C

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,6 @@ void vect()
137137
copper2();
138138
copper3();
139139
calculate(1);
140-
memset( vram_half, 0, 640 * 134 );
141140
draw(15);
142141

143142
char * src = vram_half + 160;
@@ -151,7 +150,7 @@ void vect()
151150
}
152151

153152
demo_blit();
154-
//clear();
153+
clear();
155154
}
156155
// tw_closegraph();
157156
}

0 commit comments

Comments
 (0)