Author Topic: Hisoft Pascal 4T  (Read 16458 times)

0 Members and 1 Guest are viewing this topic.

Offline funkheld

  • CPC664
  • ***
  • Posts: 107
  • Liked: 3
  • Likes Given: 0
Re: Hisoft Pascal 4T
« Reply #125 on: 10:06, 08 September 19 »


Push screen into the higher memory?

Hi good afternoon.
I can not push the screen into the listening memory and bring it back.

What is there for a mistake in it?

Thank you.
greeting


Code: [Select]

PROGRAM MEMOBI;
{$C-}
{$L-}
   
TYPE NAME = ARRAY[1..12] OF CHAR;   


VAR
  N, X, Y : INTEGER;
   KVAL : CHAR;


PROCEDURE LOAD(FILE : NAME; ADRESS : INTEGER);
BEGIN
   RB:=CHR(SIZE(FILE));
   RHL:=ADDR(FILE);
   RDE:=ADRESS;
   USER(#BC77);
   RHL:=ADRESS;
   USER(#BC83);
   USER(#BC7A)
END;


PROCEDURE WARTE;
BEGIN
   FOR N:=0 TO 1000 DO
      BEGIN
         X:=23
     END
END;


PROCEDURE MODE(N : INTEGER);
BEGIN
  RA:=CHR(N);
  USER(#BC0E)
END;


PROCEDURE COPY40C0;
BEGIN
  INLINE( #11 ,#0 ,#C0 ,#21 ,#0 ,#40 ,#1 ,#0 ,#40 ,#ED);
  INLINE( #B0 ,#C9  );
END;


PROCEDURE COPYC040;
BEGIN
  INLINE( #11 ,#0 ,#40 ,#21 ,#0 ,#C0 ,#1 ,#0 ,#40 ,#ED);
  INLINE( #B0 ,#C9  );
END;


PROCEDURE GETSCR;
BEGIN
   LOAD('SCREEN01.DAT',#C000);
   OUT(#7F00,CHR(#C4));
   COPYC040;
   OUT(#7F00,CHR(#C0));
   LOAD('SCREEN02.DAT',#C000);
   OUT(#7F00,CHR(#C5));
   COPYC040;
   OUT(#7F00,CHR(#C0));
   LOAD('SCREEN03.DAT',#C000);
   OUT(#7F00,CHR(#C6));
   COPYC040;
   OUT(#7F00,CHR(#C0));
   LOAD('SCREEN04.DAT',#C000);
   OUT(#7F00,CHR(#C7));
   COPYC040;
   OUT(#7F00,CHR(#C0))
END;


PROCEDURE SCRGET1;
BEGIN
   OUT(#7F00,CHR(#C4));
   COPY40C0;
   OUT(#7F00,CHR(#C0))
END;


PROCEDURE SCRGET2;
BEGIN
  OUT(#7F00,CHR(#C5));
   COPY40C0;
   OUT(#7F00,CHR(#C0))
END;


PROCEDURE SCRGET3;
BEGIN
   OUT(#7F00,CHR(#C6));
   COPY40C0;
   OUT(#7F00,CHR(#C0))
END;


PROCEDURE SCRGET4;
BEGIN
   OUT(#7F00,CHR(#C7));
   COPY40C0;
   OUT(#7F00,CHR(#C0))
END;


PROCEDURE FTCHSCR;
BEGIN
  KVAL:=INCH;
  CASE ORD(KVAL) OF
      240 : SCRGET1;
      241 : SCRGET2;
      242 : SCRGET3;
      243 : SCRGET4
  END
END;


BEGIN
    MODE(0);
    GETSCR;
    REPEAT
    FTCHSCR;
   UNTIL ORD(KVAL)=252;
   MODE(2)
END.
« Last Edit: 23:48, 08 September 19 by funkheld »