Code expects to read constants from 100h.
authorRichard W.M. Jones <rjones@redhat.com>
Fri, 25 Oct 2019 17:19:05 +0000 (18:19 +0100)
committerRichard W.M. Jones <rjones@redhat.com>
Fri, 25 Oct 2019 17:19:05 +0000 (18:19 +0100)
Original code reads itself (origin 100h) to find constants.  These no
longer exist at the original address, so write them, but don't do this
until after we've run the BIOS routines as that will overwrite them.

pyrit.asm

index edfab47..ac14df0 100644 (file)
--- a/pyrit.asm
+++ b/pyrit.asm
@@ -47,6 +47,23 @@ P:shr cl,1     ; B@cl = 0..8..31,31..0
 Q:mov ax,1010h
   jnz P        ;bx=0 cx=0
 
+        ; Constants expected at a fixed address below.
+        mov ax,0b04fh
+        mov word[100h],ax
+        mov ax,04f13h
+        mov word[102h],ax
+        mov ax,0e9d0h
+        mov word[104h],ax
+        mov ax,010cdh
+        mov word[106h],ax
+        mov ax,0be0fh
+        mov word[108h],ax
+        mov ax,030cbh
+        mov word[10ah],ax
+        mov ax,088cdh
+        mov word[10ch],ax
+        mov ax,089e9h
+        mov word[10eh],ax
 
 ;Each frame: Generate normals to p0..p11=[bp+200h,300h,...].
 M:mov ax,0x4731 ; highest 9 bits: float32 exponent 1/256 (for T)