projects
/
fifth.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
95b395ff8401ba24f4d1579746aaeeca651276c6
[fifth.git]
/
emulator
/
charput.inc
1
; part of virtual processor, emulator for FIFTH
\r
2
\r
3
xcharput:
\r
4
mov eax, [es:edi] ; chary
\r
5
mov [chary], eax
\r
6
mov ecx, [es:edi+4] ; charx
\r
7
mov eax, [es:edi+8] ; addrdest
\r
8
add eax, [xms_addr]
\r
9
mov ebx, [es:eax]
\r
10
mov [sizex], ebx
\r
11
add eax, 8
\r
12
add eax, ecx
\r
13
push eax
\r
14
sub edx, edx
\r
15
mov eax, [chary]
\r
16
mul dword [sizex]
\r
17
pop ebx
\r
18
add eax, ebx
\r
19
mov [addrdst], eax
\r
20
mov eax, [es:edi+12]
\r
21
add eax, [xms_addr]
\r
22
mov [addrsrc], eax
\r
23
mov al, [es:edi+16]
\r
24
mov [colorbg], al
\r
25
mov al, [es:edi+20]
\r
26
mov [colorfg], al
\r
27
add edi, 24
\r
28
\r
29
mov [linenum], 8
\r
30
charl1:
\r
31
mov eax, [addrsrc]
\r
32
mov bx, [es:eax]
\r
33
mov edx, [addrdst]
\r
34
mov cx, 8
\r
35
charl2:
\r
36
dec cx
\r
37
bt bx, cx
\r
38
jnc charl3
\r
39
mov al, [colorfg]
\r
40
jmp charl4
\r
41
charl3:
\r
42
mov al, [colorbg]
\r
43
charl4:
\r
44
mov [es:edx], al
\r
45
inc edx
\r
46
cmp cx, 0
\r
47
jne charl2
\r
48
\r
49
mov eax, [sizex]
\r
50
add [addrdst], eax
\r
51
inc [addrsrc]
\r
52
dec [linenum]
\r
53
mov al, [linenum]
\r
54
cmp al, 0
\r
55
jne charl1
\r
56
\r
57
jmp emu
\r
58
\r
59
colorfg db 0
\r
60
colorbg db 0
\r
61
charx dd 0
\r
62
chary dd 0
\r
63
addrsrc dd 0
\r
64
addrdst dd 0
\r
65
sizex dd 0
\r
66
linenum db 0
\r