--VideoMagic.mesa --last edited by Maureen Stone September 10, 1982 3:49 pm --last edited by Ken Pier November 18, 1982 1:14 pm DIRECTORY DisplayExtras, DoradoInputOutput, ColorDisplay, ColorDisplayHeadDorado, Real; VideoMagic: PROGRAM IMPORTS DisplayExtras, ColorDisplay, ColorDisplayHeadDorado, DoradoInputOutput, Real SHARES ColorDisplayHeadDorado= {OPEN DisplayExtras, ColorDisplayHeadDorado, ColorDisplay; SetTables: PROC [factor: REAL] = { FOR i: NAT IN [0..255] DO in,out: Byte; in _ GetRedMap[i]; out _ MIN[255,MAX[0,Real.RoundI[in*factor]]]; ColorDisplay.SetRedMap[in: i, out: out]; in _ GetGreenMap[i]; out _ MIN[255,MAX[0,Real.RoundI[in*factor]]]; ColorDisplay.SetGreenMap[in: i, out: out]; in _ GetBlueMap[i]; out _ MIN[255,MAX[0,Real.RoundI[in*factor]]]; ColorDisplay.SetBlueMap[in: i, out: out]; ENDLOOP; }; SetLineSize: PROC [size: CARDINAL] = { color.hcontrol.HRamMaxAddr _ size; mcb.flags.hc _ TRUE; }; SetMDSH: PROC [m: [0..377B] _ 115, d: [0..16] _ 12, z: [0..17B] _ 5, size: CARDINAL, h: CARDINAL] = { color.hcontrol.HRamMaxAddr _ size; color.hcontrol.HBTrailLength _ h; color.ccontrol _ [zero: z, mul: m, div: d]; mcb.flags _ [hc: TRUE, clk: TRUE]; }; Set24: PROC [m: [0..377B] _ 115, d: [0..16] _ 14, z: [0..17B] _ 5, size: CARDINAL _ 909, h: CARDINAL _ 30] = { color.ccontrol _ [zero: z, mul: m, div: d]; color.hcontrol.HRamMaxAddr _ size; color.hcontrol.HBLeadLength _ 2*HBLeadLength; color.hcontrol.HSTrailAddr _ 2*HSTrailAddr; color.hcontrol.HBTrailLength _ 2*h; achan.leftMargin _ bchan.leftMargin _ 550B; mcb.flags _ [hc: TRUE, clk: TRUE]; }; Set77: PROC [] = { [] _ DisplayExtras.SetFieldRate[lf77hz]; }; Set60: PROC [] = { [] _ DisplayExtras.SetFieldRate[lf60hz]; }; XSyncEnable: PROC [] = { DoradoInputOutput.Output[datum: 200B, register: 377B]; }; XSyncDisable: PROC [] = { DoradoInputOutput.Output[datum: 0, register: 377B]; }; HBLeadLength: [0..377B] _ 6; HSTrailAddr: [0..377B] _ 28; }.