--- np2/i286x/memory.x86 2003/12/01 10:45:46 1.3 +++ np2/i286x/memory.x86 2003/12/08 00:55:31 1.4 @@ -17,15 +17,14 @@ section .bss ; extern ___font extern _vramop - extern _extmemmng_ptr - extern _extmemmng_size - MAINMEMORY equ _mem 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 @@ -98,7 +97,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 +105,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 +154,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 +166,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 +187,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 +236,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 +295,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 +303,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 +326,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 +334,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 +349,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 +405,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 +422,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 +430,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 +505,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 +517,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 +538,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 +589,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 +656,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 +664,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 +718,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 +726,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 +741,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 +818,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