From 49a3d7cf4d8663ecef4778a3f7434a85b5218a82 Mon Sep 17 00:00:00 2001 From: dz Date: Sat, 1 Oct 2016 18:55:52 +0200 Subject: [PATCH] update --- Makefile | 18 ++--- README.md | 16 +++- code.png | Bin 0 -> 74544 bytes dev/additional_features.asm | 45 +++++++++++ dev/bricks.txt | 152 ++++++++++++++++++++++++++++++++++++ tetros.img | Bin 0 -> 512 bytes 6 files changed, 219 insertions(+), 12 deletions(-) create mode 100644 code.png create mode 100644 dev/additional_features.asm create mode 100644 dev/bricks.txt create mode 100644 tetros.img diff --git a/Makefile b/Makefile index b10ac62..d8f070f 100644 --- a/Makefile +++ b/Makefile @@ -1,15 +1,15 @@ -all: mbr.img +all: tetros.img -mbr.img: tetros.asm Makefile - nasm -d DEBUG -f bin tetros.asm -o mbr.img - @echo "size is" `stat -c "%s" mbr.img` - @if [ `stat -c "%s" mbr.img` -gt 446 ]; then \ +tetros.img: tetros.asm Makefile + nasm -d DEBUG -f bin tetros.asm -o tetros.img + @echo "size is" `stat -c "%s" tetros.img` + @if [ `stat -c "%s" tetros.img` -gt 446 ]; then \ bash -c 'echo -e "\e[91mOutput exceeded size of 446 bytes.\e[0m"'; \ - rm -f mbr.img; exit 1; fi - nasm -f bin tetros.asm -o mbr.img + rm -f tetros.img; exit 1; fi + nasm -f bin tetros.asm -o tetros.img run: - @qemu-system-i386 -drive file=mbr.img,index=0,media=disk,format=raw + @qemu-system-i386 -drive file=tetros.img,index=0,media=disk,format=raw clean: - rm -f mbr.img + rm -f tetros.img diff --git a/README.md b/README.md index cc90f93..5fb7748 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,18 @@ # TetrOS TetrOS is a small *feature rich* Tetris clone which is written in Assembly. It fits completely into a 512 byte boot sector and is executed during the -boot sequence. It does not need any existing operating system. TetrOS is its own -operating system, hence the suffix OS in its name. +boot sequence before any operating system is loaded. It does not need any +existing operating system. TetrOS is its own operating system, hence the suffix +OS in its name. This is how it looks like: ![TetrOS - Tetris in 512 byte boot sector](https://github.com/daniel-e/mbr_tetris/blob/master/tetros_tetris_screenshot.png) +And this is how the machine code looks: + +![TetrOS - Machine code](https://github.com/daniel-e/mbr_tetris/blob/master/code.png) + ## Features * Each brick shape has a unique color. * Blinking cursor is not visible. @@ -21,6 +26,11 @@ This is how it looks like: ## Features missing due to size limits * Scores and highscores. * Intro. -* Game over message. +* Game over message and restart without rebooting. * Show next brick. * Increase speed. + +## Similar projects +* https://github.com/dbittman/bootris +* https://github.com/Shikhin/tetranglix +* http://olivier.poudade.free.fr/src/BootChess.asm diff --git a/code.png b/code.png new file mode 100644 index 0000000000000000000000000000000000000000..ce20326d67d5f6e543bcd146547f85da49295fe0 GIT binary patch literal 74544 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 literal 0 HcmV?d00001 diff --git a/dev/additional_features.asm b/dev/additional_features.asm new file mode 100644 index 0000000..fc2d595 --- /dev/null +++ b/dev/additional_features.asm @@ -0,0 +1,45 @@ +; game_over: +; mov cx, 10 +; mov dx, 0x0323 +; mov bx, 0x8c +; mov bp, game_over_msg + 0x7c00 +; mov ax, 0x1300 +; int 0x10 +; xor ax, ax ; wait for keyboard +; int 16h +; jmp start_tetris + +;game_over_msg: db "GAME OVER!" + +; ============================================================================== + +initial_animation: +; call clear_screen +; mov ah, 2 ; set cursor position +; xor bx, bx +; mov dh, 5 +; mov dl, 10 +; int 0x10 +; mov si, message + 0x7c00 ; MBR is loaded at address 0000:7C00 +initial_animation_next: +; cld +; lodsb +; cmp al, 0 +; jne initial_animation_do +; xor ax, ax ; wait for keyboard +; int 16h +; ret +initial_animation_do: +; mov bx, 0x0a ; write character +; mov cx, 1 +; mov ah, 9 +; int 0x10 +; call cursor_right +; push dx +; mov cx, 2 ; wait 2x65536 microseconds +; xor dx, dx +; call wait_abit +; pop dx +; jmp initial_animation_next + +;message: db "Let's play tetris ...", 0 diff --git a/dev/bricks.txt b/dev/bricks.txt new file mode 100644 index 0000000..832249e --- /dev/null +++ b/dev/bricks.txt @@ -0,0 +1,152 @@ +.X.. +.X.. +.X.. +.X.. + +XXXX +.... +.... +.... + +.X.. +.X.. +.X.. +.X.. + +XXXX +.... +.... +.... + +==== + +..X. +..X. +.XX. +.... + +XXX. +..X. +.... +.... + +.XX. +.X.. +.X.. +.... + +X... +XXX. +.... +.... + +==== + +.X.. +.X.. +.XX. +.... + +..X. +XXX. +.... +.... + +.XX. +..X. +..X. +.... + +XXX. +X... +.... +.... + +==== + +.XX. +.XX. +.... +.... + +.XX. +.XX. +.... +.... + +.XX. +.XX. +.... +.... + +.XX. +.XX. +.... +.... + +==== + +XX.. +.XX. +.... +.... + +..X. +.XX. +.X.. +.... + +XX.. +.XX. +.... +.... + +..X. +.XX. +.X.. +.... + +==== + +.X.. +XXX. +.... +.... + +.X.. +XX.. +.X.. +.... + +XXX. +.X.. +.... +.... + +X... +XX.. +X... +.... + +==== + +.XX. +XX.. +.... +.... + +X... +XX.. +.X.. +.... + +.XX. +XX.. +.... +.... + +X... +XX.. +.X.. +.... + diff --git a/tetros.img b/tetros.img new file mode 100644 index 0000000000000000000000000000000000000000..d4572e5b6d46aad1f1cfc11e4b4f89aa65c60570 GIT binary patch literal 512 zcma)%&ui0g7{;HZ!L~X>Hf)8#bSUg3vK+mIw1UhZv(<-k0E0lqKK!v|h?-uIQA)jiqqC5yB3 zbH3Ee*;A;;UiYXiV%r4uV8kU>RP71K0j;AMe)JBZy=d|N^kcp)zj=Ogf1s?Tw7Z?h z{!b^&J=~fS=o4Bo?LyvJ7SXP2^3K-g5o^gW={1Y<%bk}EcAlQW7+qwO#^?e&VT>*_ zDN8;aonD|PU^8kot!32eTuajXq|Mo)FS!|6g%q@2Dekj#a*+Pg73p*0d=nU7QNv%x!9;7Qb;Wd0PcvR8 zv1bl8IIA*mxsXX}tZQhVP88LhLoeej(7^Y85{+X{Qh>i&)jFI6Hd- jgq#1`Q|6HAigF1Hkh literal 0 HcmV?d00001