Răsfoiți Sursa

Make stack change safer

Setting the stack to zero is hosing the image somehow in 86box.
This change appears to fix it. Would be nice to learn more.
Justine Tunney 3 ani în urmă
părinte
comite
d5afd05ef8
1 a modificat fișierele cu 4 adăugiri și 4 ștergeri
  1. 4 4
      sectorlisp.S

+ 4 - 4
sectorlisp.S

@@ -36,13 +36,13 @@ kCdr:	.asciz	"CDR"				# ordering matters
 kCons:	.asciz	"CONS"				# ordering matters
 kEq:	.asciz	"EQ"				# needs to be last
 
-begin:	xor	%sp,%sp				# use highest address as stack
-						# set independently of SS!
+begin:	mov	$0x8000,%sp			# uses higher address as stack
+						# and set independently of SS!
 						# 8088 doesn't stop interrupts
 						# after SS is set, and PC BIOS
 						# sets SP to a value that will
 						# damage our code if int fires
-						# between setting SS and SP
+						# between it setting SS and SP
 	push	%cs				# that means ss = ds = es = cs
 	pop	%ds				# noting ljmp set cs to 0x7c00
 	push	%cs				# that's the bios load address
@@ -50,7 +50,7 @@ begin:	xor	%sp,%sp				# use highest address as stack
 	push	%cs				# terminated NIL string above!
 	pop	%ss				# errata exists but don't care
 	mov	$2,%bx
-main:	mov	$0x8000,%cx			# dl (g_look) is zero or cr
+main:	mov	%sp,%cx
 	call	GetToken
 	call	GetObject
 	call	Eval