Difference between revisions of "Example - Layer 2 esxdos"
From SpecNext official Wiki
(Created page with "<pre> M_GETSETDRV equ $89 F_OPEN equ $9a F_CLOSE equ $9b F_READ equ $9d F_WRITE equ $9e F_SEEK equ $9f F_GET_DIR equ $a8 F_SET_DIR equ $a9...") |
m (2 revisions imported) |
||
(One intermediate revision by one other user not shown) | |||
Line 1: | Line 1: | ||
+ | [[Has example of::Layer 2]] | ||
+ | [[Has example of::ESXDOS]] | ||
+ | |||
<pre> | <pre> | ||
M_GETSETDRV equ $89 | M_GETSETDRV equ $89 |
Latest revision as of 09:59, 14 April 2019
M_GETSETDRV equ $89 F_OPEN equ $9a F_CLOSE equ $9b F_READ equ $9d F_WRITE equ $9e F_SEEK equ $9f F_GET_DIR equ $a8 F_SET_DIR equ $a9 FA_READ equ $01 FA_APPEND equ $06 FA_OVERWRITE equ $0C ESXDOS macro command db $cf db command endm org 32768 start: ld a, '*' ; use current drive ld b, FA_READ ; set mode ld ix, bmp ; filename in ix ESXDOS F_OPEN ret c ; return if failed ld (handle), a ; store handle ld l, 0 ; seek from start of file ld bc, 0 ld de, 1078 ; 54 byte header and 1024 palette ESXDOS F_SEEK ld a, 3 ; enable write bit and make visible writeLoop: push af ; store bitmask ld bc, $123b ; set port for writing out (c), a ld a, (handle) ; restore handle ld ix, $0 ; read 16k into addr 0 ld bc, $4000 ESXDOS F_READ pop af ; restore bit mask add a, 64 ; next page jr nc, writeLoop ESXDOS F_CLOSE ; close file ld bc, $123b ; reset write bit ld a, 2 ; but keep visible out (c), a ret ; have a guess? handle: db 0 bmp: db "test.bmp" end start