Forráskód Böngészése

added DebugWrite and DebugWriteLn to the minimal msdos rtl

git-svn-id: branches/i8086@23753 -
nickysn 12 éve
szülő
commit
2393cd5eef
2 módosított fájl, 29 hozzáadás és 10 törlés
  1. 4 10
      rtl/msdos/prt0.asm
  2. 25 0
      rtl/msdos/system.pp

+ 4 - 10
rtl/msdos/prt0.asm

@@ -3,25 +3,19 @@
 	cpu 8086
 
 	segment text use16
-	
+
 	extern PASCALMAIN
-	
+
 ..start:
 	mov ax, dgroup
-	
 	mov ss, ax
 	mov sp, stacktop
 	mov ds, ax
 	mov es, ax
-	
 	jmp PASCALMAIN
 
-	segment data use16
-
 	segment stack stack
-	resb 1024
+	resb 4096
 	stacktop:
 
-	segment bss
-
-	group dgroup data bss stack
+	group dgroup stack

+ 25 - 0
rtl/msdos/system.pp

@@ -7,6 +7,9 @@ interface
 type
   HRESULT = LongInt;
 
+procedure DebugWrite(const S: string);
+procedure DebugWriteLn(const S: string);
+
 implementation
 
 procedure fpc_Initialize_Units;[public,alias:'FPC_INITIALIZEUNITS']; compilerproc;
@@ -21,4 +24,26 @@ begin
   end;
 end;
 
+procedure DebugWrite(const S: string);
+begin
+  asm
+    mov si, S
+    lodsb
+    mov cl, al
+    xor ch, ch
+    mov ah, 2
+@@1:
+    lodsb
+    mov dl, al
+    int 21h
+    loop @@1
+  end;
+end;
+
+procedure DebugWriteLn(const S: string);
+begin
+  DebugWrite(S);
+  DebugWrite(#13#10);
+end;
+
 end.