|
- /* vml.c - GENERATED by build-ml.ps1 from vrow.s. Do not edit by hand.
- *
- * The machine code row painter, kept as a byte array and called in place
- * through sys(). It is position independent; its parameters go through zero
- * page scratch $22-$28, which Power C leaves to ML routines.
- */
-
- char mlcode[76] = {
- 165, 40, 9, 32, 160, 39, 145, 37, 136, 16, 251, 160,
- 0, 196, 36, 240, 45, 177, 34, 201, 32, 176, 2, 169,
- 32, 201, 192, 144, 4, 233, 128, 176, 22, 201, 160, 144,
- 4, 233, 64, 176, 14, 201, 96, 144, 4, 233, 32, 176,
- 6, 201, 64, 144, 2, 233, 64, 5, 40, 145, 37, 200,
- 208, 207, 165, 39, 201, 255, 240, 7, 168, 177, 37, 73,
- 128, 145, 37, 96
- };
-
- /* nothing to install: the code runs where the array sits */
- mlinit()
- {
- return 0;
- }
-
- /* paint the screen row at address dst: len bytes from src, cursor at column cur
- (255 = none), rev = 128 for an all reverse row */
- mlrow(src, len, dst, cur, rev)
- unsigned src, dst;
- int len, cur, rev;
- {
- char *p;
- char a, x, y;
-
- p = (char *) 0x22;
- p[0] = src & 255;
- p[1] = src >> 8;
- p[2] = len;
- p[3] = dst & 255;
- p[4] = dst >> 8;
- p[5] = cur;
- p[6] = rev;
- a = 0;
- x = 0;
- y = 0;
- sys(15, (unsigned) mlcode, &a, &x, &y);
- return 0;
- }
|