home *** CD-ROM | disk | FTP | other *** search
/ Antic Magazine 1982 June / Antic_June_1982_Vol_1_No_2.atr / pascali2.txt < prev    next >
Text File  |  2021-01-30  |  1KB  |  1 lines

  1. type¢   adr = integers;¢¢   dlinst = record¢                    op : byte; (* display list instruction *)¢                    addrop: adr; (* address for op *)¢               end; (*dlinst*)¢¢   dlrec = record¢                  bl8lines : array [0..2] of byte; (* blank 8 lines *)¢                  lms : array [0..12] of dlinst; (* 3 byte DL instructions *)¢               end; (*dlrec*)¢¢var¢  i,j : adr;¢  dl : ^dlrec; (* pointer to type dlrec *)¢  dladdr : absolute [$230] ^dlrec; (*address of display list pointer *)¢¢procedure initdl; (*initialize display list*)¢  var¢      i : integer;¢¢begin¢  dl := dladdr; (* point to the current DL *)¢¢  dl^.bl8lines[0] := 112; (*blank 8 scan lines*)¢  dl^.bl8lines[1] := 112;¢  dl^.bl8lines[2] := 112;¢¢  for i := 0 to 11 do¢     begin   (* set the top op and address in modified DL *)¢         dl^.lms[i].op := 71; (* load memory scan basic 2*)¢         dl^.lms[i].addrop := i*256¢     end; (*for*)¢¢  dl^.lms[12].op := 65; (*jump vertical blank*)¢  dl^.lms[12].addrop := dladdr;¢end; (*initdl*)¢¢begin (* main procedure *)¢  initdl;¢  while TRUE do¢     begin¢        for i := 0 to 235 do¢          begin (* loop through a page *)¢              for j := 0 to 11 do¢                 begin (* set the 12 lines addresses *)¢                    dl^.lms[j].addrop := (dl^.lms[j].addrop & $ff00) + i¢(* add one to the address, do not change the page the address points to  *)¢                  end; (*for j*)¢             end; (*for i*)¢         end;¢end;¢