| version 1.1.1.1, 2003/10/16 17:57:33 | version 1.2, 2003/10/19 14:56:15 | 
| Line 7 | Line 7 | 
 | section .bss | section .bss | 
 |  |  | 
 | extern  _mem | extern  _mem | 
 |  | extern  _i286reg | 
 | extern  _grcg | extern  _grcg | 
 | extern  _extmem | extern  _extmem | 
 | extern  _gdcs | extern  _gdcs | 
| Line 16  section .bss | Line 17  section .bss | 
 | ;       extern  ___font | ;       extern  ___font | 
 | extern  _itf | extern  _itf | 
 | extern  _vramop | extern  _vramop | 
 | extern  _nevent |  | 
 |  |  | 
 | extern  _extmemmng_ptr | extern  _extmemmng_ptr | 
 | extern  _extmemmng_size | extern  _extmemmng_size | 
| Line 107  section .text | Line 107  section .text | 
 | ; tram write | ; tram write | 
 | align   16 | align   16 | 
 | @tram_wt:                       mov             ebx, [_vramop + vramop_t.tramwait] | @tram_wt:                       mov             ebx, [_vramop + vramop_t.tramwait] | 
| sub             [_nevent + nevent_t.remainclock], ebx | sub             [_i286reg + i286reg_t.remainclock], ebx | 
 | mov             ebx, ecx | mov             ebx, ecx | 
 | cmp             ecx, 000a2000h | cmp             ecx, 000a2000h | 
 | jnc             short wtram_a | jnc             short wtram_a | 
| Line 156  wcgwindow_e:  pop  ebx | Line 156  wcgwindow_e:  pop  ebx | 
 | or              byte [_vramupdate + ebx], 1 | or              byte [_vramupdate + ebx], 1 | 
 | or              byte [_gdcs + gdcs_t.grphdisp], 1 | or              byte [_gdcs + gdcs_t.grphdisp], 1 | 
 | mov             ebx, [_vramop + vramop_t.vramwait] | mov             ebx, [_vramop + vramop_t.vramwait] | 
| sub             [_nevent + nevent_t.remainclock], ebx | sub             [_i286reg + i286reg_t.remainclock], ebx | 
 | pop             ebx | pop             ebx | 
 | ret | ret | 
 |  |  | 
| Line 168  wcgwindow_e:  pop  ebx | Line 168  wcgwindow_e:  pop  ebx | 
 | or              byte [_vramupdate + ebx], 2 | or              byte [_vramupdate + ebx], 2 | 
 | or              byte [_gdcs + gdcs_t.grphdisp], 2 | or              byte [_gdcs + gdcs_t.grphdisp], 2 | 
 | mov             ebx, [_vramop + vramop_t.vramwait] | mov             ebx, [_vramop + vramop_t.vramwait] | 
| sub             [_nevent + nevent_t.remainclock], ebx | sub             [_i286reg + i286reg_t.remainclock], ebx | 
 | pop             ebx | pop             ebx | 
 | ret | ret | 
 |  |  | 
| Line 189  wcgwindow_e:  pop  ebx | Line 189  wcgwindow_e:  pop  ebx | 
 | or              byte [_gdcs + gdcs_t.grphdisp], 1 | or              byte [_gdcs + gdcs_t.grphdisp], 1 | 
 |  |  | 
 | grcg_rmw:                       mov             ebx, [_vramop + vramop_t.grcgwait] | grcg_rmw:                       mov             ebx, [_vramop + vramop_t.grcgwait] | 
| sub             [_nevent + nevent_t.remainclock], ebx | sub             [_i286reg + i286reg_t.remainclock], ebx | 
 | mov             ebx, dword [_grcg + grcg_t.mode] | mov             ebx, dword [_grcg + grcg_t.mode] | 
 | mov             bl, dl | mov             bl, dl | 
 | not             bl | not             bl | 
| Line 238  grcgrmw_end:  pop  ecx | Line 238  grcgrmw_end:  pop  ecx | 
 | or              byte [_gdcs + gdcs_t.grphdisp], 1 | or              byte [_gdcs + gdcs_t.grphdisp], 1 | 
 |  |  | 
 | grcg_tdw:                       mov             ebx, [_vramop + vramop_t.grcgwait] | grcg_tdw:                       mov             ebx, [_vramop + vramop_t.grcgwait] | 
| sub             [_nevent + nevent_t.remainclock], ebx | sub             [_i286reg + i286reg_t.remainclock], ebx | 
 | mov             bh, [_grcg + grcg_t.modereg] | mov             bh, [_grcg + grcg_t.modereg] | 
 | shr             bh, 1 | shr             bh, 1 | 
 | jc              short grcgtdw_r | jc              short grcgtdw_r | 
| Line 305  grcgtdw_end:  pop  ecx | Line 305  grcgtdw_end:  pop  ecx | 
 | ; font cg-window | ; font cg-window | 
 | align   16 | align   16 | 
 | @tram_rd:                       mov             ebx, [_vramop + vramop_t.tramwait] | @tram_rd:                       mov             ebx, [_vramop + vramop_t.tramwait] | 
| sub             [_nevent + nevent_t.remainclock], ebx | sub             [_i286reg + i286reg_t.remainclock], ebx | 
 | cmp             ecx, 0a4000h | cmp             ecx, 0a4000h | 
 | jnc             rcgwindow_s | jnc             rcgwindow_s | 
 | rcgwindow_n:            mov             al, [MAINMEMORY + ecx] | rcgwindow_n:            mov             al, [MAINMEMORY + ecx] | 
| Line 328  rcgwindow_s:  cmp  ecx, 0a5000h | Line 328  rcgwindow_s:  cmp  ecx, 0a5000h | 
 | align   16 | align   16 | 
 | @vram_r0:                       mov             al, [VIDEOMEMORY + ecx] | @vram_r0:                       mov             al, [VIDEOMEMORY + ecx] | 
 | mov             ebx, [_vramop + vramop_t.vramwait] | mov             ebx, [_vramop + vramop_t.vramwait] | 
| sub             [_nevent + nevent_t.remainclock], ebx | sub             [_i286reg + i286reg_t.remainclock], ebx | 
 | pop             ebx | pop             ebx | 
 | ret | ret | 
 |  |  | 
| Line 336  rcgwindow_s:  cmp  ecx, 0a5000h | Line 336  rcgwindow_s:  cmp  ecx, 0a5000h | 
 | align   16 | align   16 | 
 | @vram_r1:                       mov             al, [VIDEOMEMORY + VRAM_STEP + ecx] | @vram_r1:                       mov             al, [VIDEOMEMORY + VRAM_STEP + ecx] | 
 | mov             ebx, [_vramop + vramop_t.vramwait] | mov             ebx, [_vramop + vramop_t.vramwait] | 
| sub             [_nevent + nevent_t.remainclock], ebx | sub             [_i286reg + i286reg_t.remainclock], ebx | 
 | pop             ebx | pop             ebx | 
 | ret | ret | 
 |  |  | 
| Line 351  rcgwindow_s:  cmp  ecx, 0a5000h | Line 351  rcgwindow_s:  cmp  ecx, 0a5000h | 
 | and             ecx, 7fffh | and             ecx, 7fffh | 
 |  |  | 
 | grcg_tcr:                       mov             ebx, [_vramop + vramop_t.grcgwait] | grcg_tcr:                       mov             ebx, [_vramop + vramop_t.grcgwait] | 
| sub             [_nevent + nevent_t.remainclock], ebx | sub             [_i286reg + i286reg_t.remainclock], ebx | 
 | mov             al, 0 | mov             al, 0 | 
 | mov             bh, [_grcg + grcg_t.modereg] | mov             bh, [_grcg + grcg_t.modereg] | 
 | shr             bh, 1 | shr             bh, 1 | 
| Line 432  readmem_itr:  mov  ebx, ecx | Line 432  readmem_itr:  mov  ebx, ecx | 
 | ; tram write | ; tram write | 
 | align   16 | align   16 | 
 | @tramw_wt:                      mov             ebx, [_vramop + vramop_t.tramwait] | @tramw_wt:                      mov             ebx, [_vramop + vramop_t.tramwait] | 
| sub             [_nevent + nevent_t.remainclock], ebx | sub             [_i286reg + i286reg_t.remainclock], ebx | 
 | mov             ebx, ecx | mov             ebx, ecx | 
 | cmp             ecx, 000a1fffh | cmp             ecx, 000a1fffh | 
 | jnc             short wtramw_a | jnc             short wtramw_a | 
| Line 507  wcgwinw_odd:  add  ebx, dword [_cgwindow | Line 507  wcgwinw_odd:  add  ebx, dword [_cgwindow | 
 | or              word [_vramupdate + ebx], 0101h | or              word [_vramupdate + ebx], 0101h | 
 | or              byte [_gdcs + gdcs_t.grphdisp], 1 | or              byte [_gdcs + gdcs_t.grphdisp], 1 | 
 | mov             ebx, [_vramop + vramop_t.vramwait] | mov             ebx, [_vramop + vramop_t.vramwait] | 
| sub             [_nevent + nevent_t.remainclock], ebx | sub             [_i286reg + i286reg_t.remainclock], ebx | 
 | pop             ebx | pop             ebx | 
 | ret | ret | 
 |  |  | 
| Line 519  wcgwinw_odd:  add  ebx, dword [_cgwindow | Line 519  wcgwinw_odd:  add  ebx, dword [_cgwindow | 
 | or              word [_vramupdate + ebx], 0202h | or              word [_vramupdate + ebx], 0202h | 
 | or              byte [_gdcs + gdcs_t.grphdisp], 2 | or              byte [_gdcs + gdcs_t.grphdisp], 2 | 
 | mov             ebx, [_vramop + vramop_t.vramwait] | mov             ebx, [_vramop + vramop_t.vramwait] | 
| sub             [_nevent + nevent_t.remainclock], ebx | sub             [_i286reg + i286reg_t.remainclock], ebx | 
 | pop             ebx | pop             ebx | 
 | ret | ret | 
 |  |  | 
| Line 540  wcgwinw_odd:  add  ebx, dword [_cgwindow | Line 540  wcgwinw_odd:  add  ebx, dword [_cgwindow | 
 | or              byte [_gdcs + gdcs_t.grphdisp], 1 | or              byte [_gdcs + gdcs_t.grphdisp], 1 | 
 |  |  | 
 | grcgw_rmw:                      mov             ebx, [_vramop + vramop_t.grcgwait] | grcgw_rmw:                      mov             ebx, [_vramop + vramop_t.grcgwait] | 
| sub             [_nevent + nevent_t.remainclock], ebx | sub             [_i286reg + i286reg_t.remainclock], ebx | 
 | push    eax | push    eax | 
 | mov             ebx, dword [_grcg + grcg_t.mode] | mov             ebx, dword [_grcg + grcg_t.mode] | 
 | mov             bx, dx | mov             bx, dx | 
| Line 591  grcgwrmw_end:  pop  eax | Line 591  grcgwrmw_end:  pop  eax | 
 | or              byte [_gdcs + gdcs_t.grphdisp], 1 | or              byte [_gdcs + gdcs_t.grphdisp], 1 | 
 |  |  | 
 | grcgw_tdw:                      mov             ebx, [_vramop + vramop_t.grcgwait] | grcgw_tdw:                      mov             ebx, [_vramop + vramop_t.grcgwait] | 
| sub             [_nevent + nevent_t.remainclock], ebx | sub             [_i286reg + i286reg_t.remainclock], ebx | 
 | mov             ebx, [_grcg + grcg_t.mode] | mov             ebx, [_grcg + grcg_t.mode] | 
 | test    ebx, 010000h | test    ebx, 010000h | 
 | jne             short grcgwtdw_r | jne             short grcgwtdw_r | 
| Line 666  egcw_wtodd: | Line 666  egcw_wtodd: | 
 | ; font cg-window | ; font cg-window | 
 | align   16 | align   16 | 
 | @tramw_rd:                      mov             ebx, [_vramop + vramop_t.tramwait] | @tramw_rd:                      mov             ebx, [_vramop + vramop_t.tramwait] | 
| sub             [_nevent + nevent_t.remainclock], ebx | sub             [_i286reg + i286reg_t.remainclock], ebx | 
 | cmp             ecx, 0a3fffh | cmp             ecx, 0a3fffh | 
 | jnc             rcgwwindow_s | jnc             rcgwwindow_s | 
 | mov             ax, [MAINMEMORY + ecx] | mov             ax, [MAINMEMORY + ecx] | 
| Line 720  rcgwwindow_a4fff: mov  ebx, dword [_cgwi | Line 720  rcgwwindow_a4fff: mov  ebx, dword [_cgwi | 
 | align   16 | align   16 | 
 | @vramw_r0:                      mov             ax, [VIDEOMEMORY + ecx] | @vramw_r0:                      mov             ax, [VIDEOMEMORY + ecx] | 
 | mov             ebx, [_vramop + vramop_t.vramwait] | mov             ebx, [_vramop + vramop_t.vramwait] | 
| sub             [_nevent + nevent_t.remainclock], ebx | sub             [_i286reg + i286reg_t.remainclock], ebx | 
 | pop             ebx | pop             ebx | 
 | ret | ret | 
 |  |  | 
| Line 728  rcgwwindow_a4fff: mov  ebx, dword [_cgwi | Line 728  rcgwwindow_a4fff: mov  ebx, dword [_cgwi | 
 | align   16 | align   16 | 
 | @vramw_r1:                      mov             ax, [VIDEOMEMORY + VRAM_STEP + ecx] | @vramw_r1:                      mov             ax, [VIDEOMEMORY + VRAM_STEP + ecx] | 
 | mov             ebx, [_vramop + vramop_t.vramwait] | mov             ebx, [_vramop + vramop_t.vramwait] | 
| sub             [_nevent + nevent_t.remainclock], ebx | sub             [_i286reg + i286reg_t.remainclock], ebx | 
 | pop             ebx | pop             ebx | 
 | ret | ret | 
 |  |  | 
| Line 743  rcgwwindow_a4fff: mov  ebx, dword [_cgwi | Line 743  rcgwwindow_a4fff: mov  ebx, dword [_cgwi | 
 | and             ecx, 7fffh | and             ecx, 7fffh | 
 |  |  | 
 | grcgw_tcr:                      mov             ebx, [_vramop + vramop_t.grcgwait] | grcgw_tcr:                      mov             ebx, [_vramop + vramop_t.grcgwait] | 
| sub             [_nevent + nevent_t.remainclock], ebx | sub             [_i286reg + i286reg_t.remainclock], ebx | 
 | mov             ax, 0 | mov             ax, 0 | 
 | mov             ebx, [_grcg + grcg_t.mode] | mov             ebx, [_grcg + grcg_t.mode] | 
 | test    ebx, 010000h | test    ebx, 010000h |