linux build fixes
This commit is contained in:
parent
11799f7f20
commit
4eb1c56e0d
@ -1,8 +1,8 @@
|
||||
str=$(tr '[a-z]' '[A-Z]' <<< $1)
|
||||
|
||||
|
||||
rem -h flag is required for pas2 and generated apps so the top of ram is on a 64k-1 boundary
|
||||
rem due to bugs in the apps that try to copy 64k-1 bytes of ram and wrap.
|
||||
# -h flag is required for pas2 and generated apps so the top of ram is on a 64k-1 boundary
|
||||
# due to bugs in the apps that try to copy 64k-1 bytes of ram and wrap.
|
||||
|
||||
rm $str.EXE 2>/dev/null
|
||||
rm $str.COD 2>/dev/null
|
||||
|
121
Microsoft Pascal v2/DJLDOS.ASM
Normal file
121
Microsoft Pascal v2/DJLDOS.ASM
Normal file
@ -0,0 +1,121 @@
|
||||
; utility functions for calling into DOS from Microsoft Pascal v1 through v4
|
||||
;
|
||||
; function dostime : word; External;
|
||||
; var startTicks: word;
|
||||
; startTicks := dostime;
|
||||
;
|
||||
; function getpsp : word; External;
|
||||
; var psp : word;
|
||||
; psp := getpsp;
|
||||
;
|
||||
; function pspbyte( offset : word ) : integer; External;
|
||||
; var result : integer;
|
||||
; result := pspbyte( 80 ); { get command tail length }
|
||||
;
|
||||
|
||||
.model large
|
||||
|
||||
code segment
|
||||
assume cs:code
|
||||
|
||||
; returns a count of hundredths of a second in ax
|
||||
; only uses hs, seconds, and the low digit of minutes since that's all that fits in two bytes
|
||||
; 54000 = 9 * 60 * 100
|
||||
; + 5900 = 59 * 100
|
||||
; + 99
|
||||
; --------
|
||||
; 59999
|
||||
|
||||
public getticks
|
||||
getticks PROC FAR
|
||||
push bx
|
||||
push cx
|
||||
push dx
|
||||
push di
|
||||
push si
|
||||
|
||||
mov ah, 2ch
|
||||
int 21h
|
||||
push dx
|
||||
mov ah, 0
|
||||
mov al, dh
|
||||
mov bx, 100
|
||||
mul bx
|
||||
pop dx
|
||||
mov dh, 0
|
||||
add ax, dx
|
||||
|
||||
push ax
|
||||
mov ax, cx
|
||||
and ax, 0ffh
|
||||
mov cx, 10
|
||||
mov dx, 0
|
||||
div cx
|
||||
mov ax, dx
|
||||
mov cx, 6000
|
||||
mul cx
|
||||
pop bx
|
||||
add ax, bx
|
||||
|
||||
pop si
|
||||
pop di
|
||||
pop dx
|
||||
pop cx
|
||||
pop bx
|
||||
ret
|
||||
getticks ENDP
|
||||
|
||||
public getpsp
|
||||
getpsp PROC FAR
|
||||
push bx
|
||||
push cx
|
||||
push dx
|
||||
push di
|
||||
push si
|
||||
|
||||
mov ah, 062h
|
||||
int 21h
|
||||
mov ax, bx
|
||||
|
||||
pop si
|
||||
pop di
|
||||
pop dx
|
||||
pop cx
|
||||
pop bx
|
||||
ret
|
||||
getpsp ENDP
|
||||
|
||||
public pspbyte
|
||||
pspbyte PROC FAR
|
||||
push bx
|
||||
push cx
|
||||
push dx
|
||||
push di
|
||||
push si
|
||||
push es
|
||||
push bp
|
||||
|
||||
mov bp, sp
|
||||
mov ah, 062h
|
||||
int 21h
|
||||
mov es, bx
|
||||
|
||||
; the argument is here. 7 pushes above + 2 for the return address = 9 * 2 = 18.
|
||||
|
||||
mov bx, word ptr[ bp + 18 ]
|
||||
xor ah, ah
|
||||
mov al, byte ptr es: [ bx ]
|
||||
|
||||
pop bp
|
||||
pop es
|
||||
pop si
|
||||
pop di
|
||||
pop dx
|
||||
pop cx
|
||||
pop bx
|
||||
ret
|
||||
pspbyte ENDP
|
||||
|
||||
code ends
|
||||
end
|
||||
|
24
Microsoft Pascal v2/m.sh
Normal file
24
Microsoft Pascal v2/m.sh
Normal file
@ -0,0 +1,24 @@
|
||||
str=$(tr '[a-z]' '[A-Z]' <<< $1)
|
||||
|
||||
|
||||
# -h flag is required for pas2 and generated apps so the top of ram is on a 64k-1 boundary
|
||||
# due to bugs in the apps that try to copy 64k-1 bytes of ram and wrap.
|
||||
|
||||
rm $str.EXE 2>/dev/null
|
||||
rm $str.COD 2>/dev/null
|
||||
rm $str.LST 2>/dev/null
|
||||
rm $str.MAP 2>/dev/null
|
||||
rm $str.OBJ 2>/dev/null
|
||||
|
||||
ntvdm -r:. -u -c pas1 $str,$str,$str,$str
|
||||
rm CON.LST 2>/dev/null
|
||||
ntvdm -r:. -u -h -c pas2
|
||||
ntvdm -r:. -u -c link $str djldos,,,,
|
||||
|
||||
rm $str.COD 2>/dev/null
|
||||
rm $str.LST 2>/dev/null
|
||||
rm $str.MAP 2>/dev/null
|
||||
rm $str.OBJ 2>/dev/null
|
||||
|
||||
ntvdm -h -p $str
|
||||
|
Loading…
Reference in New Issue
Block a user