summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2013-02-26 04:27:08 (GMT)
committerH. Peter Anvin <hpa@zytor.com>2013-02-26 04:27:08 (GMT)
commit1781d2b21fa45b571ead8a612883fb910d5078eb (patch)
treee463afa3ac17a58f50f7d6b3091ce9e28d68cc4c
parent29fe360520f99651726b8ea1050ca1070ae4b497 (diff)
downloadvirtio9p-1781d2b21fa45b571ead8a612883fb910d5078eb.zip
virtio9p-1781d2b21fa45b571ead8a612883fb910d5078eb.tar.gz
virtio9p-1781d2b21fa45b571ead8a612883fb910d5078eb.tar.bz2
virtio9p-1781d2b21fa45b571ead8a612883fb910d5078eb.tar.xz
start.S: add a bunch of missing labels
-rw-r--r--start.S16
1 files changed, 11 insertions, 5 deletions
diff --git a/start.S b/start.S
index 6bfd423..bc9d2f5 100644
--- a/start.S
+++ b/start.S
@@ -96,6 +96,8 @@ ok_version:
gibuf mount_tag, MOUNT_TAG_MAX+4+2
parse_cmdline:
+ call utf_init_plain
+
movw $psp+0x81,%si /* First character of command line */
movzbw -1(%si),%cx /* Count of characters in command line */
addw %si,%cx /* First character beyond end of command */
@@ -174,6 +176,8 @@ tag_too_long:
libword bytes_per_cds /* Bytes per CDS entry */
get_dos_bits:
+ call utf_init_case
+
pushw %es
pushw %ds
@@ -182,13 +186,15 @@ get_dos_bits:
pushfw
jne 1f
movb $0x0e,%al /* DOS 4.x only: function 0x5d0e not 0x5d06 */
+1:
int $0x21
movw %si,%cs:dos_sda
movw %ds,%cs:dos_sda+2
addw $0x92,%si /* DOS 3.x: searchdata @ 0x92 */
popfw /* DOS 4+? */
- jb 1f
+ jb 2f
addw $(0x9e-0x92),%si
+2:
movw %si,%cs:dos_sdafn
movw %ds,%cs:dos_sdafn+2
@@ -207,9 +213,9 @@ get_dos_bits:
movw $81,%dx /* DOS 3: 81 byte CDS; DOS 4+: 88 byte CDS */
cmpb $3,dos_version+1
- jna 1f
+ jna 3f
movw $88,%dx
-1:
+3:
movw %dx,bytes_per_cds
movzbw drive_number,%cx
imulw %cx,%dx
@@ -228,11 +234,11 @@ get_dos_bits:
jz ok_drive
printerr "Drive letter already in use"
- jmp 1f
+ jmp 4f
invalid_drive:
printerr "Specified drive is above LASTDRIVE"
-1:
+4:
movw $0x4c07,%ax
int $0x21