|
|
| version 1.8, 2004/01/10 17:24:01 | version 1.11, 2004/01/31 08:34:41 |
|---|---|
| Line 9 section .bss | Line 9 section .bss |
| global _mem | global _mem |
| extern _i286core | extern _i286core |
| extern _grcg | extern _grcg |
| extern _extmem | |
| extern _gdcs | extern _gdcs |
| extern _tramupdate | extern _tramupdate |
| extern _vramupdate | extern _vramupdate |
| extern _cgwindow | extern _cgwindow |
| ; extern ___font | |
| extern _vramop | extern _vramop |
| _mem resb 0x200000 | _mem resb 0x200000 |
| Line 84 section .text | Line 82 section .text |
| %if USE_EGCASM | %if USE_EGCASM |
| extern _egca_read | extern egc_read |
| extern _egca_read_w | extern egc_read_w |
| extern _egca_write | extern egc_write |
| extern _egca_write_w | extern egc_write_w |
| %else | %else |
| extern @egc_read@4 | extern @egc_read@4 |
| extern @egc_read_w@4 | extern @egc_read_w@4 |
| Line 122 wtram_a: cmp ecx, 000a3fe0h | Line 120 wtram_a: cmp ecx, 000a3fe0h |
| jc short wtram_m | jc short wtram_m |
| cmp ecx, 000a4000h | cmp ecx, 000a4000h |
| jnc wcgwindow_s | jnc wcgwindow_s |
| test ecx, 2 | |
| je short wtram_m | |
| cmp byte [_gdcs + gdcs_t.msw_accessable], 0 | cmp byte [_gdcs + gdcs_t.msw_accessable], 0 |
| je short wtram_e | je short wtram_e |
| wtram_m: shr ebx, 1 | wtram_m: shr ebx, 1 |
| Line 264 grcgtdw_end: pop ecx | Line 264 grcgtdw_end: pop ecx |
| @egc_wt: VRAMTRACE | @egc_wt: VRAMTRACE |
| pop ebx | pop ebx |
| %if USE_EGCASM | %if USE_EGCASM |
| jmp _egca_write | jmp egc_write |
| %else | %else |
| pushad | pushad |
| call @egc_write@8 | call @egc_write@8 |
| Line 279 grcgtdw_end: pop ecx | Line 279 grcgtdw_end: pop ecx |
| and ecx, 3fffh | and ecx, 3fffh |
| shr ebx, 12 | shr ebx, 12 |
| and ebx, byte (3*4) | and ebx, byte (3*4) |
| add ecx, [_extmem + extmem_t.pageptr + ebx] | add ecx, [_i286core + i286core_t.ems + ebx] |
| mov [EXTMEMORY + ecx], dl | mov [EXTMEMORY + ecx], dl |
| pop ecx | pop ecx |
| pop ebx | pop ebx |
| Line 385 grcgtcr_end: not al | Line 385 grcgtcr_end: not al |
| align 16 | align 16 |
| @egc_rd: pop ebx | @egc_rd: pop ebx |
| %if USE_EGCASM | %if USE_EGCASM |
| jmp _egca_read | jmp egc_read |
| %else | %else |
| pushad | pushad |
| call @egc_read@4 | call @egc_read@4 |
| Line 402 grcgtcr_end: not al | Line 402 grcgtcr_end: not al |
| and ecx, 3fffh | and ecx, 3fffh |
| shr ebx, 12 | shr ebx, 12 |
| and ebx, byte (3*4) | and ebx, byte (3*4) |
| add ecx, [_extmem + extmem_t.pageptr + ebx] | add ecx, [_i286core + i286core_t.ems + ebx] |
| mov al, [EXTMEMORY + ecx] | mov al, [EXTMEMORY + ecx] |
| pop ecx | pop ecx |
| pop ebx | pop ebx |
| Line 454 wtramw_a: je short wword_a1fffh | Line 454 wtramw_a: je short wword_a1fffh |
| jc short wtramw_m | jc short wtramw_m |
| cmp ecx, 000a3fffh | cmp ecx, 000a3fffh |
| jnc wcgwindoww_s | jnc wcgwindoww_s |
| test ecx, 2 | |
| je short wtramw_m | |
| cmp byte [_gdcs + gdcs_t.msw_accessable], 0 | cmp byte [_gdcs + gdcs_t.msw_accessable], 0 |
| je short wtramw_e | je short wtramw_e |
| wtramw_m: and ebx, 1fffh | wtramw_m: and ebx, 1fffh |
| Line 617 grcgwtdw_end: pop ecx | Line 619 grcgwtdw_end: pop ecx |
| @egcw_wt: VRAMTRACE_W | @egcw_wt: VRAMTRACE_W |
| pop ebx | pop ebx |
| %if USE_EGCASM | %if USE_EGCASM |
| jmp _egca_write_w | jmp egc_write_w |
| %else | %else |
| test ecx, 1 | test ecx, 1 |
| jne short egcw_wtodd | jne short egcw_wtodd |
| Line 646 egcw_wtodd: | Line 648 egcw_wtodd: |
| and ecx, 3fffh | and ecx, 3fffh |
| shr ebx, 12 | shr ebx, 12 |
| and ebx, byte (3*4) | and ebx, byte (3*4) |
| add ecx, [_extmem + extmem_t.pageptr + ebx] | add ecx, [_i286core + i286core_t.ems + ebx] |
| mov [EXTMEMORY + ecx], dx | mov [EXTMEMORY + ecx], dx |
| pop ecx | pop ecx |
| pop ebx | pop ebx |
| Line 779 grcgwtcr_end: not ax | Line 781 grcgwtcr_end: not ax |
| test ecx, 1 | test ecx, 1 |
| jne short egcw_rdodd | jne short egcw_rdodd |
| %if USE_EGCASM | %if USE_EGCASM |
| jmp _egca_read_w | jmp egc_read_w |
| %else | %else |
| pushad | pushad |
| call @egc_read_w@4 | call @egc_read_w@4 |
| Line 791 grcgwtcr_end: not ax | Line 793 grcgwtcr_end: not ax |
| egcw_rdodd: | egcw_rdodd: |
| %if USE_EGCASM | %if USE_EGCASM |
| inc ecx | inc ecx |
| call _egca_read | call egc_read |
| mov ah, al | mov ah, al |
| dec ecx | dec ecx |
| jmp _egca_read | jmp egc_read |
| %else | %else |
| pushad | pushad |
| push ecx | push ecx |
| Line 815 egcw_rdodd: | Line 817 egcw_rdodd: |
| and ecx, 3fffh | and ecx, 3fffh |
| shr ebx, 12 | shr ebx, 12 |
| and ebx, byte (3*4) | and ebx, byte (3*4) |
| add ecx, [_extmem + extmem_t.pageptr + ebx] | add ecx, [_i286core + i286core_t.ems + ebx] |
| mov ax, [EXTMEMORY + ecx] | mov ax, [EXTMEMORY + ecx] |
| pop ecx | pop ecx |
| pop ebx | pop ebx |
| Line 986 section .text | Line 988 section .text |
| align 16 | align 16 |
| writeextmem_w: | writeextmem_w: |
| %if USE_HIMEM | %if USE_HIMEM |
| cmp ecx, 10ffefh ; HIMEM | cmp ecx, (USE_HIMEM - 1) |
| jae near writehimem_w | jae near writehimem_w |
| %endif | %endif |
| push ebx | push ebx |
| Line 1024 writemain_b: mov [MAINMEMORY + ecx], d | Line 1026 writemain_b: mov [MAINMEMORY + ecx], d |
| align 16 | align 16 |
| writeextmem_b: | writeextmem_b: |
| %if USE_HIMEM | %if USE_HIMEM |
| cmp ecx, 10fff0h ; HIMEM | cmp ecx, USE_HIMEM |
| jae near writehimem | jae near writehimem |
| %endif | %endif |
| push ebx | push ebx |
| Line 1041 writeextmem_b: | Line 1043 writeextmem_b: |
| align 16 | align 16 |
| readmemory_w: | readmemory_w: |
| %if USE_HIMEM | %if USE_HIMEM |
| cmp ecx, 10ffefh ; HIMEM | cmp ecx, (USE_HIMEM - 1) |
| jae near readhimem_w | jae near readhimem_w |
| %endif | %endif |
| push ebx | push ebx |
| Line 1076 readmain_b: mov al, [MAINMEMORY + ecx | Line 1078 readmain_b: mov al, [MAINMEMORY + ecx |
| align 16 | align 16 |
| readmemory_b: | readmemory_b: |
| %if USE_HIMEM | %if USE_HIMEM |
| cmp ecx, 10fff0h ; HIMEM | cmp ecx, USE_HIMEM |
| jae near readhimem | jae near readhimem |
| %endif | %endif |
| push ebx | push ebx |