81
Das Wiki / Re:VESA-Tutorial (noch sehr primitiv)
« am: 18. January 2011, 15:41 »Code: [Auswählen]
;----------------------------------------------------------------------------
; D A T A - S e g m e n t
;----------------------------------------------------------------------------
DATEN SEGMENT use32 'DATA'
org 0
;--------------------------------------
PIXTAB DD MaxY+Ausri dup (0) ; Offset table of startadresses of any line of the screen(linear framebuffer)
;----------------------------------------------------------------------------
; Position - Table
;----------------------------------------------------------------------------
SX0 DD 122, 197 ; X, Y
DD 373, 347
DD 493, 276
DD 363, 143
DD 323, 316
DD 235, 192
DD 273, 226
DD 107, 226
DD 422, 373
DD 112, 347
DD 133, 266
DD 471, 343
DD 423, 366
DD 227, 230
DD 143, 157
DD 376, 322
DD 212, 101
DD 442, 226
DD 293, 129
DD 371, 123
DD 323, 325
DD 167, 292
DD 223, 172
DD 226, 145
DD 113, 222
DD 167, 166
DD 133, 134
DD 442, 292
DD 252, 270
DD 323, 350
DD 262, 374
DD 270, 151
DD 166, 213
DD 233, 154
DD 123, 222
DD 126, 274
DD 060, 257
DD 226, 313
DD 418, 177
DD 357, 153
DD 458, 270
DD 185, 035
DD 248, 113
DD 463, 366
DD 370, 132
DD 254, 267
DD 239, 134
DD 445, 262
DD 454, 334
DD 279, 257
DD 146, 323
DD 238, 267
DD 143, 134
DD 236, 377
DD 139, 334
DD 475, 258
DD 454, 154
DD 136, 337
DD 484, 253
DD 177, 266
DD 224, 143
DD 397, 127
DD 448, 345
DD 188, 123
DD 442, 332
DD 323, 176
DD 472, 123
DD 194, 379
DD 046, 124
DD 227, 111
DD 144, 124
DD 359, 165
DD 177, 246
DD 151, 342
DD 178, 168
DD 132, 149
DD 427, 236
DD 214, 013
DD 361, 345
DD 323, 176
DD 249, 336
DD 179, 144
DD 439, 123
DD 438, 347
DD 288, 248
DD 343, 158
DD 228, 346
DD 183, 253
DD 347, 288
DD 233, 235
DD 198, 286
DD 153, 147
DD 297, 273
DD 336, 231
DD 479, 150
DD 243, 287
DD 257, 165
DD 111, 122
DD 389, 258
DD 358, 285
DD 224, 127
DD 082, 122
DD 266, 311
DD 114, 351
DD 321, 275
DD 433, 159
DD 240, 154
DD 496, 160
DD 148, 038
DD 224, 369
DD 312, 134
DD 167, 126
DD 278, 173
DD 533, 436
DD 356, 291
DD 490, 352
DD 369, 111
DD 230, 134
DD 477, 177
DD 319, 443
DD 553, 399
DD 236, 266
DD 474, 130
DD 397, 127
DD 238, 169
DD 142, 186
DD 171, 383
DD 599, 138
DD 368, 437
DD 124, 424
DD 597, 259
DD 165, 197
DD 143, 270
DD 459, 349
DD 159, 459
DD 427, 427
DD 215, 135
DD 180, 180
DD 377, 377
DD 245, 145
DD 473, 173
DD 308, 408
DD 483, 283
DD 525, 125
DD 412, 312
DD 242, 142
DD 293, 293
DD 571, 371
DD 423, 323
DD 467, 267
DD 183, 283
DD 326, 126
DD 313, 413
DD 267, 267
DD 533, 133
DD 248, 188
DD 358, 458
DD 183, 383
DD 162, 162
DD 370, 170
DD 434, 134
DD 357, 157
DD 123, 123
DD 477, 167
DD 534, 134
DD 477, 177
DD 264, 124
DD 458, 138
DD 154, 244
DD 137, 237
DD 193, 353
DD 376, 276
DD 543, 443
DD 427, 227
DD 145, 345
DD 523, 123
DD 338, 158
DD 473, 425
DD 196, 283
DD 443, 394
DD 558, 343
DD 430, 134
DD 414, 362
DD 331, 185
DD 561, 232
DD 434, 321
DD 376, 255
DD 598, 388
DD 114, 145
DD 140, 243
DD 537, 189
DD 375, 434
DD 225, 257
DD 178, 283
DD 157, 125
DD 296, 158
DD 372, 435
DD 484, 192
DD 543, 134
DD 439, 212
DD 338, 166
DD 367, 288
DD 133, 143
DD 196, 313
DD 429, 124
DD 122, 448
DD 585, 127
DD 145, 173
DD 534, 134
DD 157, 157
DD 323, 323
DD 177, 167
DD 134, 134
DD 277, 177
DD 164, 134
DD 558, 358
DD 254, 154
DD 287, 137
DD 493, 153
DD 476, 376
DD 243, 143
DD 527, 127
DD 445, 245
DD 123, 223
DD 138, 258
DD 373, 225
DD 396, 383
DD 143, 194
DD 258, 443
DD 330, 134
DD 414, 262
DD 531, 185
DD 361, 132
DD 334, 121
DD 476, 155
DD 198, 288
DD 114, 145
DD 240, 343
DD 137, 389
DD 275, 134
DD 525, 157
DD 478, 183
DD 557, 325
DD 296, 258
DD 572, 135
DD 484, 192
DD 343, 134
DD 239, 212
DD 138, 266
DD 467, 388
DD 233, 143
DD 196, 313
DD 529, 174
DD 422, 148
DD 385, 157
DD 245, 173
;---------------------------------------------------------------------------
; Stepper - Table
;---------------------------------------------------------------------------
STEP0X DD 1, 1 ; Number of Pixel for movement in horizontal
DD 1, 2 ; and vertical direction (Step X,Y)
DD 2, 1
DD 2, 4
DD 3, 1
DD 6, 6
DD 7, 5
DD 8, 4
DD 9, 3
DD 2, 8
DD 1, 6
DD 5, 2
DD 1, 3
DD 2, 4
DD 3, 5
DD 4, 6
DD 8, 1
DD 1, 2
DD 8, 3
DD 1, 9
DD 9, 1
DD 2, 2
DD 2, 3
DD 2, 7
DD 6, 1
DD 8, 8
DD 3, 3
DD 7, 7
DD 4, 1
DD 2, 7
DD 4, 3
DD 4, 2
DD 1, 1
DD 1, 2
DD 1, 3
DD 2, 3
DD 2, 1
DD 2, 2
DD 2, 2
DD 2, 1
DD 3, 1
DD 6, 2
DD 3, 3
DD 3, 3
DD 4, 1
DD 2, 2
DD 4, 3
DD 4, 6
DD 1, 1
DD 1, 2
DD 1, 2
DD 1, 4
DD 2, 1
DD 2, 2
DD 3, 3
DD 2, 4
DD 3, 1
DD 3, 3
DD 3, 2
DD 3, 1
DD 4, 5
DD 2, 2
DD 4, 3
DD 1, 2
DD 3, 1
DD 1, 2
DD 1, 3
DD 2, 4
DD 2, 1
DD 2, 2
DD 2, 3
DD 2, 4
DD 3, 1
DD 3, 2
DD 3, 3
DD 3, 4
DD 4, 1
DD 3, 2
DD 4, 3
DD 2, 2
DD 1, 1
DD 1, 2
DD 1, 3
DD 1, 2
DD 2, 1
DD 1, 2
DD 2, 3
DD 2, 2
DD 1, 1
DD 3, 2
DD 3, 3
DD 1, 1
DD 2, 1
DD 3, 2
DD 1, 3
DD 1, 2
DD 1, 1
DD 1, 2
DD 1, 3
DD 1, 3
DD 3, 1
DD 2, 2
DD 2, 1
DD 2, 1
DD 5, 1
DD 3, 2
DD 3, 3
DD 3, 1
DD 3, 1
DD 3, 2
DD 2, 3
DD 4, 1
DD 1, 1
DD 1, 2
DD 1, 3
DD 3, 4
DD 2, 1
DD 1, 5
DD 2, 3
DD 2, 4
DD 3, 1
DD 3, 2
DD 1, 3
DD 2, 3
DD 3, 1
DD 1, 2
DD 1, 3
DD 2, 1
DD 1, 1
DD 1, 1
DD 1, 3
DD 1, 2
DD 2, 1
DD 2, 2
DD 2, 3
DD 2, 3
DD 1, 1
DD 3, 2
DD 3, 3
DD 3, 3
DD 1, 1
DD 4, 1
DD 4, 3
DD 4, 2
DD 3, 1
DD 1, 2
DD 1, 3
DD 1, 3
DD 2, 1
DD 2, 2
DD 5, 3
DD 2, 1
DD 3, 1
DD 3, 2
DD 3, 3
DD 5, 3
DD 4, 1
DD 5, 2
DD 4, 1
DD 1, 2
DD 1, 1
DD 1, 5
DD 1, 3
DD 1, 3
DD 2, 1
DD 2, 2
DD 5, 1
DD 1, 4
DD 1, 1
DD 5, 2
DD 3, 5
DD 3, 4
DD 4, 1
DD 1, 2
DD 4, 3
DD 3, 5
DD 1, 1
DD 1, 1
DD 3, 3
DD 1, 4
DD 2, 3
DD 2, 1
DD 2, 3
DD 2, 4
DD 3, 1
DD 3, 2
DD 5, 3
DD 3, 1
DD 1, 3
DD 3, 5
DD 4, 3
DD 1, 2
DD 1, 1
DD 1, 2
DD 1, 3
DD 1, 4
DD 2, 1
DD 5, 1
DD 2, 3
DD 3, 4
DD 3, 3
DD 1, 2
DD 3, 3
DD 3, 4
DD 4, 1
DD 3, 2
DD 1, 3
DD 2, 4
DD 1, 5
DD 1, 2
DD 5, 3
DD 1, 2
DD 2, 1
DD 2, 2
DD 2, 5
DD 2, 3
DD 3, 1
DD 3, 3
DD 3, 3
DD 3, 1
DD 2, 1
DD 3, 5
DD 2, 3
DD 4, 2
DD 1, 1
DD 3, 1
DD 1, 3
DD 1, 3
DD 2, 1
DD 5, 2
DD 2, 3
DD 2, 1
DD 3, 3
DD 3, 2
DD 3, 3
DD 3, 3
DD 5, 1
DD 1, 2
DD 2, 3
DD 4, 2
DD 1, 1
DD 1, 2
DD 1, 3
DD 1, 4
DD 2, 1
DD 5, 2
DD 2, 3
DD 2, 4
DD 3, 1
DD 3, 2
DD 3, 5
DD 2, 1
DD 3, 1
DD 2, 2
DD 1, 3
DD 2, 2
;----------------------
S_Len = ($-STEP0X)
;--------------------------------------
; Table of direction-flags for movement
;--------------------------------------
W0 DB (Anzahl+1)* 8 DUP(0) ; plus(0) / minus(1) für X,Y
;--------------------------------------
BALL DB 0CC00h dup (22h) ; Sprite-Table: Offset32, Farbe32
;--------------------------------------
PICAKT DD MaxX*4*MaxY ; Actual adress of the framebuffer
PICLEN DD MaxX*4*MaxY ; Screen lenght
PICMAX DD MaxX*4*MaxY*2 ; Max adress
;--------------------------------------
RETTSI DW 0, 0 ; I don´t like to push the SI-register on the stack
;--------------------------------------
HINFAR DD HFarb, HFarb ; Background Color
;--------------------------------------
; C i r c l e
;--------------------------------------
Y DD 0 ; Double-Word for FPU: sqr
XM DD 0 ; X Position
YM DD 0 ; Y Position
COL DD 0 ; Color
XMAX DW 0, 0
YMAX DW 0, 0
;--------------------------------------
EDID DB 80h dup (55h) ; Buffer for DDC-Monitor-Info
;--------------------------------------
VINF DB 512 dup (0AAh) ; Buffer for Vesa-Info(4F00h)
MINF DB 256 dup (044h) ; Buffer for Mode Info(4F01h)
;--------------------------------------
CRTC DW 1456 ; Horizontal Total in Pixel
HORIANF DW 1122 ; Horizontal Sync-Start in Pixel
HORIEND DW 216 ; Horizontal Sync-End in Pixel
VERTOTA DW 814 ; Vertical Total in Lines
VERTANF DW 768 ; Vertical Sync-Start in Lines
VERTEND DW 42 ; Vertical Sync-End in Lines
DOIFLAG DB 04h ; Flag (interlaced,doubleScan,polarity)
PIXCLOC DD 118309000 ; Pixel clock in hz
REFRATE DW 10000 ; Refresh-Rate in 0.01 hz
;---------------------
DB 40 dup (0)
;--------------------------------------
FLAG DB 0 ; Used for triple buffering adress switching
;--------------------------------------
ERTEX1 DB Cr, Lf, "No Video-Mode", Cr, Lf, "$"
ERTEX2 DB Cr, Lf, "No lineare offset", Cr, Lf, "$"
ERTEX3 DB Cr, Lf, "No MMX-CPU", Cr, Lf, "$"
ERTEX4 DB Cr, Lf, "No Vesa-Bios", Cr, Lf, "$"
ERTEX5 DB Cr, Lf, "No VESA 3 -Bios", Cr, Lf, "$"
ERTEX6 DB Cr, Lf, "No DDC", Cr, Lf, "$"
ERTEX7 DB Cr, Lf, "Less than 96 khz", Cr, Lf, "$"
ERTEX8 DB Cr, Lf, "Less than 160 hz", Cr, Lf, "$"
ERTEX9 DB Cr, Lf, "No pixelcloc", Cr, Lf, "$"
;--------------------------------------
DATEN ends
;----------------------------------------------------------------------------
STAPEL SEGMENT use16 STACK 'STACK'
DB 10h dup (0)
STAPEL ends
;----------------------------------------------------------------------------
end
Dirk