|
|
1.1 ! root 1: bits 16 ! 2: org 100h ! 3: ! 4: _start: ! 5: ; first check for SYSLINUX ! 6: mov ah, 30h ! 7: int 21h ! 8: ! 9: cmp eax, 59530000h ! 10: jne .not_syslinux ! 11: cmp ebx, 4c530000h ! 12: jne .not_syslinux ! 13: cmp ecx, 4e490000h ! 14: jne .not_syslinux ! 15: cmp edx, 58550000h ! 16: jne .not_syslinux ! 17: ! 18: ; now get syslinux version ! 19: mov ax, 0001h ! 20: int 22h ! 21: ! 22: push cx ! 23: push dx ! 24: push di ! 25: push si ! 26: push es ! 27: ! 28: ; print version string ! 29: mov dx, str_version ! 30: mov ah, 09h ! 31: int 21h ! 32: ! 33: pop es ! 34: pop bx ! 35: push es ! 36: mov ax, 0002h ! 37: int 22h ! 38: ! 39: ; print copyright string ! 40: mov dx, str_copyright ! 41: mov ah, 09h ! 42: int 21h ! 43: ! 44: pop es ! 45: pop bx ! 46: mov ax, 0002h ! 47: int 22h ! 48: ! 49: ; print syslinux derivative id ! 50: mov dx, str_derivative ! 51: mov ah, 09h ! 52: int 21h ! 53: ! 54: pop ax ! 55: call print_hex_byte ! 56: ! 57: ; print version number ! 58: mov dx, str_version_num ! 59: mov ah, 09h ! 60: int 21h ! 61: ! 62: pop cx ! 63: push cx ! 64: mov ax, cx ! 65: and ax, 0FFh ! 66: call print_dec_word ! 67: ! 68: mov dl, '.' ! 69: mov ah, 02h ! 70: int 21h ! 71: ! 72: pop cx ! 73: mov ax, cx ! 74: shr ax, 8 ! 75: call print_dec_word ! 76: ! 77: ret ! 78: ! 79: ! 80: .not_syslinux: ! 81: mov dx, str_not_syslinux ! 82: mov ah, 09h ! 83: int 21h ! 84: ret ! 85: ! 86: ; input: al = byte to print in hex ! 87: print_hex_byte: ! 88: push ax ! 89: shr al, 4 ! 90: call print_hex_nybble ! 91: pop ax ! 92: call print_hex_nybble ! 93: ret ! 94: ! 95: ; input: bottom half of al = nybble to print in hex ! 96: print_hex_nybble: ! 97: push ax ! 98: mov bl, al ! 99: and bx, 1111b ! 100: mov dl, [str_hex + bx] ! 101: mov ah, 02h ! 102: int 21h ! 103: pop ax ! 104: ret ! 105: ! 106: str_hex: db "01234567890abcdef" ! 107: ! 108: ; input: ax = word to print ! 109: print_dec_word: ! 110: mov cx, 10 ! 111: mov word [.count], 0 ! 112: .loop: ! 113: xor dx, dx ! 114: div cx ! 115: inc word [.count] ! 116: push dx ! 117: test ax, ax ! 118: jnz .loop ! 119: ! 120: .print: ! 121: pop dx ! 122: add dx, '0' ! 123: mov ah, 02h ! 124: int 21h ! 125: dec word [.count] ! 126: jnz .print ! 127: ! 128: ret ! 129: ! 130: .count: dw 0 ! 131: ! 132: str_not_syslinux: db "Not SYSLINUX or derivative (running on DOS?)$" ! 133: str_version: db "Version: $" ! 134: str_copyright: db 10, "Copyright: $" ! 135: str_derivative: db 10, "Derivative ID: 0x$" ! 136: str_version_num: db 10, "Version number: $"
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.