Team Ai
Datasetpublic

hschumann2/TempleOS-Source-Code

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes847downloads
GrAsm.txt412 linesDownload Raw Back to Gr
1 2#help_index "Graphics/Misc"3asm {4//************************************5_GR_UPDATE_LINE64::6        PUSH    RBP7        MOV     RBP,RSP8        PUSH    RSI9        PUSH    RDI10 11        MOV     RAX,U64 SF_ARG2[RBP]12        MOV     RSI,U64 [RAX]           //rsi=src13        MOV     RBX,U64 [&rev_bits_table]14        MOV     RCX,U64 SF_ARG3[RBP]    //rcx=d15        MOV     RAX,U64 SF_ARG4[RBP]16        MOV     RDI,U64 [RAX]           //rdi=image17 18        MOV     RAX,U64 SF_ARG1[RBP]19        MOV     R8,U64 [RAX]            //rbp=vga dst20 21@@05:   LODSQ22        CMP     U64 [RDI],RAX23        JE      @@1024        MOV     U64 [RDI],RAX25        XLATB26        ROR     RAX,827        XLATB28        ROR     RAX,829        XLATB30        ROR     RAX,831        XLATB32        ROR     RAX,833        XLATB34        ROR     RAX,835        XLATB36        ROR     RAX,837        XLATB38        ROR     RAX,839        XLATB40        ROR     RAX,841        MOV     U64 [R8],RAX42@@10:   ADD     RDI,843        ADD     R8,844        DEC     RCX45        JNZ     @@0546 47        MOV     RAX,U64 SF_ARG1[RBP]48        MOV     U64 [RAX],R849        MOV     RAX,U64 SF_ARG4[RBP]50        MOV     U64 [RAX],RDI51        MOV     RAX,U64 SF_ARG2[RBP]52        MOV     U64 [RAX],RSI53        POP     RDI54        POP     RSI55        POP     RBP56        RET1    3257//************************************58_GR_UPDATE_LINE64_FLUSH_CACHE::59        PUSH    RBP60        MOV     RBP,RSP61        PUSH    RSI62        PUSH    RDI63 64        MOV     RAX,U64 SF_ARG2[RBP]65        MOV     RSI,U64 [RAX]           //rsi=src66        MOV     RBX,U64 [&rev_bits_table]67        MOV     RCX,U64 SF_ARG3[RBP]    //rcx=d68        MOV     RAX,U64 SF_ARG4[RBP]69        MOV     RDI,U64 [RAX]           //rdi=image70 71        MOV     RAX,U64 SF_ARG1[RBP]72        MOV     R8,U64 [RAX]            //rbp=vga dst73 74@@05:   LODSQ75        MOV     U64 [RDI],RAX76        XLATB77        ROR     RAX,878        XLATB79        ROR     RAX,880        XLATB81        ROR     RAX,882        XLATB83        ROR     RAX,884        XLATB85        ROR     RAX,886        XLATB87        ROR     RAX,888        XLATB89        ROR     RAX,890        XLATB91        ROR     RAX,892        MOV     U64 [R8],RAX93        ADD     RDI,894        ADD     R8,895        DEC     RCX96        JNZ     @@0597 98        MOV     RAX,U64 SF_ARG1[RBP]99        MOV     U64 [RAX],R8100        MOV     RAX,U64 SF_ARG4[RBP]101        MOV     U64 [RAX],RDI102        MOV     RAX,U64 SF_ARG2[RBP]103        MOV     U64 [RAX],RSI104        POP     RDI105        POP     RSI106        POP     RBP107        RET1    32108//************************************109_DC_BLOT_COLOR4::110        PUSH    RBP111        MOV     RBP,RSP112        PUSH    RSI113        PUSH    RDI114        PUSH    R10115 116        MOV     RDI,U64 SF_ARG1[RBP]117        MOV     RSI,U64 SF_ARG2[RBP]118        MOV     RBX,U64 SF_ARG3[RBP]119        MOV     RCX,U64 SF_ARG4[RBP]120 121        MOV     R8,RDI122        ADD     R8,RCX123        MOV     R9,R8124        ADD     R9,RCX125        MOV     R10,R9126        ADD     R10,RCX127 128@@5:    LODSQ129        MOV     RDX,U64 [RBX]130        CMP     RAX,RDX131        JE      I32 @@10132        MOV     U64 [RBX],RAX133 134        XOR     RDX,RDX135        BT      RAX,7*8+0136        ADC     RDX,0137        SHL1    RDX138        BT      RAX,6*8+0139        ADC     RDX,0140        SHL1    RDX141        BT      RAX,5*8+0142        ADC     RDX,0143        SHL1    RDX144        BT      RAX,4*8+0145        ADC     RDX,0146        SHL1    RDX147        BT      RAX,3*8+0148        ADC     RDX,0149        SHL1    RDX150        BT      RAX,2*8+0151        ADC     RDX,0152        SHL1    RDX153        BT      RAX,1*8+0154        ADC     RDX,0155        SHL1    RDX156        BT      RAX,0*8+0157        ADC     RDX,0158        MOV     U8 [RDI],DL159 160        XOR     RDX,RDX161        BT      RAX,7*8+1162        ADC     RDX,0163        SHL1    RDX164        BT      RAX,6*8+1165        ADC     RDX,0166        SHL1    RDX167        BT      RAX,5*8+1168        ADC     RDX,0169        SHL1    RDX170        BT      RAX,4*8+1171        ADC     RDX,0172        SHL1    RDX173        BT      RAX,3*8+1174        ADC     RDX,0175        SHL1    RDX176        BT      RAX,2*8+1177        ADC     RDX,0178        SHL1    RDX179        BT      RAX,1*8+1180        ADC     RDX,0181        SHL1    RDX182        BT      RAX,0*8+1183        ADC     RDX,0184        MOV     U8 [R8],DL185 186        XOR     RDX,RDX187        BT      RAX,7*8+2188        ADC     RDX,0189        SHL1    RDX190        BT      RAX,6*8+2191        ADC     RDX,0192        SHL1    RDX193        BT      RAX,5*8+2194        ADC     RDX,0195        SHL1    RDX196        BT      RAX,4*8+2197        ADC     RDX,0198        SHL1    RDX199        BT      RAX,3*8+2200        ADC     RDX,0201        SHL1    RDX202        BT      RAX,2*8+2203        ADC     RDX,0204        SHL1    RDX205        BT      RAX,1*8+2206        ADC     RDX,0207        SHL1    RDX208        BT      RAX,0*8+2209        ADC     RDX,0210        MOV     U8 [R9],DL211 212        XOR     RDX,RDX213        BT      RAX,7*8+3214        ADC     RDX,0215        SHL1    RDX216        BT      RAX,6*8+3217        ADC     RDX,0218        SHL1    RDX219        BT      RAX,5*8+3220        ADC     RDX,0221        SHL1    RDX222        BT      RAX,4*8+3223        ADC     RDX,0224        SHL1    RDX225        BT      RAX,3*8+3226        ADC     RDX,0227        SHL1    RDX228        BT      RAX,2*8+3229        ADC     RDX,0230        SHL1    RDX231        BT      RAX,1*8+3232        ADC     RDX,0233        SHL1    RDX234        BT      RAX,0*8+3235        ADC     RDX,0236        MOV     U8 [R10],DL237 238@@10:   ADD     RBX,8239 240        INC     RDI241        INC     R8242        INC     R9243        INC     R10244 245        DEC     RCX246        JNZ     I32 @@5247 248        POP     R10249        POP     RDI250        POP     RSI251        POP     RBP252        RET1    32253//************************************254_IS_PIX_COVERED0::255        PUSH    RBP256        MOV     RBP,RSP257#assert FONT_WIDTH==FONT_HEIGHT==8258        MOV     RCX,U64 SF_ARG3[RBP]259        SAR     RCX,3260        MOV     RAX,U64 SF_ARG2[RBP]261        SAR     RAX,3262        MOV     RDX,U64 SF_ARG1[RBP]263        IMUL2   RCX,TEXT_COLS264        MOV     RBX,U64 [&gr.win_z_buf]265        MOV     DX,U16 CTask.win_z_num[RDX]266        ADD     RCX,RAX267        XOR     RAX,RAX268        CMP     DX,U16 [RBX+RCX*2]269        JAE     @@05    //Jump not covered270        INC     RAX271@@05:   POP     RBP272        RET1    24273//************************************274_GR_ROP_EQU_U8_NO_CLIPPING::275//Puts foreground char shape onto gr.dc2.276//ch.u8[1] is color as a whole byte277//ch ATTRf_UNDERLINE attr flag is used.278        PUSH    RBP279        MOV     RBP,RSP280        MOVZX   RAX,U8 SF_ARG1[RBP]281        MOV     RDX,U64 [&text.font]282        MOV     RAX,U64 [RDX+RAX*8]     //RAX is 8x8 char font data, 64-bits283        BT      U64 SF_ARG1[RBP],ATTRf_UNDERLINE284        JNC     @@05285        MOV     RBX,0xFF00000000000000286        OR      RAX,RBX287@@05:   TEST    RAX,RAX288        JZ      I32 @@10289 290        PUSH    RSI291        PUSH    RDI292        MOVZX   RBX,U8 SF_ARG1+1[RBP]   //Warning color is 8-bit293        MOV     RDX,U64 [&gr.to_8_colors]294        MOV     R8,U64 [RDX+RBX*8]      //R8 is color repeated 8 times.295        MOV     R9,U64 SF_ARG3[RBP]     //R9 is width_internal296        MOV     RDI,U64 SF_ARG2[RBP]297        MOV     RSI,U64 [&gr.to_8_bits] //RSI is gr.to_8_bits298 299//      m=my_1_to_8_bits[ch&255];ch>>=8;300//      *dst=*dst&~m|c&m;301//      dst(U8 *)+=w1;302 303        MOVZX   RBX,AL304        MOV     RDX,U64 [RSI+RBX*8]305        SHR     RAX,8306        MOV     RBX,U64 [RDI]307        MOV     RCX,RDX308        NOT     RCX309        AND     RDX,R8310        AND     RCX,RBX311        OR      RCX,RDX312        MOV     U64 [RDI],RCX313        ADD     RDI,R9314 315        MOVZX   RBX,AL316        MOV     RDX,U64 [RSI+RBX*8]317        SHR     RAX,8318        MOV     RBX,U64 [RDI]319        MOV     RCX,RDX320        NOT     RCX321        AND     RDX,R8322        AND     RCX,RBX323        OR      RCX,RDX324        MOV     U64 [RDI],RCX325        ADD     RDI,R9326 327        MOVZX   RBX,AL328        MOV     RDX,U64 [RSI+RBX*8]329        SHR     RAX,8330        MOV     RBX,U64 [RDI]331        MOV     RCX,RDX332        NOT     RCX333        AND     RDX,R8334        AND     RCX,RBX335        OR      RCX,RDX336        MOV     U64 [RDI],RCX337        ADD     RDI,R9338 339        MOVZX   RBX,AL340        MOV     RDX,U64 [RSI+RBX*8]341        SHR     RAX,8342        MOV     RBX,U64 [RDI]343        MOV     RCX,RDX344        NOT     RCX345        AND     RDX,R8346        AND     RCX,RBX347        OR      RCX,RDX348        MOV     U64 [RDI],RCX349        ADD     RDI,R9350 351        MOVZX   RBX,AL352        MOV     RDX,U64 [RSI+RBX*8]353        SHR     RAX,8354        MOV     RBX,U64 [RDI]355        MOV     RCX,RDX356        NOT     RCX357        AND     RDX,R8358        AND     RCX,RBX359        OR      RCX,RDX360        MOV     U64 [RDI],RCX361        ADD     RDI,R9362 363        MOVZX   RBX,AL364        MOV     RDX,U64 [RSI+RBX*8]365        SHR     RAX,8366        MOV     RBX,U64 [RDI]367        MOV     RCX,RDX368        NOT     RCX369        AND     RDX,R8370        AND     RCX,RBX371        OR      RCX,RDX372        MOV     U64 [RDI],RCX373        ADD     RDI,R9374 375        MOVZX   RBX,AL376        MOV     RDX,U64 [RSI+RBX*8]377        SHR     RAX,8378        MOV     RBX,U64 [RDI]379        MOV     RCX,RDX380        NOT     RCX381        AND     RDX,R8382        AND     RCX,RBX383        OR      RCX,RDX384        MOV     U64 [RDI],RCX385        ADD     RDI,R9386 387        MOV     RDX,U64 [RSI+RAX*8]388        MOV     RBX,U64 [RDI]389        MOV     RCX,RDX390        NOT     RCX391        AND     RDX,R8392        AND     RCX,RBX393        OR      RCX,RDX394        MOV     U64 [RDI],RCX395 396        POP     RDI397        POP     RSI398@@10:   POP     RBP399        RET1    24400}401_extern _GR_ROP_EQU_U8_NO_CLIPPING U0 GrRopEquU8NoClipping(I64 ch,402        U8 *dst,I64 width_internal);403public _extern _IS_PIX_COVERED0 Bool IsPixCovered0(404        CTask *task,I64 x,I64 y);//No clipping405 406_extern _GR_UPDATE_LINE64 U0 GrUpdateLine64(407  U64 **_vga,U64 **_src,I64 d,U8 **_dst);408_extern _GR_UPDATE_LINE64_FLUSH_CACHE U0 GrUpdateLine64FlushCache(409  U64 **_vga,U64 **_src,I64 d,U8 **_dst);410_extern _DC_BLOT_COLOR4 U0 DCBlotColor4(411  U8 *dst,I64 *img,I64 *img_cache,I64 cnt);412