Heresy #01
16 мая 1999

PC ASM - ассемблер для X86.

<b>PC ASM</b> - ассемблер для X86.
███████████████████▄  ▄▄█████████████████▄
█████████  ▀████████▄ ████████▀        ▀██
█████████   █████████ ███████▀
█████████   █████████ ███████     ▄▄▄▄▄▄  ▄▄▄▄▄   ▄▄▄▄▄▄▄
█████████  ▄████████▀ ███████    ▐▄▄▄▄▄█ ▐▄▄▄▄▄▄ ▐   ▌  █
███████████████████▀ ████████    ▐     ▀ ▄▄▄▄▄▄▀ ▐   ▌  █
█████████           █████████▄
█████████            █████████▄        ▄██
█████████ а$h         ▀▀█████████████████▀


    В  шестом Born Dead'e появилась статья о программировании на
68000, то бишь на Амиге. Не знаю, интересно ли это было кому-то,
но возникла мысль: а ПЦ ? :)
    Ведь гораздо больше народу юзает вместе со Спекки именно РС.
И  довольно  часто  возникает  необходимость написания небольшой
утилитки  на  РС  для  перекидывания  чего-либо для Спекки, либо
конвертирования, ну или просто fuck кому послать надо ;).
    Короче,  я  в  этом  деле чайник, но что буду узнавать тем и
буду  делиться ;). Я не буду начищать вам мозги насчет регистров
и  команд, так как это есть в любом справочнике. А вот то, что я
в  справочниках  не  нашел,  то,  что  мне  пришлось  выискивать
Insight'om  в  exe'шниках  или консультироваться у Dark Lion'a и
тому подобное - этим я с вами поделюсь.

───────────────────────────────────────
1. Заглушка для "клавы" - отрубает опрос клавиатуры
(включая Ctrl-Break и Ctrl-Alt-Del ;)

;глушим
      in al,21h
      mov [varib],al
      or al,2
      out 21h,al
      ...             ;ваша программа

;и перед выходом
;восстанавливаем
      mov al,[varib]
      out 21h,al

varib db 0
───────────────────────────────────────
2. Печать сообщения - ну это вроде самое
простое, но вдуг кто не знает :)

     mov dx,OFFSET text
     mov ah,9h
     int 21h

text db "Speccy was here :)",Odh,Oah,"$"

;кода Odh и Oah называются CR+LF
;(возврат каретки и перевод строки)
;они ставятся дабы следующее сообщение
;печаталось с новой строки,
;знак доллара означает конец сообщения ($=24h)
───────────────────────────────────────
3. Опрос any key
если клава отрублена процедурой 1.,
то естественно ничего у вас не получиться

no_key:
     mov ah,1
     int 16h
     jz no_key
     ...
───────────────────────────────────────
4. Опрос клавиши esc

no_esc:
     in al,60h
     cmp al,1
     jnz no_esc
     ...
───────────────────────────────────────
5.Выход в Дос
(можно конечно короче, но для начала сойдет)

     mov ah,Чch
     int 21h

───────────────────────────────────────
    Небольшое разъяснение. В отличии от z80 на ПЦ принято
писать числа в
    - hex-формате с "h" на конце (пример:21h), прибавляя ноль
    вначале, если число начинается с буквы (пр.:Oah)
    - двоичном формате добавляют "b" на конце (пр.:00001111b)
───────────────────────────────────────
Теперь из этих процедур можно попробовать
склепать вашу первую программу:
(обратите внимание - метки ставятся с двоеточием,
за исключением data-меток).

;--- Your first PC programm ;) ---

     .model tiny
     .code
     org 100h        ;com-файл начинается
                     ;c адреса 256
start:
      mov dx,OFFSET text
      mov ah,9h
      int 21h

no_esc:
      in al,60h
      cmp al,1
      jnz no_esc

      mov ah,Чch
      int 21h

text  db "Speccy was here :)",Oah,Odh,"$"

end start
;--------------------------------------------

    Все это набивается в любом редакторе (очень удобен для этого
встроеный  в Dos Navigator), затем списывается на диск, в файл с
расширением, к примеру, first.asm
    Теперь,  если  у  вас  есть  ассемблер,  можно откомпилить в
com-файл. Через коммандную строку задаем:
    tasmx /m2 first.asm
и получаем объектный файл first.obj, линкуем его в .com:
    tlink /t /x first.obj
и лицезреем новый файл first.com - запускайте!

    Знаю,  что для многих все вышеперечисленное уже давным-давно
известно.  Просьба  к  таким  людям  поделиться с народом своими
знаниями, наработками, полезными процедурами и т.п.



Другие статьи номера:

Ruins of my minds - о новом издении Heresy. О том как Demiurg ASH ушел из Eternity Industry. Сцена гибнет. Сцена разваливается.

FAQ - описание игры "12 тайных книг".

Nexus game - описание игры Nexus.

Софт - описание нового текстового редактора Modern Word 2.0

Party - новая пати в Дзержинске: DiHalt 1999.

Ansi и ASCII - анси и аски графика.

FAQ - сатанизм.

FAQ - книги по сатанизму.

Fuck - как Arty кинул ASH'a на деньги.

WarGames - как сделать War Game.

PC ASM - ассемблер для X86.

Sparow Story - Воспоминания ламеpа, возомнившего себя хакеpом II.

Short Story - Жили-были стаpый шаpманщик и маленькая девочка.

Русское поле эксперементов - песни ГРОБА.

Приложение - приложение к газете.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Железо - КОНТРОЛЛЕР IBM-совместимой клавиатуры и мыши для любого компьютера типа ZX-SPECTRUM (Инструкция по работе и подключению V 2.0).
Грустим - Есть еще кто нибудь на сетях или опять я сам с собою pазговаpивать буду.
Картинки с IBM - 2 картинки с IBM из игры SPACE JAM.
Credits - В заключение...
Реклама - реклама и объявления.

В этот день...   1 января

SibNews #08, Woot! #01, Spectrum Magazine #01, ACNews #25, Psychoz #14, ACNews #14, Last 128 #08, Last 128 #06, Last 128 #05, Last 128 #04, Last 128 #03, Last 128 #02, Last 128 #09, Last 128 #3.5, Last 128 #8.025, Sinclair Club #05, Last 128 #M!R 01, Fantadrom #01, Buzz #20, Last 128 #01, DonNews #13, Nicron #120, Promised Land #01, Inferno #01, Marazm #25, Ultimathum #01, Marazm #21, Hooy Mag #02, KrNews #11, Marazm #22, Marazm #23, ZX Football 2000 #01, Codemania #01, Always #03, Bugs #02, IzhNews #08, Virtual Worlds #01, Listok #04, Scenergy #02, Flash Info #18, Marazm #16, Marazm #17, Zed #01, Balagan #02, ZX Format #08, ZX Power #03, Shock #01, Impulse #02, Deja Vu #03, ZX Club #08, ZX Club #06, Numberology #01, Marazm #13, Marazm #12, Marazm #14, Gorodok #02, Zodiac #01, Marazm #15, Deja Vu #07, Marazm #11, Deja Vu #07, Playboy #03, Crazy News #2, Crazy News #4, ZX Light #01, Crazy News #5, Playboy #02, ZX News #03, ZX Review #1-2, Read Me #02, Crazy News #3, Nicron #13, Read Me #01, Public Spirit #01, Faultless #06, Faultless #05, ZX Software #01, Stump #04, Speccy #07, Возраждение #0, Speccy #03, On-Line #17, Scene+ #01, Welcome Press #01, ZX Konig #04, Adventurer #01, Faultless #05, Faultless #04, Di Halt #01, Faultless #01, Playboy #01, Crazy News #1, Faultless #03, Pioneer #03, Sinclair Town #02, ZX Magazine #01, Eldorado #01, ZX Magazine #02, Spectron #01, ZX News #01, ZX Konig #02, 200 #W, Welcome Press #00, Dune #07, Subliminal Extacy #01, Subliminal Extacy #02, ZX Konig #01, Subliminal Extacy #00, Muchomor #01, Spectrofon #01, ZX Revija #02, Outlet #01, Outlet #1-3