# runtime.golden -- full FCML disassembly of the runtime's code region. # # GENERATED by tests/check_runtime.py --bless, then READ THE DIFF and commit. # Every line is "OFFSET BYTES MNEMONIC". This file is a deliberate # tripwire: any edit to Runtime.mod invalidates it, because inserting an # instruction renumbers everything after it, so you are forced to look at the # whole new listing and confirm you meant every change. See the "Re-baselining # the golden" section of check_runtime.py. # # Region: bytes 0..codeEnd of the runtime image (see the code/data split in # EmitData). Relative targets are absolute offsets within the runtime, which # the compiler adds to the runtime's load address when it emits a CALL. 0000 8B F0 mov si,ax 0002 8B 54 04 mov dx,word ptr [si+4h] 0005 8B 4C 06 mov cx,word ptr [si+6h] 0008 39 D1 cmp cx,dx 000A 76 0D jbe 19h 000C 89 D7 mov di,dx 000E 31 C0 xor ax,ax 0010 89 05 mov word ptr [di],ax 0012 83 C7 02 add di,2h 0015 39 CF cmp di,cx 0017 72 F5 jb 0eh 0019 1E push ds 001A 07 pop es 001B C3 ret 001C 31 C0 xor ax,ax 001E B4 4C mov ah,4ch 0020 CD 21 int 21h 0022 C3 ret 0023 C3 ret 0024 55 push bp 0025 8B EC mov bp,sp 0027 8B 46 04 mov ax,word ptr [bp+4h] 002A 83 F8 00 cmp ax,0h 002D 7D 0A jnl 39h 002F 50 push ax 0030 B2 2D mov dl,2dh 0032 B4 02 mov ah,2h 0034 CD 21 int 21h 0036 58 pop ax 0037 F7 D8 neg ax 0039 B9 0A 00 mov cx,0ah 003C BB 70 01 mov bx,170h 003F 89 DE mov si,bx 0041 31 D2 xor dx,dx 0043 F7 F1 div ax,cx 0045 80 C2 30 add dl,30h 0048 4E dec si 0049 88 14 mov byte ptr [si],dl 004B 83 F8 00 cmp ax,0h 004E 75 F1 jne 41h 0050 39 DE cmp si,bx 0052 74 09 je 5dh 0054 8A 14 mov dl,byte ptr [si] 0056 B4 02 mov ah,2h 0058 CD 21 int 21h 005A 46 inc si 005B EB F3 jmp 50h 005D 89 EC mov sp,bp 005F 5D pop bp 0060 C3 ret 0061 8B EC mov bp,sp 0063 8A 56 02 mov dl,byte ptr [bp+2h] 0066 89 EC mov sp,bp 0068 B4 02 mov ah,2h 006A CD 21 int 21h 006C C3 ret 006D 8B EC mov bp,sp 006F 83 7E 02 00 cmp word ptr [bp+2h],0h 0073 89 EC mov sp,bp 0075 75 05 jne 7ch 0077 BA 76 01 mov dx,176h 007A EB 03 jmp 7fh 007C BA 70 01 mov dx,170h 007F B4 09 mov ah,9h 0081 CD 21 int 21h 0083 C3 ret 0084 BA 80 01 mov dx,180h 0087 B4 09 mov ah,9h 0089 CD 21 int 21h 008B C3 ret 008C BA 7D 01 mov dx,17dh 008F B4 09 mov ah,9h 0091 CD 21 int 21h 0093 C3 ret 0094 5B pop bx 0095 31 C9 xor cx,cx 0097 8A 0F mov cl,byte ptr [bx] 0099 43 inc bx 009A B4 02 mov ah,2h 009C E3 07 jcxz 0a5h 009E 8A 07 mov al,byte ptr [bx] 00A0 CD 21 int 21h 00A2 43 inc bx 00A3 E2 F9 loop 9eh 00A5 FF E3 jmp bx 00A7 55 push bp 00A8 8B EC mov bp,sp 00AA 50 push ax 00AB 53 push bx 00AC 51 push cx 00AD 52 push dx 00AE 57 push di 00AF E8 B1 00 call 163h 00B2 3C 20 cmp al,20h 00B4 74 F9 je 0afh 00B6 3C 09 cmp al,9h 00B8 74 F5 je 0afh 00BA 3C 0D cmp al,0dh 00BC 74 F1 je 0afh 00BE 3C 0A cmp al,0ah 00C0 74 ED je 0afh 00C2 31 C9 xor cx,cx 00C4 3C 2D cmp al,2dh 00C6 75 06 jne 0ceh 00C8 41 inc cx 00C9 E8 97 00 call 163h 00CC EB 07 jmp 0d5h 00CE 3C 2B cmp al,2bh 00D0 75 03 jne 0d5h 00D2 E8 8E 00 call 163h 00D5 31 FF xor di,di 00D7 3C 30 cmp al,30h 00D9 72 1C jb 0f7h 00DB 3C 39 cmp al,39h 00DD 77 18 jnbe 0f7h 00DF 2C 30 sub al,30h 00E1 88 C6 mov dh,al 00E3 8B C7 mov ax,di 00E5 BB 0A 00 mov bx,0ah 00E8 F7 E3 mul bx 00EA 89 C7 mov di,ax 00EC B4 00 mov ah,0h 00EE 8A C6 mov al,dh 00F0 01 C7 add di,ax 00F2 E8 6E 00 call 163h 00F5 EB E0 jmp 0d7h 00F7 83 F9 00 cmp cx,0h 00FA 74 02 je 0feh 00FC F7 DF neg di 00FE 8B 5E 04 mov bx,word ptr [bp+4h] 0101 89 1D mov word ptr [di],bx 0103 5F pop di 0104 5A pop dx 0105 59 pop cx 0106 5B pop bx 0107 58 pop ax 0108 89 EC mov sp,bp 010A 5D pop bp 010B C3 ret 010C 55 push bp 010D 8B EC mov bp,sp 010F 50 push ax 0110 53 push bx 0111 E8 4F 00 call 163h 0114 88 C2 mov dl,al 0116 8B 5E 04 mov bx,word ptr [bp+4h] 0119 88 17 mov byte ptr [bx],dl 011B 5B pop bx 011C 58 pop ax 011D 89 EC mov sp,bp 011F 5D pop bp 0120 C3 ret 0121 55 push bp 0122 8B EC mov bp,sp 0124 50 push ax 0125 53 push bx 0126 51 push cx 0127 E8 39 00 call 163h 012A 31 C9 xor cx,cx 012C 3C 54 cmp al,54h 012E 74 12 je 142h 0130 3C 74 cmp al,74h 0132 74 0E je 142h 0134 3C 59 cmp al,59h 0136 74 0A je 142h 0138 3C 79 cmp al,79h 013A 74 06 je 142h 013C 3C 31 cmp al,31h 013E 74 02 je 142h 0140 EB 01 jmp 143h 0142 41 inc cx 0143 8B 5E 04 mov bx,word ptr [bp+4h] 0146 89 0F mov word ptr [bx],cx 0148 59 pop cx 0149 5B pop bx 014A 58 pop ax 014B 89 EC mov sp,bp 014D 5D pop bp 014E C3 ret 014F 50 push ax 0150 E8 10 00 call 163h 0153 3C 0D cmp al,0dh 0155 74 0A je 161h 0157 3C 0A cmp al,0ah 0159 74 06 je 161h 015B 3C 1A cmp al,1ah 015D 74 02 je 161h 015F EB EF jmp 150h 0161 58 pop ax 0162 C3 ret 0163 B4 08 mov ah,8h 0165 CD 21 int 21h 0167 C3 ret