SP4CEBAR 2022-11-09 20:49 (Edited)
'S U B P R O G R A M S I N T H I S L I B R A R Y
'- CHARACTERS
' - A_CHAR(C,A) : GET THE ADDRESS (A) OF CHARACTER (C)
' - W_CHAR(C,BMAP()) : SET ALL PIXELS OF CHARACTER (C) TO AN 8X8 PIXEL ARRAY (BMAP())
' - R_CHAR(C,BMAP()) : GET AN 8X8 PIXEL ARRAY (BMAP()) OF ALL PIXELS IN CHARACTER (C)
' - W_PIXEL(C,IX,IY,V) : SET THE PIXEL (IX,IY) OF CHARACTER (C) TO COLOR V
' - R_PIXEL(C,IX,IY,V) : GET THE COLOR (V) OF CHARACTER (C) AT PIXEL (IX,IY)
' - DISP_BMP(X0,Y0,IMG()) : DISPLAY THE 8X8 PIXEL ARRAY (IMG()) AT CELL (X0,Y0)
'- CHARACTER TRANSFORMATIONS
' - CHAR_SHIFT_X(C,V) : SHIFT CHARACTER (C) HORIZONTALLY BY (V) PIXELS
' - CHAR_SHIFT_Y(C,V) : SHIFT CHARACTER (C) VERTICALLY BY (V) PIXELS
' - CHAR_FLIP_X(C) : FLIP CHARACTER (C) HORIZONTALLY
' - CHAR_FLIP_Y(C) : FLIP CHARACTER (C) VERTICALLY
' - CHAR_FLIP_DL(C) : FLIP CHARACTER (C) DIAGONALLY LEFT-UP
' - CHAR_FLIP_DR(C) : FLIP CHARACTER (C) DIAGONALLY RIGHT-UP
' - CHAR_ROT_R(C) : ROTATE CHARACTER (C) CLOCKWISE
' - CHAR_ROT_L(C) : ROTATE CHARACTER (C) ANTI-CLOCKWISE
'- MATRIX
' - MATRIX_TRANSFORM(C0,C1,A, : SHIFT(DX,DY), SCALE(S), AND ROTATE(A) AROUND PIVOT(PX,PY)
' S,PX,PY,DX,DY) : SOURCE CHARACTER (C0) TO TARGET CHARACTER (C1)
'- PIXEL COPY
' - COPYO3(X0,Y0,X1,Y1,X2,Y2, : LIKE BG COPY BUT COPIES PIXELS FROM X0 Y0, X1 Y1 TO X2 Y2
' C0,C1) : WITH CHARACTER OFFSETS C0 FOR X0,Y0,X1,Y1 AND C1 FOR X2,Y2
' - OVERLAY2(A0,C0,C1) : OVERLAYS PIXEL BYTES (C0,C1) ON ADDRESS (A0)'S PIXELS
'- CORE ALGORITHMS AND FUNNY BUGS
' - CHAR_TRANSFORMER_A(C,T0,T1): THE CORE OF DIAGONAL FLIP AND CHARACTER ROTATION
' - CHAR_TRANSFORMER_B(C,T0,T1): DOES THE SAME AS THE PREVIOUS, BUT IT WORKS DIFFERENTLY
' - CHAR_SHIFT_Y_C(C,V) : "CHAR_SHIFT_Y" BUT THE PALLETTE INVERTS (FUNNY BUG)
' - CCOP6O(C0,C22,X22,Y22,W,H,CXXX0,CY0,CXXX1,CY1) : THE CORE OF "COPYO3"
'- POINTS AND SHAPES
' - VIEW_CHARACTERS(X,Y,C0,C1) : PRINT THE CHARACTERS (C0 TO C1) AT CELL (X,Y)
' - PLOT(X,Y,C) : PLOT A POINT AT PIXEL (X,Y) WITH COLOR (C (0-3))
' - PLOT_FASTER(X,Y,C0,C1) : LIKE PLOT BUT THE TWO C BITS HAVE A VARIABLE EACH (C0,C1)
' - LINE(X1,Y1,X2,Y2,C) : DRAW A LINE FROM (X1,Y1) TO (X2,Y2) WITH COLOR (C (0-3))
' - LINE_SEGMENTED(X1,Y1,X2,Y2,C) LIKE LINE BUT DRAWS HORIZONTAL SEGMENTS WHERE POSSIBLE
' - CIRCLE(X1,Y1,X2,Y2,C) : DRAW A CIRCLE IN (X1,Y1) (X2,Y2) WITH COLOR (C (0-3))
' - CIRCLE_SOLID(CX,CY,R,C) : SOLID CIRCLE:CENTER (CX,CY) RADIUS (R) COLOR (C (0-3))
' - BOX(X1,Y1,X2,Y2,C) : DRAW A BOX IN (X1,Y1) (X2,Y2) WITH COLOR (C (0-3))
' - BAR(X1,Y1,X2,Y2,C) : DRAW A SOLID BAR IN (X1,Y1) (X2,Y2) WITH COLOR (C (0-3))
' - MANHATTAN(X,Y,R,C) : DRAW A SOLID DIAMOND AT (X,Y) WITH COLOR (C) AND SIZE (R)
' - TRIANGLE(X0,Y0,X1,Y1,X2,Y2,C) DRAW A SOLID TRIANGLE (X0,Y0)(X1,Y1)(X2,Y2) WITH COLOR C
' - SUB HLINE(X0,Y,X1,C) : DRAW A HORISZONTAL LINE FROM (X0,Y) TO (X1,Y) WITH COLOR C
' - SUB HLINE_FASTER(X0,Y,X1,C0,C1,C0L,C1L): LIKE HLINE BUT YOU NEED TO DEFINE:
' - C0=C MOD 2
' - C1=C\2
' - C0L=C0*255
' - C1L=C1*255
Timo 2022-11-10 17:30
Just watching the example animations is super enjoyable :)
SP4CEBAR 2022-11-11 16:15
Thank you :D
J.Koher 2022-11-24 17:46
Very nice!
SP4CEBAR 2022-12-09 15:39 (Edited)
SP4CEBAR 2023-01-10 12:33 (Edited)
SP4CEBAR 2023-01-16 10:43 (Edited)