Initial code for peeking the map
This commit is contained in:
parent
000b2ab821
commit
0e48270ff6
2 changed files with 110 additions and 2 deletions
13
REAME.md
Normal file
13
REAME.md
Normal file
|
@ -0,0 +1,13 @@
|
|||
Minesweeper in Assembly
|
||||
=======================
|
||||
|
||||
Hello, this is my attempt to build an x86 assembly Minesweeper for DOS,
|
||||
in plain 16 bits glory and learning to use mode 13h.
|
||||
|
||||
Compile
|
||||
=======
|
||||
|
||||
This project has been built using flat assembler and has a Makefile handy
|
||||
to make it easy to be compiled, just do `make` and it'll be built as an
|
||||
`.exe` for you to run either on your VM, your old DOS machine or as I do,
|
||||
running it inside (DOSBox)[https://www.dosbox.com/]
|
99
mine.asm
99
mine.asm
|
@ -151,12 +151,35 @@ putmine:
|
|||
inc byte [minecount]
|
||||
mov word [ds:bx], 00009h ;Place mine
|
||||
jmp continuecreateminefield
|
||||
|
||||
;This routine returns in DX the value of the cell pointed by CX (Y coord) and
|
||||
;AX (X coord)
|
||||
;Mangles AX, BX, CX and DX
|
||||
peektable:
|
||||
mov dx, 0 ;In case we return prematurely, we return nothing
|
||||
cmp ax, COLUMNS ;If we are out of bounds, return
|
||||
jge peekend
|
||||
cmp cx, LINES
|
||||
jge peekend
|
||||
push ax ;Calculate offset
|
||||
mov ax, cx
|
||||
mov cx, COLUMNS
|
||||
mul cx
|
||||
mov bx, map
|
||||
add bx, ax
|
||||
pop ax
|
||||
add bx, ax
|
||||
mov dx, word [ds:bx] ;Read
|
||||
peekend:
|
||||
ret
|
||||
|
||||
;This routine checks the map and puts numbers down given the
|
||||
;amount of
|
||||
;amount of mines around
|
||||
;calculateminenumbers:
|
||||
; mov bx, [map]
|
||||
; mov bx, map
|
||||
; mov dx, 00h
|
||||
|
||||
|
||||
|
||||
mainloop:
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
@ -296,3 +319,75 @@ flagbmp: db 0fh, 0fh, 0fh, 0fh, 0fh, 0fh, 0fh, 0fh
|
|||
db 0fh, 17h, 17h, 17h, 10h, 17h, 17h, 14h
|
||||
db 0fh, 17h, 10h, 10h, 10h, 10h, 10h, 14h
|
||||
db 14h, 14h, 14h, 14h, 14h, 14h, 14h, 14h
|
||||
|
||||
numone: db 14h, 14h, 14h, 14h, 14h, 14h, 14h, 14h
|
||||
db 14h, 17h, 17h, 17h, 01h, 17h, 17h, 0fh
|
||||
db 14h, 17h, 17h, 01h, 01h, 17h, 17h, 0fh
|
||||
db 14h, 17h, 01h, 17h, 01h, 17h, 17h, 0fh
|
||||
db 14h, 17h, 17h, 17h, 01h, 17h, 17h, 0fh
|
||||
db 14h, 17h, 17h, 17h, 01h, 17h, 17h, 0fh
|
||||
db 14h, 17h, 01h, 01h, 01h, 01h, 01h, 0fh
|
||||
db 0fh, 0fh, 0fh, 0fh, 0fh, 0fh, 0fh, 0fh
|
||||
|
||||
numtwo: db 14h, 14h, 14h, 14h, 14h, 14h, 14h, 14h
|
||||
db 14h, 17h, 17h, 02h, 02h, 02h, 17h, 0fh
|
||||
db 14h, 17h, 02h, 17h, 17h, 17h, 02h, 0fh
|
||||
db 14h, 17h, 17h, 17h, 17h, 17h, 02h, 0fh
|
||||
db 14h, 17h, 17h, 02h, 02h, 02h, 17h, 0fh
|
||||
db 14h, 17h, 02h, 17h, 17h, 17h, 17h, 0fh
|
||||
db 14h, 17h, 02h, 02h, 02h, 02h, 02h, 0fh
|
||||
db 0fh, 0fh, 0fh, 0fh, 0fh, 0fh, 0fh, 0fh
|
||||
|
||||
numthree: db 14h, 14h, 14h, 14h, 14h, 14h, 14h, 14h
|
||||
db 14h, 17h, 17h, 04h, 04h, 04h, 17h, 0fh
|
||||
db 14h, 17h, 04h, 17h, 17h, 17h, 04h, 0fh
|
||||
db 14h, 17h, 17h, 17h, 17h, 17h, 04h, 0fh
|
||||
db 14h, 17h, 17h, 17h, 04h, 04h, 17h, 0fh
|
||||
db 14h, 17h, 04h, 17h, 17h, 17h, 04h, 0fh
|
||||
db 14h, 17h, 17h, 04h, 04h, 04h, 17h, 0fh
|
||||
db 0fh, 0fh, 0fh, 0fh, 0fh, 0fh, 0fh, 0fh
|
||||
|
||||
numfour: db 14h, 14h, 14h, 14h, 14h, 14h, 14h, 14h
|
||||
db 14h, 17h, 17h, 17h, 05h, 05h, 17h, 0fh
|
||||
db 14h, 17h, 17h, 05h, 17h, 05h, 17h, 0fh
|
||||
db 14h, 17h, 05h, 17h, 17h, 05h, 17h, 0fh
|
||||
db 14h, 17h, 05h, 05h, 05h, 05h, 05h, 0fh
|
||||
db 14h, 17h, 17h, 17h, 17h, 05h, 17h, 0fh
|
||||
db 14h, 17h, 17h, 17h, 05h, 05h, 05h, 0fh
|
||||
db 0fh, 0fh, 0fh, 0fh, 0fh, 0fh, 0fh, 0fh
|
||||
|
||||
numfive: db 14h, 14h, 14h, 14h, 14h, 14h, 14h, 14h
|
||||
db 14h, 17h, 06h, 06h, 06h, 06h, 06h, 0fh
|
||||
db 14h, 17h, 06h, 17h, 17h, 17h, 17h, 0fh
|
||||
db 14h, 17h, 06h, 17h, 17h, 17h, 17h, 0fh
|
||||
db 14h, 17h, 17h, 06h, 06h, 06h, 17h, 0fh
|
||||
db 14h, 17h, 17h, 17h, 17h, 17h, 06h, 0fh
|
||||
db 14h, 17h, 06h, 06h, 06h, 06h, 17h, 0fh
|
||||
db 0fh, 0fh, 0fh, 0fh, 0fh, 0fh, 0fh, 0fh
|
||||
|
||||
numsix: db 14h, 14h, 14h, 14h, 14h, 14h, 14h, 14h
|
||||
db 14h, 17h, 17h, 17h, 2bh, 2bh, 17h, 0fh
|
||||
db 14h, 17h, 17h, 2bh, 17h, 17h, 17h, 0fh
|
||||
db 14h, 17h, 2bh, 17h, 17h, 17h, 17h, 0fh
|
||||
db 14h, 17h, 2bh, 2bh, 2bh, 2bh, 17h, 0fh
|
||||
db 14h, 17h, 2bh, 17h, 17h, 17h, 2bh, 0fh
|
||||
db 14h, 17h, 17h, 2bh, 2bh, 2bh, 17h, 0fh
|
||||
db 0fh, 0fh, 0fh, 0fh, 0fh, 0fh, 0fh, 0fh
|
||||
|
||||
numseven: db 14h, 14h, 14h, 14h, 14h, 14h, 14h, 14h
|
||||
db 14h, 17h, 35h, 35h, 35h, 35h, 35h, 0fh
|
||||
db 14h, 17h, 17h, 17h, 17h, 17h, 35h, 0fh
|
||||
db 14h, 17h, 17h, 17h, 17h, 35h, 17h, 0fh
|
||||
db 14h, 17h, 17h, 17h, 35h, 17h, 17h, 0fh
|
||||
db 14h, 17h, 17h, 17h, 35h, 17h, 17h, 0fh
|
||||
db 14h, 17h, 17h, 17h, 35h, 17h, 17h, 0fh
|
||||
db 0fh, 0fh, 0fh, 0fh, 0fh, 0fh, 0fh, 0fh
|
||||
|
||||
numeight: db 14h, 14h, 14h, 14h, 14h, 14h, 14h, 14h
|
||||
db 14h, 17h, 17h, 40h, 40h, 40h, 17h, 0fh
|
||||
db 14h, 17h, 40h, 17h, 17h, 17h, 40h, 0fh
|
||||
db 14h, 17h, 17h, 40h, 40h, 40h, 17h, 0fh
|
||||
db 14h, 17h, 40h, 17h, 17h, 17h, 40h, 0fh
|
||||
db 14h, 17h, 40h, 17h, 17h, 17h, 40h, 0fh
|
||||
db 14h, 17h, 17h, 40h, 40h, 40h, 17h, 0fh
|
||||
db 0fh, 0fh, 0fh, 0fh, 0fh, 0fh, 0fh, 0fh
|
||||
|
|
Loading…
Reference in a new issue