Ignore:
Timestamp:
Jul 5, 2022, 8:28:18 PM (23 months ago)
Author:
chronos
Message:
  • Modified: Improved sample code execution.
  • Added: Memory map form.
Location:
branches/UltimatOS
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/UltimatOS

    • Property svn:ignore set to
      UltimatOS
      UltimatOS.lps
      UltimatOS.res
      lib
  • branches/UltimatOS/Graphics.asm

    r29 r30  
    1 Rectangle: ; R0 - Color, R1 - Width, R2 - Height   
    2   PUSH R3
    3   PUSH R4
    4   PUSH R5   
    5   SET  R3, 0 ; X
    6   SET  R4, 0 ; Screen address
    7   IN   R5, ScreenGetWidth
    8   SHL  R5, 2 ; multiply by 4
     1Rectangle: ; R0 - Color, R1 - X, R2 - Y, R3 - Width, R4 - Height   
     2  PUSH R5 ; loop X
     3  PUSH R6 ; loop Y
     4  PUSH R7 ; color
     5  PUSH R8 ; X
     6  PUSH R9 ; Y
     7  COPY R7, R0
     8  COPY R8, R1
     9  COPY R9, R2
     10  COPY R6, R4
     11  PUSH R0
     12  PUSH R1
    913Start:
    10   OUT  ScreenSetAddr, R4
    11   COPY R3, R1
     14  COPY R0, R8
     15  COPY R1, R9
     16  CALL SetPixelAddr 
     17  COPY R5, R3
    1218Line:
    13   OUT  ScreenWriteData, R0
    14   DEC  R3
    15   JPNZ R3, Line
    16   DEC  R2
    17   ADD  R4, R5
    18   JPNZ R2, Start
    19   POP  R5
    20   POP  R4
     19  OUT  ScreenWriteData, R7
     20  DEC  R5
     21  JPNZ R5, Line
     22  DEC  R6
     23  INC  R9
     24  JPNZ R6, Start
     25  POP  R1
     26  POP  R0
     27  POP  R9
     28  POP  R8
     29  POP  R7
     30  POP  R6
    2131  POP  R3 
    2232  RET
     
    5565  IN   R8, ScreenGetWidth
    5666  SET  R4, CharHeight
    57   SET  R12, 1
     67  SET  R10, $ffffff
     68  SET  R11, 5
     69  SET  R13, 1
    5870WriteCharLoopY:
    5971  COPY R0, R5
     
    7385  DEC  R9
    7486  SHR  R7, 1
    75   JPNZ WriteCharLoopX:
     87  JPNZ R9, WriteCharLoopX
    7688  DEC  R4
    77   ADD  R2, R5
    78   JPNZ WriteCharLoopY:
     89  INC  R6
     90  INC  R3
     91  JPNZ R4, WriteCharLoopY
    7992  POP  R13
    8093  POP  R12
     
    94107  PUSH R4 ; character width
    95108  PUSH R5 ; byte mask
     109  PUSH R6 ; X
     110  PUSH R7 ; Y
     111  PUSH R1
     112  PUSH R2
     113  PUSH R0
     114  COPY R6, R1
     115  COPY R7, R2
     116  COPY R3, R0
    96117  SET  R5, $ff
    97   COPY R3, R0
    98118  SET  R4, CharWidth 
    99119TextOutLoop:
     
    101121  AND  R0, R5
    102122  JPZ  R0, TextOutLoop2
     123  COPY R1, R6
     124  COPY R2, R7
    103125  CALL WriteChar
    104   ADD  R1, R4
     126  ADD  R6, R4
    105127  INC  R3
    106128  JP   TextOutLoop
    107129TextOutLoop2:
     130  POP  R0
     131  POP  R2
     132  POP  R1
     133  POP  R7
     134  POP  R6
     135  POP  R5
    108136  POP  R4
    109137  POP  R3
Note: See TracChangeset for help on using the changeset viewer.