--- np2/i286x/memory.x86 2003/12/01 10:45:46 1.3 +++ np2/i286x/memory.x86 2003/12/12 01:04:40 1.5 @@ -6,7 +6,7 @@ section .bss - extern _mem + global _mem extern _i286core extern _grcg extern _extmem @@ -17,8 +17,7 @@ section .bss ; extern ___font extern _vramop - extern _extmemmng_ptr - extern _extmemmng_size +_mem resb 0x200000 MAINMEMORY equ _mem @@ -26,6 +25,8 @@ EXTMEMORY equ 0 VIDEOMEMORY equ _mem USERSMEMORY_R equ 0a8000h USERSMEMORY_W equ 0a0000h +_extmemmng_ptr equ _i286core + i286core_t.ext +_extmemmng_size equ _i286core + i286core_t.extsize %if 1 _font equ _mem + FONT_ADRS @@ -77,7 +78,6 @@ extern @tracevramwrite_w@8 %endmacro %endif - section .text ; ----------------------------------------------------------------- write byte @@ -98,7 +98,7 @@ section .text ; normal memory align 16 @i286_wt: mov ebx, ecx - and ebx, [_i286core + i286stat_t.adrsmask] + and ebx, [_i286core + i286core_t.adrsmask] mov [MAINMEMORY + ebx], dl pop ebx ret @@ -106,7 +106,7 @@ section .text ; tram write align 16 @tram_wt: mov ebx, [_vramop + vramop_t.tramwait] - sub [_i286core + i286stat_t.remainclock], ebx + sub [_i286core + i286core_t.remainclock], ebx mov ebx, ecx cmp ecx, 000a2000h jnc short wtram_a @@ -155,7 +155,7 @@ wcgwindow_e: pop ebx or byte [_vramupdate + ebx], 1 or byte [_gdcs + gdcs_t.grphdisp], 1 mov ebx, [_vramop + vramop_t.vramwait] - sub [_i286core + i286stat_t.remainclock], ebx + sub [_i286core + i286core_t.remainclock], ebx pop ebx ret @@ -167,7 +167,7 @@ wcgwindow_e: pop ebx or byte [_vramupdate + ebx], 2 or byte [_gdcs + gdcs_t.grphdisp], 2 mov ebx, [_vramop + vramop_t.vramwait] - sub [_i286core + i286stat_t.remainclock], ebx + sub [_i286core + i286core_t.remainclock], ebx pop ebx ret @@ -188,7 +188,7 @@ wcgwindow_e: pop ebx or byte [_gdcs + gdcs_t.grphdisp], 1 grcg_rmw: mov ebx, [_vramop + vramop_t.grcgwait] - sub [_i286core + i286stat_t.remainclock], ebx + sub [_i286core + i286core_t.remainclock], ebx mov ebx, dword [_grcg + grcg_t.mode] mov bl, dl not bl @@ -237,7 +237,7 @@ grcgrmw_end: pop ecx or byte [_gdcs + gdcs_t.grphdisp], 1 grcg_tdw: mov ebx, [_vramop + vramop_t.grcgwait] - sub [_i286core + i286stat_t.remainclock], ebx + sub [_i286core + i286core_t.remainclock], ebx mov bh, [_grcg + grcg_t.modereg] shr bh, 1 jc short grcgtdw_r @@ -296,7 +296,7 @@ grcgtdw_end: pop ecx ; normal memory align 16 @i286_rd: mov ebx, ecx - and ebx, [_i286core + i286stat_t.adrsmask] + and ebx, [_i286core + i286core_t.adrsmask] mov al, [MAINMEMORY + ebx] pop ebx ret @@ -304,7 +304,7 @@ grcgtdw_end: pop ecx ; font cg-window align 16 @tram_rd: mov ebx, [_vramop + vramop_t.tramwait] - sub [_i286core + i286stat_t.remainclock], ebx + sub [_i286core + i286core_t.remainclock], ebx cmp ecx, 0a4000h jnc rcgwindow_s rcgwindow_n: mov al, [MAINMEMORY + ecx] @@ -327,7 +327,7 @@ rcgwindow_s: cmp ecx, 0a5000h align 16 @vram_r0: mov al, [VIDEOMEMORY + ecx] mov ebx, [_vramop + vramop_t.vramwait] - sub [_i286core + i286stat_t.remainclock], ebx + sub [_i286core + i286core_t.remainclock], ebx pop ebx ret @@ -335,7 +335,7 @@ rcgwindow_s: cmp ecx, 0a5000h align 16 @vram_r1: mov al, [VIDEOMEMORY + VRAM_STEP + ecx] mov ebx, [_vramop + vramop_t.vramwait] - sub [_i286core + i286stat_t.remainclock], ebx + sub [_i286core + i286core_t.remainclock], ebx pop ebx ret @@ -350,7 +350,7 @@ rcgwindow_s: cmp ecx, 0a5000h and ecx, 7fffh grcg_tcr: mov ebx, [_vramop + vramop_t.grcgwait] - sub [_i286core + i286stat_t.remainclock], ebx + sub [_i286core + i286core_t.remainclock], ebx mov al, 0 mov bh, [_grcg + grcg_t.modereg] shr bh, 1 @@ -406,7 +406,7 @@ grcgtcr_end: not al ; BIOS or ITF align 16 -@i286_itf: cmp byte [_i286core + i286stat_t.itfbank], 0 +@i286_itf: cmp byte [_i286core + i286core_t.itfbank], 0 jne readmem_itr mov al, [MAINMEMORY + ecx] pop ebx @@ -423,7 +423,7 @@ readmem_itr: mov ebx, ecx ; normal memory align 16 @i286w_wt: mov ebx, ecx - and ebx, [_i286core + i286stat_t.adrsmask] + and ebx, [_i286core + i286core_t.adrsmask] mov [MAINMEMORY + ebx], dx pop ebx ret @@ -431,7 +431,7 @@ readmem_itr: mov ebx, ecx ; tram write align 16 @tramw_wt: mov ebx, [_vramop + vramop_t.tramwait] - sub [_i286core + i286stat_t.remainclock], ebx + sub [_i286core + i286core_t.remainclock], ebx mov ebx, ecx cmp ecx, 000a1fffh jnc short wtramw_a @@ -506,7 +506,7 @@ wcgwinw_odd: add ebx, dword [_cgwindow or word [_vramupdate + ebx], 0101h or byte [_gdcs + gdcs_t.grphdisp], 1 mov ebx, [_vramop + vramop_t.vramwait] - sub [_i286core + i286stat_t.remainclock], ebx + sub [_i286core + i286core_t.remainclock], ebx pop ebx ret @@ -518,7 +518,7 @@ wcgwinw_odd: add ebx, dword [_cgwindow or word [_vramupdate + ebx], 0202h or byte [_gdcs + gdcs_t.grphdisp], 2 mov ebx, [_vramop + vramop_t.vramwait] - sub [_i286core + i286stat_t.remainclock], ebx + sub [_i286core + i286core_t.remainclock], ebx pop ebx ret @@ -539,7 +539,7 @@ wcgwinw_odd: add ebx, dword [_cgwindow or byte [_gdcs + gdcs_t.grphdisp], 1 grcgw_rmw: mov ebx, [_vramop + vramop_t.grcgwait] - sub [_i286core + i286stat_t.remainclock], ebx + sub [_i286core + i286core_t.remainclock], ebx push eax mov ebx, dword [_grcg + grcg_t.mode] mov bx, dx @@ -590,7 +590,7 @@ grcgwrmw_end: pop eax or byte [_gdcs + gdcs_t.grphdisp], 1 grcgw_tdw: mov ebx, [_vramop + vramop_t.grcgwait] - sub [_i286core + i286stat_t.remainclock], ebx + sub [_i286core + i286core_t.remainclock], ebx mov ebx, [_grcg + grcg_t.mode] test ebx, 010000h jne short grcgwtdw_r @@ -657,7 +657,7 @@ egcw_wtodd: ; normal memory align 16 @i286w_rd: mov ebx, ecx - and ebx, [_i286core + i286stat_t.adrsmask] + and ebx, [_i286core + i286core_t.adrsmask] mov ax, [MAINMEMORY + ebx] pop ebx ret @@ -665,7 +665,7 @@ egcw_wtodd: ; font cg-window align 16 @tramw_rd: mov ebx, [_vramop + vramop_t.tramwait] - sub [_i286core + i286stat_t.remainclock], ebx + sub [_i286core + i286core_t.remainclock], ebx cmp ecx, 0a3fffh jnc rcgwwindow_s mov ax, [MAINMEMORY + ecx] @@ -719,7 +719,7 @@ rcgwwindow_a4fff: mov ebx, dword [_cgwi align 16 @vramw_r0: mov ax, [VIDEOMEMORY + ecx] mov ebx, [_vramop + vramop_t.vramwait] - sub [_i286core + i286stat_t.remainclock], ebx + sub [_i286core + i286core_t.remainclock], ebx pop ebx ret @@ -727,7 +727,7 @@ rcgwwindow_a4fff: mov ebx, dword [_cgwi align 16 @vramw_r1: mov ax, [VIDEOMEMORY + VRAM_STEP + ecx] mov ebx, [_vramop + vramop_t.vramwait] - sub [_i286core + i286stat_t.remainclock], ebx + sub [_i286core + i286core_t.remainclock], ebx pop ebx ret @@ -742,7 +742,7 @@ rcgwwindow_a4fff: mov ebx, dword [_cgwi and ecx, 7fffh grcgw_tcr: mov ebx, [_vramop + vramop_t.grcgwait] - sub [_i286core + i286stat_t.remainclock], ebx + sub [_i286core + i286core_t.remainclock], ebx mov ax, 0 mov ebx, [_grcg + grcg_t.mode] test ebx, 010000h @@ -819,7 +819,7 @@ egcw_rdodd: ; BIOS or ITF align 16 -@i286w_itf: cmp byte [_i286core + i286stat_t.itfbank], 0 +@i286w_itf: cmp byte [_i286core + i286core_t.itfbank], 0 jne readwmem_itr mov ax, [MAINMEMORY + ecx] pop ebx