Code: Select all
__segment screen = 0xb800;
char __based(void)* scrptr = 0;
while (scrptr < 80 * 25) {
*(screen:>scrptr) = '!';
scrptr += 2;
}
Code: Select all
mov ds:word_911E, 0B800h
seg000:1014 xor ax, ax
seg000:1016 mov ds:word_911C, ax
seg000:1019 jmp short loc_9023
seg000:101B ; ---------------------------------------------------------------------------
seg000:101B
seg000:101B loc_901B: ; CODE XREF: sub_9000+35j
seg000:101B cmp ds:word_911C, 7D0h
seg000:1021 jnb short loc_9037
seg000:1023
seg000:1023 loc_9023: ; CODE XREF: sub_9000+19j
seg000:1023 mov bx, ds:word_911C
seg000:1027 mov es, ds:word_911E
seg000:102B mov byte ptr es:[bx], 21h ; '!'
seg000:102F inc bx
seg000:1030 inc bx
seg000:1031 mov ds:word_911C, bx
seg000:1035 jmp short loc_901B
Code: Select all
char __far* text = 0xb8000;
while (i < 80 * 25) {
text[i] = '?';
i += 2;
}
Code: Select all
loc_9037: ; CODE XREF: sub_9000+21j
seg000:1037 ; sub_9000+53j
seg000:1037 mov ax, ds:word_8008 [just a zero in the datasegment]
seg000:103A cmp ax, 7D0h
seg000:103D jge short loc_9055
seg000:103F mov bx, 912h
seg000:1042 mov es, bx
seg000:1044 assume es:nothing
seg000:1044 mov bx, es:0
seg000:1049 add bx, ax
seg000:104B mov byte ptr [bx], 3Fh ; '?'
seg000:104E add ds:word_8008, 2
seg000:1053 jmp short loc_9037