Units
Translation components API.
See the Weblate's Web API documentation for detailed description of the API.
GET /api/translations/freebsd-doc/boooks_arch-handbook/en/units/?format=api&page=3
https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/units/?format=api&page=4", "previous": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/units/?format=api&page=2", "results": [ { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "save_curdrive:\n movb %dl, (%bp)\t\t# Save drive number\n pushw %dx\t\t\t# Also in the stack\n#ifdef\tTEST\t/* test code, print internal bios drive */\n rolb $1, %dl\n movw $drive, %si\n call putkey\n#endif\n callw putn\t\t# Print a newline" ], "previous_source": "", "target": [ "save_curdrive:\n movb %dl, (%bp)\t\t# Save drive number\n pushw %dx\t\t\t# Also in the stack\n#ifdef\tTEST\t/* test code, print internal bios drive */\n rolb $1, %dl\n movw $drive, %si\n call putkey\n#endif\n callw putn\t\t# Print a newline" ], "id_hash": 3009286231114505257, "content_hash": 3009286231114505257, "location": "book.translate.xml:734", "context": "", "note": "(itstool) path: figure/programlisting", "flags": "no-wrap", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 83, "has_suggestion": false, "has_comment": false, "has_failing_check": true, "num_words": 40, "source_unit": "https://translate-dev.freebsd.org/api/units/102229/?format=api", "priority": 100, "id": 102229, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=a9c321e2210ddc29", "url": "https://translate-dev.freebsd.org/api/units/102229/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.561640Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "Note that we assume <varname>TEST</varname> is not defined, so the conditional code in it is not assembled and will not appear in our executable <filename>boot0</filename>." ], "previous_source": "", "target": [ "Note that we assume <varname>TEST</varname> is not defined, so the conditional code in it is not assembled and will not appear in our executable <filename>boot0</filename>." ], "id_hash": 1159423048538759025, "content_hash": 1159423048538759025, "location": "book.translate.xml:745", "context": "", "note": "(itstool) path: sect1/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 84, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 25, "source_unit": "https://translate-dev.freebsd.org/api/units/102230/?format=api", "priority": 100, "id": 102230, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=9017191ea88d9f71", "url": "https://translate-dev.freebsd.org/api/units/102230/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.569038Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "Our next block implements the actual scanning of the partition table. It prints to the screen the partition type for each of the four entries in the partition table. It compares each type with a list of well-known operating system file systems. Examples of recognized partition types are <acronym>NTFS</acronym> (<trademark class=\"registered\">Windows</trademark>, ID 0x7), <literal>ext2fs</literal> (<trademark class=\"registered\">Linux</trademark>, ID 0x83), and, of course, <literal>ffs</literal>/<literal>ufs2</literal> (FreeBSD, ID 0xa5). The implementation is fairly simple." ], "previous_source": "", "target": [ "Our next block implements the actual scanning of the partition table. It prints to the screen the partition type for each of the four entries in the partition table. It compares each type with a list of well-known operating system file systems. Examples of recognized partition types are <acronym>NTFS</acronym> (<trademark class=\"registered\">Windows</trademark>, ID 0x7), <literal>ext2fs</literal> (<trademark class=\"registered\">Linux</trademark>, ID 0x83), and, of course, <literal>ffs</literal>/<literal>ufs2</literal> (FreeBSD, ID 0xa5). The implementation is fairly simple." ], "id_hash": 8839611051113177313, "content_hash": 8839611051113177313, "location": "book.translate.xml:749", "context": "", "note": "(itstool) path: sect1/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 85, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 70, "source_unit": "https://translate-dev.freebsd.org/api/units/102231/?format=api", "priority": 100, "id": 102231, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=faac9b6aae37e0e1", "url": "https://translate-dev.freebsd.org/api/units/102231/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.581453Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ " movw $(partbl+0x4),%bx\t# Partition table (+4)\n xorw %dx,%dx\t\t# Item number\n\nread_entry:\n movb %ch,-0x4(%bx)\t# Zero active flag (ch == 0)\n btw %dx,_FLAGS(%bp)\t# Entry enabled?\n jnc next_entry\t\t# No\n movb (%bx),%al\t\t# Load type\n test %al, %al\t\t# skip empty partition\n jz next_entry\n movw $bootable_ids,%di\t# Lookup tables\n movb $(TLEN+1),%cl\t# Number of entries\n repne\t\t\t# Locate\n scasb\t\t\t# type\n addw $(TLEN-1), %di\t# Adjust\n movb (%di),%cl\t\t# Partition\n addw %cx,%di\t\t# description\n callw putx\t\t# Display it\n\nnext_entry:\n incw %dx\t\t\t# Next item\n addb $0x10,%bl\t\t# Next entry\n jnc read_entry\t\t# Till done" ], "previous_source": "", "target": [ " movw $(partbl+0x4),%bx\t# Partition table (+4)\n xorw %dx,%dx\t\t# Item number\n\nread_entry:\n movb %ch,-0x4(%bx)\t# Zero active flag (ch == 0)\n btw %dx,_FLAGS(%bp)\t# Entry enabled?\n jnc next_entry\t\t# No\n movb (%bx),%al\t\t# Load type\n test %al, %al\t\t# skip empty partition\n jz next_entry\n movw $bootable_ids,%di\t# Lookup tables\n movb $(TLEN+1),%cl\t# Number of entries\n repne\t\t\t# Locate\n scasb\t\t\t# type\n addw $(TLEN-1), %di\t# Adjust\n movb (%di),%cl\t\t# Partition\n addw %cx,%di\t\t# description\n callw putx\t\t# Display it\n\nnext_entry:\n incw %dx\t\t\t# Next item\n addb $0x10,%bl\t\t# Next entry\n jnc read_entry\t\t# Till done" ], "id_hash": -4855524440318198944, "content_hash": -4855524440318198944, "location": "book.translate.xml:762", "context": "", "note": "(itstool) path: figure/programlisting", "flags": "no-wrap", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 86, "has_suggestion": false, "has_comment": false, "has_failing_check": true, "num_words": 95, "source_unit": "https://translate-dev.freebsd.org/api/units/102232/?format=api", "priority": 100, "id": 102232, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=3c9db63f489b3b60", "url": "https://translate-dev.freebsd.org/api/units/102232/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.594408Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "It is important to note that the active flag for each entry is cleared, so after the scanning, <emphasis>no</emphasis> partition entry is active in our memory copy of <filename>boot0</filename>. Later, the active flag will be set for the selected partition. This ensures that only one active partition exists if the user chooses to write the changes back to disk." ], "previous_source": "", "target": [ "It is important to note that the active flag for each entry is cleared, so after the scanning, <emphasis>no</emphasis> partition entry is active in our memory copy of <filename>boot0</filename>. Later, the active flag will be set for the selected partition. This ensures that only one active partition exists if the user chooses to write the changes back to disk." ], "id_hash": -4673316911078951808, "content_hash": -4673316911078951808, "location": "book.translate.xml:787", "context": "", "note": "(itstool) path: sect1/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 87, "has_suggestion": false, "has_comment": false, "has_failing_check": true, "num_words": 59, "source_unit": "https://translate-dev.freebsd.org/api/units/102233/?format=api", "priority": 100, "id": 102233, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=3f250b0798503480", "url": "https://translate-dev.freebsd.org/api/units/102233/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.604390Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "The next block tests for other drives. At startup, the <acronym>BIOS</acronym> writes the number of drives present in the computer to address <literal>0x475</literal>. If there are any other drives present, <filename>boot0</filename> prints the current drive to screen. The user may command <filename>boot0</filename> to scan partitions on another drive later." ], "previous_source": "", "target": [ "The next block tests for other drives. At startup, the <acronym>BIOS</acronym> writes the number of drives present in the computer to address <literal>0x475</literal>. If there are any other drives present, <filename>boot0</filename> prints the current drive to screen. The user may command <filename>boot0</filename> to scan partitions on another drive later." ], "id_hash": -8448227327993935266, "content_hash": -8448227327993935266, "location": "book.translate.xml:795", "context": "", "note": "(itstool) path: sect1/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 88, "has_suggestion": false, "has_comment": false, "has_failing_check": true, "num_words": 49, "source_unit": "https://translate-dev.freebsd.org/api/units/102234/?format=api", "priority": 100, "id": 102234, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=0ac1de017d2c8a5e", "url": "https://translate-dev.freebsd.org/api/units/102234/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.613297Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ " popw %ax\t\t\t# Drive number\n subb $0x79,%al\t\t# Does next\n cmpb 0x475,%al\t\t# drive exist? (from BIOS?)\n jb print_drive\t\t# Yes\n decw %ax\t\t\t# Already drive 0?\n jz print_prompt\t\t# Yes" ], "previous_source": "", "target": [ " popw %ax\t\t\t# Drive number\n subb $0x79,%al\t\t# Does next\n cmpb 0x475,%al\t\t# drive exist? (from BIOS?)\n jb print_drive\t\t# Yes\n decw %ax\t\t\t# Already drive 0?\n jz print_prompt\t\t# Yes" ], "id_hash": -4391435485711746647, "content_hash": -4391435485711746647, "location": "book.translate.xml:806", "context": "", "note": "(itstool) path: figure/programlisting", "flags": "no-wrap", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 89, "has_suggestion": false, "has_comment": false, "has_failing_check": true, "num_words": 31, "source_unit": "https://translate-dev.freebsd.org/api/units/102235/?format=api", "priority": 100, "id": 102235, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=430e7cb14c1b39a9", "url": "https://translate-dev.freebsd.org/api/units/102235/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.624364Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "We make the assumption that a single drive is present, so the jump to <literal>print_drive</literal> is not performed. We also assume nothing strange happened, so we jump to <literal>print_prompt</literal>." ], "previous_source": "", "target": [ "We make the assumption that a single drive is present, so the jump to <literal>print_drive</literal> is not performed. We also assume nothing strange happened, so we jump to <literal>print_prompt</literal>." ], "id_hash": -1267405124877659062, "content_hash": -1267405124877659062, "location": "book.translate.xml:814", "context": "", "note": "(itstool) path: sect1/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 90, "has_suggestion": false, "has_comment": false, "has_failing_check": true, "num_words": 29, "source_unit": "https://translate-dev.freebsd.org/api/units/102236/?format=api", "priority": 100, "id": 102236, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=6e6945c10128544a", "url": "https://translate-dev.freebsd.org/api/units/102236/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.633340Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "This next block just prints out a prompt followed by the default option:" ], "previous_source": "", "target": [ "This next block just prints out a prompt followed by the default option:" ], "id_hash": -1841258796763925937, "content_hash": -1841258796763925937, "location": "book.translate.xml:819", "context": "", "note": "(itstool) path: sect1/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 91, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 13, "source_unit": "https://translate-dev.freebsd.org/api/units/102237/?format=api", "priority": 100, "id": 102237, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=667288e13752b24f", "url": "https://translate-dev.freebsd.org/api/units/102237/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.655962Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "print_prompt:\n movw $prompt,%si\t\t# Display\n callw putstr\t\t# prompt\n movb _OPT(%bp),%dl\t# Display\n decw %si\t\t\t# default\n callw putkey\t\t# key\n jmp start_input\t\t# Skip beep" ], "previous_source": "", "target": [ "print_prompt:\n movw $prompt,%si\t\t# Display\n callw putstr\t\t# prompt\n movb _OPT(%bp),%dl\t# Display\n decw %si\t\t\t# default\n callw putkey\t\t# key\n jmp start_input\t\t# Skip beep" ], "id_hash": -6883782339854763270, "content_hash": -6883782339854763270, "location": "book.translate.xml:825", "context": "", "note": "(itstool) path: figure/programlisting", "flags": "no-wrap", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 92, "has_suggestion": false, "has_comment": false, "has_failing_check": true, "num_words": 26, "source_unit": "https://translate-dev.freebsd.org/api/units/102238/?format=api", "priority": 100, "id": 102238, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=2077e46f09d97afa", "url": "https://translate-dev.freebsd.org/api/units/102238/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.663383Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "Finally, a jump is performed to <literal>start_input</literal>, where the <acronym>BIOS</acronym> services are used to start a timer and for reading user input from the keyboard; if the timer expires, the default option will be selected:" ], "previous_source": "", "target": [ "Finally, a jump is performed to <literal>start_input</literal>, where the <acronym>BIOS</acronym> services are used to start a timer and for reading user input from the keyboard; if the timer expires, the default option will be selected:" ], "id_hash": -4730854784999739111, "content_hash": -4730854784999739111, "location": "book.translate.xml:834", "context": "", "note": "(itstool) path: sect1/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 93, "has_suggestion": false, "has_comment": false, "has_failing_check": true, "num_words": 35, "source_unit": "https://translate-dev.freebsd.org/api/units/102239/?format=api", "priority": 100, "id": 102239, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=3e58a0a360223119", "url": "https://translate-dev.freebsd.org/api/units/102239/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.672168Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "start_input:\n xorb %ah,%ah\t\t# BIOS: Get\n int $0x1a\t\t\t# system time\n movw %dx,%di\t\t# Ticks when\n addw _TICKS(%bp),%di\t# timeout\nread_key:\n movb $0x1,%ah\t\t# BIOS: Check\n int $0x16\t\t\t# for keypress\n jnz got_key\t\t# Have input\n xorb %ah,%ah\t\t# BIOS: int 0x1a, 00\n int $0x1a\t\t\t# get system time\n cmpw %di,%dx\t\t# Timeout?\n jb read_key\t\t# No" ], "previous_source": "", "target": [ "start_input:\n xorb %ah,%ah\t\t# BIOS: Get\n int $0x1a\t\t\t# system time\n movw %dx,%di\t\t# Ticks when\n addw _TICKS(%bp),%di\t# timeout\nread_key:\n movb $0x1,%ah\t\t# BIOS: Check\n int $0x16\t\t\t# for keypress\n jnz got_key\t\t# Have input\n xorb %ah,%ah\t\t# BIOS: int 0x1a, 00\n int $0x1a\t\t\t# get system time\n cmpw %di,%dx\t\t# Timeout?\n jb read_key\t\t# No" ], "id_hash": 4132155707285912073, "content_hash": 4132155707285912073, "location": "book.translate.xml:843", "context": "", "note": "(itstool) path: figure/programlisting", "flags": "no-wrap", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 94, "has_suggestion": false, "has_comment": false, "has_failing_check": true, "num_words": 57, "source_unit": "https://translate-dev.freebsd.org/api/units/102240/?format=api", "priority": 100, "id": 102240, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=b9585db901613a09", "url": "https://translate-dev.freebsd.org/api/units/102240/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.683671Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "Whether a key was pressed or the time expired, subsequent code validates the selection. Based on the selection, the register <literal>%si</literal> is set to point to the appropriate partition entry in the partition table. This new selection overrides the previous default one. Indeed, it becomes the new default. Finally, the ACTIVE flag of the selected partition is set. If it was enabled at compile time, the in-memory version of <filename>boot0</filename> with these modified values is written back to the <acronym>MBR</acronym> on disk. We leave the details of this implementation to the reader." ], "previous_source": "", "target": [ "Whether a key was pressed or the time expired, subsequent code validates the selection. Based on the selection, the register <literal>%si</literal> is set to point to the appropriate partition entry in the partition table. This new selection overrides the previous default one. Indeed, it becomes the new default. Finally, the ACTIVE flag of the selected partition is set. If it was enabled at compile time, the in-memory version of <filename>boot0</filename> with these modified values is written back to the <acronym>MBR</acronym> on disk. We leave the details of this implementation to the reader." ], "id_hash": 6143089946623077484, "content_hash": 6143089946623077484, "location": "book.translate.xml:895", "context": "", "note": "(itstool) path: sect1/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 96, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 92, "source_unit": "https://translate-dev.freebsd.org/api/units/102242/?format=api", "priority": 100, "id": 102242, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=d540a3c24bbdec6c", "url": "https://translate-dev.freebsd.org/api/units/102242/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.708726Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "We now end our study with the last code block from the <filename>boot0</filename> program:" ], "previous_source": "", "target": [ "We now end our study with the last code block from the <filename>boot0</filename> program:" ], "id_hash": 2749386174022508190, "content_hash": 2749386174022508190, "location": "book.translate.xml:907", "context": "", "note": "(itstool) path: sect1/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 97, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 14, "source_unit": "https://translate-dev.freebsd.org/api/units/102243/?format=api", "priority": 100, "id": 102243, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=a627c8288cfb5e9e", "url": "https://translate-dev.freebsd.org/api/units/102243/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.720082Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ " movw $0x7c00,%bx\t\t# Address for read\n movb $0x2,%ah\t\t# Read sector\n callw intx13\t\t# from disk\n jc beep\t\t\t# If error\n cmpw $0xaa55,0x1fe(%bx)\t# Bootable?\n jne beep\t\t\t# No\n pushw %si\t\t\t# Save ptr to selected part.\n callw putn\t\t# Leave some space\n popw %si\t\t\t# Restore, next stage uses it\n jmp *%bx\t\t\t# Invoke bootstrap" ], "previous_source": "", "target": [ " movw $0x7c00,%bx\t\t# Address for read\n movb $0x2,%ah\t\t# Read sector\n callw intx13\t\t# from disk\n jc beep\t\t\t# If error\n cmpw $0xaa55,0x1fe(%bx)\t# Bootable?\n jne beep\t\t\t# No\n pushw %si\t\t\t# Save ptr to selected part.\n callw putn\t\t# Leave some space\n popw %si\t\t\t# Restore, next stage uses it\n jmp *%bx\t\t\t# Invoke bootstrap" ], "id_hash": -3176282905936987635, "content_hash": -3176282905936987635, "location": "book.translate.xml:913", "context": "", "note": "(itstool) path: figure/programlisting", "flags": "no-wrap", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 98, "has_suggestion": false, "has_comment": false, "has_failing_check": true, "num_words": 56, "source_unit": "https://translate-dev.freebsd.org/api/units/102244/?format=api", "priority": 100, "id": 102244, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=53eb9386957afa0d", "url": "https://translate-dev.freebsd.org/api/units/102244/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.731659Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "Recall that <literal>%si</literal> points to the selected partition entry. This entry tells us where the partition begins on disk. We assume, of course, that the partition selected is actually a FreeBSD slice." ], "previous_source": "", "target": [ "Recall that <literal>%si</literal> points to the selected partition entry. This entry tells us where the partition begins on disk. We assume, of course, that the partition selected is actually a FreeBSD slice." ], "id_hash": 4210552061304236609, "content_hash": 4210552061304236609, "location": "book.translate.xml:925", "context": "", "note": "(itstool) path: sect1/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 99, "has_suggestion": false, "has_comment": false, "has_failing_check": true, "num_words": 32, "source_unit": "https://translate-dev.freebsd.org/api/units/102245/?format=api", "priority": 100, "id": 102245, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=ba6ee2ca9253ea41", "url": "https://translate-dev.freebsd.org/api/units/102245/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.744068Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "From now on, we will favor the use of the technically more accurate term <quote>slice</quote> rather than <quote>partition</quote>." ], "previous_source": "", "target": [ "From now on, we will favor the use of the technically more accurate term <quote>slice</quote> rather than <quote>partition</quote>." ], "id_hash": 7832870464911892242, "content_hash": 7832870464911892242, "location": "book.translate.xml:931", "context": "", "note": "(itstool) path: note/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 100, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 18, "source_unit": "https://translate-dev.freebsd.org/api/units/102246/?format=api", "priority": 100, "id": 102246, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=ecb3f23000b8df12", "url": "https://translate-dev.freebsd.org/api/units/102246/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.753894Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "The transfer buffer is set to <literal>0x7c00</literal> (register <literal>%bx</literal>), and a read for the first sector of the FreeBSD slice is requested by calling <literal>intx13</literal>. We assume that everything went okay, so a jump to <literal>beep</literal> is not performed. In particular, the new sector read must end with the magic sequence <literal>0xaa55</literal>. Finally, the value at <literal>%si</literal> (the pointer to the selected partition table) is preserved for use by the next stage, and a jump is performed to address <literal>0x7c00</literal>, where execution of our next stage (the just-read block) is started." ], "previous_source": "", "target": [ "The transfer buffer is set to <literal>0x7c00</literal> (register <literal>%bx</literal>), and a read for the first sector of the FreeBSD slice is requested by calling <literal>intx13</literal>. We assume that everything went okay, so a jump to <literal>beep</literal> is not performed. In particular, the new sector read must end with the magic sequence <literal>0xaa55</literal>. Finally, the value at <literal>%si</literal> (the pointer to the selected partition table) is preserved for use by the next stage, and a jump is performed to address <literal>0x7c00</literal>, where execution of our next stage (the just-read block) is started." ], "id_hash": 2920959513835372191, "content_hash": 2920959513835372191, "location": "book.translate.xml:936", "context": "", "note": "(itstool) path: sect1/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 101, "has_suggestion": false, "has_comment": false, "has_failing_check": true, "num_words": 91, "source_unit": "https://translate-dev.freebsd.org/api/units/102247/?format=api", "priority": 100, "id": 102247, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=a8895533b1747e9f", "url": "https://translate-dev.freebsd.org/api/units/102247/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.767686Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "<literal>boot1</literal> Stage" ], "previous_source": "", "target": [ "<literal>boot1</literal> Stage" ], "id_hash": 110231236179529351, "content_hash": 110231236179529351, "location": "book.translate.xml:950", "context": "", "note": "(itstool) path: sect1/title", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 102, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 2, "source_unit": "https://translate-dev.freebsd.org/api/units/102248/?format=api", "priority": 100, "id": 102248, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=81879eb9aba20e87", "url": "https://translate-dev.freebsd.org/api/units/102248/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.781239Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "So far we have gone through the following sequence:" ], "previous_source": "", "target": [ "So far we have gone through the following sequence:" ], "id_hash": 8398050994771347565, "content_hash": 8398050994771347565, "location": "book.translate.xml:952", "context": "", "note": "(itstool) path: sect1/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 103, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 9, "source_unit": "https://translate-dev.freebsd.org/api/units/102249/?format=api", "priority": 100, "id": 102249, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=f48bdee28cf6486d", "url": "https://translate-dev.freebsd.org/api/units/102249/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.796607Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "The <acronym>BIOS</acronym> did some early hardware initialization, including the <acronym>POST</acronym>. The <acronym>MBR</acronym> (<filename>boot0</filename>) was loaded from absolute disk sector one to address <literal>0x7c00</literal>. Execution control was passed to that location." ], "previous_source": "", "target": [ "The <acronym>BIOS</acronym> did some early hardware initialization, including the <acronym>POST</acronym>. The <acronym>MBR</acronym> (<filename>boot0</filename>) was loaded from absolute disk sector one to address <literal>0x7c00</literal>. Execution control was passed to that location." ], "id_hash": 370855164581522016, "content_hash": 370855164581522016, "location": "book.translate.xml:956", "context": "", "note": "(itstool) path: listitem/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 104, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 30, "source_unit": "https://translate-dev.freebsd.org/api/units/102250/?format=api", "priority": 100, "id": 102250, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=85258aceac002a60", "url": "https://translate-dev.freebsd.org/api/units/102250/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.812352Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "<filename>boot0</filename> relocated itself to the location it was linked to execute (<literal>0x600</literal>), followed by a jump to continue execution at the appropriate place. Finally, <filename>boot0</filename> loaded the first disk sector from the FreeBSD slice to address <literal>0x7c00</literal>. Execution control was passed to that location." ], "previous_source": "", "target": [ "<filename>boot0</filename> relocated itself to the location it was linked to execute (<literal>0x600</literal>), followed by a jump to continue execution at the appropriate place. Finally, <filename>boot0</filename> loaded the first disk sector from the FreeBSD slice to address <literal>0x7c00</literal>. Execution control was passed to that location." ], "id_hash": -3344737101880628681, "content_hash": -3344737101880628681, "location": "book.translate.xml:965", "context": "", "note": "(itstool) path: listitem/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 105, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 44, "source_unit": "https://translate-dev.freebsd.org/api/units/102251/?format=api", "priority": 100, "id": 102251, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=51951b53b755ea37", "url": "https://translate-dev.freebsd.org/api/units/102251/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.824500Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "There is a file <filename>/boot/boot1</filename>, but it is not the written to the beginning of the FreeBSD slice. Instead, it is concatenated with <filename>boot2</filename> to form <filename>boot</filename>, which <emphasis>is</emphasis> written to the beginning of the FreeBSD slice and read at boot time." ], "previous_source": "", "target": [ "There is a file <filename>/boot/boot1</filename>, but it is not the written to the beginning of the FreeBSD slice. Instead, it is concatenated with <filename>boot2</filename> to form <filename>boot</filename>, which <emphasis>is</emphasis> written to the beginning of the FreeBSD slice and read at boot time." ], "id_hash": 6293098321505140683, "content_hash": 6293098321505140683, "location": "book.translate.xml:989", "context": "", "note": "(itstool) path: footnote/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 106, "has_suggestion": false, "has_comment": false, "has_failing_check": true, "num_words": 42, "source_unit": "https://translate-dev.freebsd.org/api/units/102252/?format=api", "priority": 100, "id": 102252, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=d7559394c5ebbfcb", "url": "https://translate-dev.freebsd.org/api/units/102252/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.834778Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "<filename>boot1</filename> is the next step in the boot-loading sequence. It is the first of three boot stages. Note that we have been dealing exclusively with disk sectors. Indeed, the <acronym>BIOS</acronym> loads the absolute first sector, while <filename>boot0</filename> loads the first sector of the FreeBSD slice. Both loads are to address <literal>0x7c00</literal>. We can conceptually think of these disk sectors as containing the files <filename>boot0</filename> and <filename>boot1</filename>, respectively, but in reality this is not entirely true for <filename>boot1</filename>. Strictly speaking, unlike <filename>boot0</filename>, <filename>boot1</filename> is not part of the boot blocks <_:footnote-1/>. Instead, a single, full-blown file, <filename>boot</filename> (<filename>/boot/boot</filename>), is what ultimately is written to disk. This file is a combination of <filename>boot1</filename>, <filename>boot2</filename> and the <literal>Boot Extender</literal> (or <acronym>BTX</acronym>). This single file is greater in size than a single sector (greater than 512 bytes). Fortunately, <filename>boot1</filename> occupies <emphasis>exactly</emphasis> the first 512 bytes of this single file, so when <filename>boot0</filename> loads the first sector of the FreeBSD slice (512 bytes), it is actually loading <filename>boot1</filename> and transferring control to it." ], "previous_source": "", "target": [ "<filename>boot1</filename> is the next step in the boot-loading sequence. It is the first of three boot stages. Note that we have been dealing exclusively with disk sectors. Indeed, the <acronym>BIOS</acronym> loads the absolute first sector, while <filename>boot0</filename> loads the first sector of the FreeBSD slice. Both loads are to address <literal>0x7c00</literal>. We can conceptually think of these disk sectors as containing the files <filename>boot0</filename> and <filename>boot1</filename>, respectively, but in reality this is not entirely true for <filename>boot1</filename>. Strictly speaking, unlike <filename>boot0</filename>, <filename>boot1</filename> is not part of the boot blocks <_:footnote-1/>. Instead, a single, full-blown file, <filename>boot</filename> (<filename>/boot/boot</filename>), is what ultimately is written to disk. This file is a combination of <filename>boot1</filename>, <filename>boot2</filename> and the <literal>Boot Extender</literal> (or <acronym>BTX</acronym>). This single file is greater in size than a single sector (greater than 512 bytes). Fortunately, <filename>boot1</filename> occupies <emphasis>exactly</emphasis> the first 512 bytes of this single file, so when <filename>boot0</filename> loads the first sector of the FreeBSD slice (512 bytes), it is actually loading <filename>boot1</filename> and transferring control to it." ], "id_hash": -8377209143269380500, "content_hash": -8377209143269380500, "location": "book.translate.xml:975", "context": "", "note": "(itstool) path: sect1/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 107, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 168, "source_unit": "https://translate-dev.freebsd.org/api/units/102253/?format=api", "priority": 100, "id": 102253, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=0bbe2cab26462e6c", "url": "https://translate-dev.freebsd.org/api/units/102253/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.844321Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "The main task of <filename>boot1</filename> is to load the next boot stage. This next stage is somewhat more complex. It is composed of a server called the <quote>Boot Extender</quote>, or <acronym>BTX</acronym>, and a client, called <filename>boot2</filename>. As we will see, the last boot stage, <filename>loader</filename>, is also a client of the <acronym>BTX</acronym> server." ], "previous_source": "", "target": [ "The main task of <filename>boot1</filename> is to load the next boot stage. This next stage is somewhat more complex. It is composed of a server called the <quote>Boot Extender</quote>, or <acronym>BTX</acronym>, and a client, called <filename>boot2</filename>. As we will see, the last boot stage, <filename>loader</filename>, is also a client of the <acronym>BTX</acronym> server." ], "id_hash": 8487644768197878083, "content_hash": 8487644768197878083, "location": "book.translate.xml:1009", "context": "", "note": "(itstool) path: sect1/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 108, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 53, "source_unit": "https://translate-dev.freebsd.org/api/units/102254/?format=api", "priority": 100, "id": 102254, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=f5ca2bf27c232143", "url": "https://translate-dev.freebsd.org/api/units/102254/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.860246Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "Let us now look in detail at what exactly is done by <filename>boot1</filename>, starting like we did for <filename>boot0</filename>, at its entry point:" ], "previous_source": "", "target": [ "Let us now look in detail at what exactly is done by <filename>boot1</filename>, starting like we did for <filename>boot0</filename>, at its entry point:" ], "id_hash": -9110961298920602387, "content_hash": -9110961298920602387, "location": "book.translate.xml:1017", "context": "", "note": "(itstool) path: sect1/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 109, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 23, "source_unit": "https://translate-dev.freebsd.org/api/units/102255/?format=api", "priority": 100, "id": 102255, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=018f5cf8778184ed", "url": "https://translate-dev.freebsd.org/api/units/102255/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.871973Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "<filename>sys/boot/i386/boot2/boot1.S</filename>" ], "previous_source": "", "target": [ "<filename>sys/boot/i386/boot2/boot1.S</filename>" ], "id_hash": 4963965183127907205, "content_hash": 4963965183127907205, "location": "book.translate.xml:1022, book.translate.xml:1033, book.translate.xml:1073, book.translate.xml:1118, book.translate.xml:1153, book.translate.xml:1180, book.translate.xml:1209, book.translate.xml:1316", "context": "", "note": "(itstool) path: figure/title", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 110, "has_suggestion": false, "has_comment": false, "has_failing_check": true, "num_words": 1, "source_unit": "https://translate-dev.freebsd.org/api/units/102256/?format=api", "priority": 100, "id": 102256, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=c4e38c08a9beeb85", "url": "https://translate-dev.freebsd.org/api/units/102256/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.882991Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "start:\n\tjmp main" ], "previous_source": "", "target": [ "start:\n\tjmp main" ], "id_hash": -2933928848880139714, "content_hash": -2933928848880139714, "location": "book.translate.xml:1024", "context": "", "note": "(itstool) path: figure/programlisting", "flags": "no-wrap", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 111, "has_suggestion": false, "has_comment": false, "has_failing_check": true, "num_words": 3, "source_unit": "https://translate-dev.freebsd.org/api/units/102257/?format=api", "priority": 100, "id": 102257, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=57489741ae3a823e", "url": "https://translate-dev.freebsd.org/api/units/102257/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.898879Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "The entry point at <literal>start</literal> simply jumps past a special data area to the label <literal>main</literal>, which in turn looks like this:" ], "previous_source": "", "target": [ "The entry point at <literal>start</literal> simply jumps past a special data area to the label <literal>main</literal>, which in turn looks like this:" ], "id_hash": 4507621407725888329, "content_hash": 4507621407725888329, "location": "book.translate.xml:1028", "context": "", "note": "(itstool) path: sect1/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 112, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 22, "source_unit": "https://translate-dev.freebsd.org/api/units/102258/?format=api", "priority": 100, "id": 102258, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=be8e49c9b572a349", "url": "https://translate-dev.freebsd.org/api/units/102258/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.911033Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "main:\n cld\t\t\t# String ops inc\n xor %cx,%cx\t\t# Zero\n mov %cx,%es\t\t# Address\n mov %cx,%ds\t\t# data\n mov %cx,%ss\t\t# Set up\n mov $start,%sp\t\t# stack\n mov %sp,%si\t\t# Source\n mov $0x700,%di\t\t# Destination\n incb %ch\t\t\t# Word count\n rep\t\t\t# Copy\n movsw\t\t\t# code" ], "previous_source": "", "target": [ "main:\n cld\t\t\t# String ops inc\n xor %cx,%cx\t\t# Zero\n mov %cx,%es\t\t# Address\n mov %cx,%ds\t\t# data\n mov %cx,%ss\t\t# Set up\n mov $start,%sp\t\t# stack\n mov %sp,%si\t\t# Source\n mov $0x700,%di\t\t# Destination\n incb %ch\t\t\t# Word count\n rep\t\t\t# Copy\n movsw\t\t\t# code" ], "id_hash": 1612367318754928793, "content_hash": 1612367318754928793, "location": "book.translate.xml:1035", "context": "", "note": "(itstool) path: figure/programlisting", "flags": "no-wrap", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 113, "has_suggestion": false, "has_comment": false, "has_failing_check": true, "num_words": 46, "source_unit": "https://translate-dev.freebsd.org/api/units/102259/?format=api", "priority": 100, "id": 102259, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=96604788a1d62899", "url": "https://translate-dev.freebsd.org/api/units/102259/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.923789Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "Just like <filename>boot0</filename>, this code relocates <filename>boot1</filename>, this time to memory address <literal>0x700</literal>. However, unlike <filename>boot0</filename>, it does not jump there. <filename>boot1</filename> is linked to execute at address <literal>0x7c00</literal>, effectively where it was loaded in the first place. The reason for this relocation will be discussed shortly." ], "previous_source": "", "target": [ "Just like <filename>boot0</filename>, this code relocates <filename>boot1</filename>, this time to memory address <literal>0x700</literal>. However, unlike <filename>boot0</filename>, it does not jump there. <filename>boot1</filename> is linked to execute at address <literal>0x7c00</literal>, effectively where it was loaded in the first place. The reason for this relocation will be discussed shortly." ], "id_hash": -8047247271417493917, "content_hash": -8047247271417493917, "location": "book.translate.xml:1049", "context": "", "note": "(itstool) path: sect1/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 114, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 47, "source_unit": "https://translate-dev.freebsd.org/api/units/102260/?format=api", "priority": 100, "id": 102260, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=10526f3e276dc663", "url": "https://translate-dev.freebsd.org/api/units/102260/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.934225Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "Actually we did pass a pointer to the slice entry in register <literal>%si</literal>. However, <filename>boot1</filename> does not assume that it was loaded by <filename>boot0</filename> (perhaps some other <acronym>MBR</acronym> loaded it, and did not pass this information), so it assumes nothing." ], "previous_source": "", "target": [ "Actually we did pass a pointer to the slice entry in register <literal>%si</literal>. However, <filename>boot1</filename> does not assume that it was loaded by <filename>boot0</filename> (perhaps some other <acronym>MBR</acronym> loaded it, and did not pass this information), so it assumes nothing." ], "id_hash": -6940953073087411096, "content_hash": -6940953073087411096, "location": "book.translate.xml:1062", "context": "", "note": "(itstool) path: footnote/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 115, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 40, "source_unit": "https://translate-dev.freebsd.org/api/units/102261/?format=api", "priority": 100, "id": 102261, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=1facc7f46bf80c68", "url": "https://translate-dev.freebsd.org/api/units/102261/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.948218Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "Next comes a loop that looks for the FreeBSD slice. Although <filename>boot0</filename> loaded <filename>boot1</filename> from the FreeBSD slice, no information was passed to it about this <_:footnote-1/>, so <filename>boot1</filename> must rescan the partition table to find where the FreeBSD slice starts. Therefore it rereads the <acronym>MBR</acronym>:" ], "previous_source": "", "target": [ "Next comes a loop that looks for the FreeBSD slice. Although <filename>boot0</filename> loaded <filename>boot1</filename> from the FreeBSD slice, no information was passed to it about this <_:footnote-1/>, so <filename>boot1</filename> must rescan the partition table to find where the FreeBSD slice starts. Therefore it rereads the <acronym>MBR</acronym>:" ], "id_hash": -5952894380545595670, "content_hash": -5952894380545595670, "location": "book.translate.xml:1058", "context": "", "note": "(itstool) path: sect1/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 116, "has_suggestion": false, "has_comment": false, "has_failing_check": true, "num_words": 46, "source_unit": "https://translate-dev.freebsd.org/api/units/102262/?format=api", "priority": 100, "id": 102262, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=2d631219c62926ea", "url": "https://translate-dev.freebsd.org/api/units/102262/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.964167Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ " mov $part4,%si\t\t# Partition\n cmpb $0x80,%dl\t\t# Hard drive?\n jb main.4\t\t\t# No\n movb $0x1,%dh\t\t# Block count\n callw nread\t\t# Read MBR" ], "previous_source": "", "target": [ " mov $part4,%si\t\t# Partition\n cmpb $0x80,%dl\t\t# Hard drive?\n jb main.4\t\t\t# No\n movb $0x1,%dh\t\t# Block count\n callw nread\t\t# Read MBR" ], "id_hash": 4228258536963944823, "content_hash": 4228258536963944823, "location": "book.translate.xml:1075", "context": "", "note": "(itstool) path: figure/programlisting", "flags": "no-wrap", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 117, "has_suggestion": false, "has_comment": false, "has_failing_check": true, "num_words": 23, "source_unit": "https://translate-dev.freebsd.org/api/units/102263/?format=api", "priority": 100, "id": 102263, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=baadcabcb23fb177", "url": "https://translate-dev.freebsd.org/api/units/102263/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:42.982712Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "In the code above, register <literal>%dl</literal> maintains information about the boot device. This is passed on by the <acronym>BIOS</acronym> and preserved by the <acronym>MBR</acronym>. Numbers <literal>0x80</literal> and greater tells us that we are dealing with a hard drive, so a call is made to <literal>nread</literal>, where the <acronym>MBR</acronym> is read. Arguments to <literal>nread</literal> are passed through <literal>%si</literal> and <literal>%dh</literal>. The memory address at label <literal>part4</literal> is copied to <literal>%si</literal>. This memory address holds a <quote>fake partition</quote> to be used by <literal>nread</literal>. The following is the data in the fake partition:" ], "previous_source": "", "target": [ "In the code above, register <literal>%dl</literal> maintains information about the boot device. This is passed on by the <acronym>BIOS</acronym> and preserved by the <acronym>MBR</acronym>. Numbers <literal>0x80</literal> and greater tells us that we are dealing with a hard drive, so a call is made to <literal>nread</literal>, where the <acronym>MBR</acronym> is read. Arguments to <literal>nread</literal> are passed through <literal>%si</literal> and <literal>%dh</literal>. The memory address at label <literal>part4</literal> is copied to <literal>%si</literal>. This memory address holds a <quote>fake partition</quote> to be used by <literal>nread</literal>. The following is the data in the fake partition:" ], "id_hash": -1512622224495492756, "content_hash": -1512622224495492756, "location": "book.translate.xml:1082", "context": "", "note": "(itstool) path: sect1/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 118, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 90, "source_unit": "https://translate-dev.freebsd.org/api/units/102264/?format=api", "priority": 100, "id": 102264, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=6b021619dd95c16c", "url": "https://translate-dev.freebsd.org/api/units/102264/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:43.004752Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "<filename>sys/boot/i386/boot2/Makefile</filename>" ], "previous_source": "", "target": [ "<filename>sys/boot/i386/boot2/Makefile</filename>" ], "id_hash": 5628099223572385040, "content_hash": 5628099223572385040, "location": "book.translate.xml:1098, book.translate.xml:1392, book.translate.xml:1405, book.translate.xml:1437, book.translate.xml:1478", "context": "", "note": "(itstool) path: figure/title", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 119, "has_suggestion": false, "has_comment": false, "has_failing_check": true, "num_words": 1, "source_unit": "https://translate-dev.freebsd.org/api/units/102265/?format=api", "priority": 100, "id": 102265, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=ce1b066cc5af0d10", "url": "https://translate-dev.freebsd.org/api/units/102265/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:43.025089Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ " part4:\n\t.byte 0x80, 0x00, 0x01, 0x00\n\t.byte 0xa5, 0xfe, 0xff, 0xff\n\t.byte 0x00, 0x00, 0x00, 0x00\n\t.byte 0x50, 0xc3, 0x00, 0x00" ], "previous_source": "", "target": [ " part4:\n\t.byte 0x80, 0x00, 0x01, 0x00\n\t.byte 0xa5, 0xfe, 0xff, 0xff\n\t.byte 0x00, 0x00, 0x00, 0x00\n\t.byte 0x50, 0xc3, 0x00, 0x00" ], "id_hash": 6840952387173805943, "content_hash": 6840952387173805943, "location": "book.translate.xml:1100", "context": "", "note": "(itstool) path: figure/programlisting", "flags": "no-wrap", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 120, "has_suggestion": false, "has_comment": false, "has_failing_check": true, "num_words": 21, "source_unit": "https://translate-dev.freebsd.org/api/units/102266/?format=api", "priority": 100, "id": 102266, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=deeff1f382daef77", "url": "https://translate-dev.freebsd.org/api/units/102266/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:43.058709Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "In particular, the <acronym>LBA</acronym> for this fake partition is hardcoded to zero. This is used as an argument to the <acronym>BIOS</acronym> for reading absolute sector one from the hard drive. Alternatively, CHS addressing could be used. In this case, the fake partition holds cylinder 0, head 0 and sector 1, which is equivalent to absolute sector one." ], "previous_source": "", "target": [ "In particular, the <acronym>LBA</acronym> for this fake partition is hardcoded to zero. This is used as an argument to the <acronym>BIOS</acronym> for reading absolute sector one from the hard drive. Alternatively, CHS addressing could be used. In this case, the fake partition holds cylinder 0, head 0 and sector 1, which is equivalent to absolute sector one." ], "id_hash": -1015605610338119619, "content_hash": -1015605610338119619, "location": "book.translate.xml:1107", "context": "", "note": "(itstool) path: sect1/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 121, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 57, "source_unit": "https://translate-dev.freebsd.org/api/units/102267/?format=api", "priority": 100, "id": 102267, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=71e7d8140be7103d", "url": "https://translate-dev.freebsd.org/api/units/102267/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:43.075289Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "Let us now proceed to take a look at <literal>nread</literal>:" ], "previous_source": "", "target": [ "Let us now proceed to take a look at <literal>nread</literal>:" ], "id_hash": -264710834897695218, "content_hash": -264710834897695218, "location": "book.translate.xml:1114", "context": "", "note": "(itstool) path: sect1/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 122, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 10, "source_unit": "https://translate-dev.freebsd.org/api/units/102268/?format=api", "priority": 100, "id": 102268, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=7c538ee5edb9ce0e", "url": "https://translate-dev.freebsd.org/api/units/102268/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:43.088411Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "nread:\n mov $0x8c00,%bx\t\t# Transfer buffer\n mov 0x8(%si),%ax\t\t# Get\n mov 0xa(%si),%cx\t\t# LBA\n push %cs\t\t\t# Read from\n callw xread.1\t\t# disk\n jnc return\t\t# If success, return" ], "previous_source": "", "target": [ "nread:\n mov $0x8c00,%bx\t\t# Transfer buffer\n mov 0x8(%si),%ax\t\t# Get\n mov 0xa(%si),%cx\t\t# LBA\n push %cs\t\t\t# Read from\n callw xread.1\t\t# disk\n jnc return\t\t# If success, return" ], "id_hash": -68044345277244283, "content_hash": -68044345277244283, "location": "book.translate.xml:1120", "context": "", "note": "(itstool) path: figure/programlisting", "flags": "no-wrap", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 123, "has_suggestion": false, "has_comment": false, "has_failing_check": true, "num_words": 29, "source_unit": "https://translate-dev.freebsd.org/api/units/102269/?format=api", "priority": 100, "id": 102269, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=7f0e42074ac69c85", "url": "https://translate-dev.freebsd.org/api/units/102269/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:43.105631Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "In the context of 16-bit real mode, a word is 2 bytes." ], "previous_source": "", "target": [ "In the context of 16-bit real mode, a word is 2 bytes." ], "id_hash": 5525829334199655490, "content_hash": 5525829334199655490, "location": "book.translate.xml:1132", "context": "", "note": "(itstool) path: footnote/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 124, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 12, "source_unit": "https://translate-dev.freebsd.org/api/units/102270/?format=api", "priority": 100, "id": 102270, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=ccafb0809a675c42", "url": "https://translate-dev.freebsd.org/api/units/102270/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:43.121506Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "Recall that <literal>%si</literal> points to the fake partition. The word <_:footnote-1/> at offset <literal>0x8</literal> is copied to register <literal>%ax</literal> and word at offset <literal>0xa</literal> to <literal>%cx</literal>. They are interpreted by the <acronym>BIOS</acronym> as the lower 4-byte value denoting the LBA to be read (the upper four bytes are assumed to be zero). Register <literal>%bx</literal> holds the memory address where the <acronym>MBR</acronym> will be loaded. The instruction pushing <literal>%cs</literal> onto the stack is very interesting. In this context, it accomplishes nothing. However, as we will see shortly, <filename>boot2</filename>, in conjunction with the <acronym>BTX</acronym> server, also uses <literal>xread.1</literal>. This mechanism will be discussed in the next section." ], "previous_source": "", "target": [ "Recall that <literal>%si</literal> points to the fake partition. The word <_:footnote-1/> at offset <literal>0x8</literal> is copied to register <literal>%ax</literal> and word at offset <literal>0xa</literal> to <literal>%cx</literal>. They are interpreted by the <acronym>BIOS</acronym> as the lower 4-byte value denoting the LBA to be read (the upper four bytes are assumed to be zero). Register <literal>%bx</literal> holds the memory address where the <acronym>MBR</acronym> will be loaded. The instruction pushing <literal>%cs</literal> onto the stack is very interesting. In this context, it accomplishes nothing. However, as we will see shortly, <filename>boot2</filename>, in conjunction with the <acronym>BTX</acronym> server, also uses <literal>xread.1</literal>. This mechanism will be discussed in the next section." ], "id_hash": 1503455988164528453, "content_hash": 1503455988164528453, "location": "book.translate.xml:1129", "context": "", "note": "(itstool) path: sect1/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 125, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 105, "source_unit": "https://translate-dev.freebsd.org/api/units/102271/?format=api", "priority": 100, "id": 102271, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=94dd59416dfb0945", "url": "https://translate-dev.freebsd.org/api/units/102271/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:43.134659Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "The code at <literal>xread.1</literal> further calls the <literal>read</literal> function, which actually calls the <acronym>BIOS</acronym> asking for the disk sector:" ], "previous_source": "", "target": [ "The code at <literal>xread.1</literal> further calls the <literal>read</literal> function, which actually calls the <acronym>BIOS</acronym> asking for the disk sector:" ], "id_hash": -5437444287592262294, "content_hash": -5437444287592262294, "location": "book.translate.xml:1148", "context": "", "note": "(itstool) path: sect1/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 126, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 19, "source_unit": "https://translate-dev.freebsd.org/api/units/102272/?format=api", "priority": 100, "id": 102272, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=348a513ab016156a", "url": "https://translate-dev.freebsd.org/api/units/102272/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:43.150545Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "xread.1:\n\tpushl $0x0\t\t# absolute\n\tpush %cx\t\t# block\n\tpush %ax\t\t# number\n\tpush %es\t\t# Address of\n\tpush %bx\t\t# transfer buffer\n\txor %ax,%ax\t\t# Number of\n\tmovb %dh,%al\t\t# blocks to\n\tpush %ax\t\t# transfer\n\tpush $0x10\t\t# Size of packet\n\tmov %sp,%bp\t\t# Packet pointer\n\tcallw read\t\t# Read from disk\n\tlea 0x10(%bp),%sp\t# Clear stack\n\tlret\t\t\t# To far caller" ], "previous_source": "", "target": [ "xread.1:\n\tpushl $0x0\t\t# absolute\n\tpush %cx\t\t# block\n\tpush %ax\t\t# number\n\tpush %es\t\t# Address of\n\tpush %bx\t\t# transfer buffer\n\txor %ax,%ax\t\t# Number of\n\tmovb %dh,%al\t\t# blocks to\n\tpush %ax\t\t# transfer\n\tpush $0x10\t\t# Size of packet\n\tmov %sp,%bp\t\t# Packet pointer\n\tcallw read\t\t# Read from disk\n\tlea 0x10(%bp),%sp\t# Clear stack\n\tlret\t\t\t# To far caller" ], "id_hash": 6449847625678471492, "content_hash": 6449847625678471492, "location": "book.translate.xml:1155", "context": "", "note": "(itstool) path: figure/programlisting", "flags": "no-wrap", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 127, "has_suggestion": false, "has_comment": false, "has_failing_check": true, "num_words": 64, "source_unit": "https://translate-dev.freebsd.org/api/units/102273/?format=api", "priority": 100, "id": 102273, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=d982763e27f64144", "url": "https://translate-dev.freebsd.org/api/units/102273/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:43.157699Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "Note the long return instruction at the end of this block. This instruction pops out the <literal>%cs</literal> register pushed by <literal>nread</literal>, and returns. Finally, <literal>nread</literal> also returns." ], "previous_source": "", "target": [ "Note the long return instruction at the end of this block. This instruction pops out the <literal>%cs</literal> register pushed by <literal>nread</literal>, and returns. Finally, <literal>nread</literal> also returns." ], "id_hash": 3376851401700969942, "content_hash": 3376851401700969942, "location": "book.translate.xml:1171", "context": "", "note": "(itstool) path: sect1/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 128, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 27, "source_unit": "https://translate-dev.freebsd.org/api/units/102274/?format=api", "priority": 100, "id": 102274, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=aedcfc7561aa8dd6", "url": "https://translate-dev.freebsd.org/api/units/102274/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:43.165204Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "With the <acronym>MBR</acronym> loaded to memory, the actual loop for searching the FreeBSD slice begins:" ], "previous_source": "", "target": [ "With the <acronym>MBR</acronym> loaded to memory, the actual loop for searching the FreeBSD slice begins:" ], "id_hash": -5635937038707746169, "content_hash": -5635937038707746169, "location": "book.translate.xml:1176", "context": "", "note": "(itstool) path: sect1/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 129, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 15, "source_unit": "https://translate-dev.freebsd.org/api/units/102275/?format=api", "priority": 100, "id": 102275, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=31c9211faf5b9a87", "url": "https://translate-dev.freebsd.org/api/units/102275/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:43.171748Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "\tmov $0x1,%cx\t\t # Two passes\nmain.1:\n\tmov $0x8dbe,%si # Partition table\n\tmovb $0x1,%dh\t\t # Partition\nmain.2:\n\tcmpb $0xa5,0x4(%si)\t # Our partition type?\n\tjne main.3\t\t # No\n\tjcxz main.5\t\t # If second pass\n\ttestb $0x80,(%si)\t # Active?\n\tjnz main.5\t\t # Yes\nmain.3:\n\tadd $0x10,%si\t\t # Next entry\n\tincb %dh\t\t # Partition\n\tcmpb $0x5,%dh\t\t # In table?\n\tjb main.2\t\t # Yes\n\tdec %cx\t\t\t # Do two\n\tjcxz main.1\t\t # passes" ], "previous_source": "", "target": [ "\tmov $0x1,%cx\t\t # Two passes\nmain.1:\n\tmov $0x8dbe,%si # Partition table\n\tmovb $0x1,%dh\t\t # Partition\nmain.2:\n\tcmpb $0xa5,0x4(%si)\t # Our partition type?\n\tjne main.3\t\t # No\n\tjcxz main.5\t\t # If second pass\n\ttestb $0x80,(%si)\t # Active?\n\tjnz main.5\t\t # Yes\nmain.3:\n\tadd $0x10,%si\t\t # Next entry\n\tincb %dh\t\t # Partition\n\tcmpb $0x5,%dh\t\t # In table?\n\tjb main.2\t\t # Yes\n\tdec %cx\t\t\t # Do two\n\tjcxz main.1\t\t # passes" ], "id_hash": -3022798808838760924, "content_hash": -3022798808838760924, "location": "book.translate.xml:1182", "context": "", "note": "(itstool) path: figure/programlisting", "flags": "no-wrap", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 130, "has_suggestion": false, "has_comment": false, "has_failing_check": true, "num_words": 68, "source_unit": "https://translate-dev.freebsd.org/api/units/102276/?format=api", "priority": 100, "id": 102276, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=560cdc7fb3b11624", "url": "https://translate-dev.freebsd.org/api/units/102276/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:43.179672Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "If a FreeBSD slice is identified, execution continues at <literal>main.5</literal>. Note that when a FreeBSD slice is found <literal>%si</literal> points to the appropriate entry in the partition table, and <literal>%dh</literal> holds the partition number. We assume that a FreeBSD slice is found, so we continue execution at <literal>main.5</literal>:" ], "previous_source": "", "target": [ "If a FreeBSD slice is identified, execution continues at <literal>main.5</literal>. Note that when a FreeBSD slice is found <literal>%si</literal> points to the appropriate entry in the partition table, and <literal>%dh</literal> holds the partition number. We assume that a FreeBSD slice is found, so we continue execution at <literal>main.5</literal>:" ], "id_hash": -3997199934808984242, "content_hash": -3997199934808984242, "location": "book.translate.xml:1201", "context": "", "note": "(itstool) path: sect1/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 131, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 48, "source_unit": "https://translate-dev.freebsd.org/api/units/102277/?format=api", "priority": 100, "id": 102277, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=488717d65d7ef54e", "url": "https://translate-dev.freebsd.org/api/units/102277/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:43.187426Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "main.5:\n\tmov %dx,0x900\t\t\t # Save args\n\tmovb $0x10,%dh\t\t\t # Sector count\n\tcallw nread\t\t\t # Read disk\n\tmov $0x9000,%bx\t\t\t # BTX\n\tmov 0xa(%bx),%si\t\t # Get BTX length and set\n\tadd %bx,%si\t\t\t # %si to start of boot2.bin\n\tmov $0xc000,%di\t\t\t # Client page 2\n\tmov $0xa200,%cx\t\t\t # Byte\n\tsub %si,%cx\t\t\t # count\n\trep\t\t\t\t # Relocate\n\tmovsb\t\t\t\t # client" ], "previous_source": "", "target": [ "main.5:\n\tmov %dx,0x900\t\t\t # Save args\n\tmovb $0x10,%dh\t\t\t # Sector count\n\tcallw nread\t\t\t # Read disk\n\tmov $0x9000,%bx\t\t\t # BTX\n\tmov 0xa(%bx),%si\t\t # Get BTX length and set\n\tadd %bx,%si\t\t\t # %si to start of boot2.bin\n\tmov $0xc000,%di\t\t\t # Client page 2\n\tmov $0xa200,%cx\t\t\t # Byte\n\tsub %si,%cx\t\t\t # count\n\trep\t\t\t\t # Relocate\n\tmovsb\t\t\t\t # client" ], "id_hash": 5459108180280240374, "content_hash": 5459108180280240374, "location": "book.translate.xml:1211", "context": "", "note": "(itstool) path: figure/programlisting", "flags": "no-wrap", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 132, "has_suggestion": false, "has_comment": false, "has_failing_check": true, "num_words": 56, "source_unit": "https://translate-dev.freebsd.org/api/units/102278/?format=api", "priority": 100, "id": 102278, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=cbc2a5f7640868f6", "url": "https://translate-dev.freebsd.org/api/units/102278/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:43.194184Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_arch-handbook/en/?format=api", "source": [ "Recall that at this point, register <literal>%si</literal> points to the FreeBSD slice entry in the <acronym>MBR</acronym> partition table, so a call to <literal>nread</literal> will effectively read sectors at the beginning of this partition. The argument passed on register <literal>%dh</literal> tells <literal>nread</literal> to read 16 disk sectors. Recall that the first 512 bytes, or the first sector of the FreeBSD slice, coincides with the <filename>boot1</filename> program. Also recall that the file written to the beginning of the FreeBSD slice is not <filename>/boot/boot1</filename>, but <filename>/boot/boot</filename>. Let us look at the size of these files in the filesystem:" ], "previous_source": "", "target": [ "Recall that at this point, register <literal>%si</literal> points to the FreeBSD slice entry in the <acronym>MBR</acronym> partition table, so a call to <literal>nread</literal> will effectively read sectors at the beginning of this partition. The argument passed on register <literal>%dh</literal> tells <literal>nread</literal> to read 16 disk sectors. Recall that the first 512 bytes, or the first sector of the FreeBSD slice, coincides with the <filename>boot1</filename> program. Also recall that the file written to the beginning of the FreeBSD slice is not <filename>/boot/boot1</filename>, but <filename>/boot/boot</filename>. Let us look at the size of these files in the filesystem:" ], "id_hash": -7572189472946639742, "content_hash": -7572189472946639742, "location": "book.translate.xml:1225", "context": "", "note": "(itstool) path: sect1/para", "flags": "", "labels": [], "state": 100, "fuzzy": false, "translated": true, "approved": false, "position": 133, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 95, "source_unit": "https://translate-dev.freebsd.org/api/units/102279/?format=api", "priority": 100, "id": 102279, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_arch-handbook/en/?checksum=16ea2dcb25102c82", "url": "https://translate-dev.freebsd.org/api/units/102279/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:21:43.207474Z" } ] }{ "count": 2721, "next": "