Advertisement
Abaduaber

PROGRESS.TXT

Feb 24th, 2015
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 78.14 KB | None | 0 0
  1. LGL3:
  2. TIPS:
  3. ☐ Внимательно следить за функциями, которым передается близкий двубайтовый указатель.
  4. ☐ Внимательно следить за регистром символов в прагмах и объявлениях функций. Компилятор промолчит на ошибку в прагме, но действие прагмы не применится.
  5. ☐ Переменные, объявленные в ассемблерном коде, достигаются только по регистру CS!
  6. ☐ Сегменты объявляются как CLASS=CODE!
  7. ☐ Кстати, по ходу, линковщик тупит, и впихивает в итоговый файл все функции
  8. ☐ Никаких подгрузок данных из LZ4, когда на дисплее что-то обновляется!!!
  9. ☐ Следить за порядком освобождения памяти. При необходимость освободить память, освобождать вообще всю выделенную, или ничего.
  10. Постоянные задачи:
  11. ✔ Снабдить весь существующий код Assert-ами, где следует. (15-03-15, 01:50)
  12. ✔ Следить за наличием комментариев к функциям. (15-03-15, 01:50)
  13. ✔ Обращать внимание на следование определенному принципу при именовании функций и переменных. (15-03-15, 01:50)
  14. LUtils - Работа с файлами DOS:
  15. ✔ Контроль EOF.
  16. ✔ Двоичная запись.
  17. ✔ Чтение и запись строк текста.
  18. ✔ Создание файла.
  19. ✔ Удаление файла.
  20. ✔ Позиционирование.
  21. ✔ Позиция указателя в файле.
  22. ✔ Размер файла.
  23. ✔ Определить константы ошибок работы с файлами.
  24. ✔ Привести в порядок комментарии к коду по всему проекту.
  25. LUtils - Строки:
  26. ✔ Перевод из числа в строку.
  27. ✔ Сравнение строк.
  28. ✔ Склеивание строк. [Допилено]
  29. ✔ Нахождение подстроки.
  30. ✔ Перевод в верхний регистр (CP866).
  31. ☐ Перевод в нижнией регистр (CP866).
  32. ☐ Перевод строки в число.
  33. ☐ Пусть PrintLn возвращают количество напечатанных символов.
  34. LUtils - Память:
  35. ✔ Выделение DOS-памяти.
  36. ✔ Освобождение DOS-памяти.
  37. ✔ Возврат размера буфера.
  38. ✔ Перемещение данных из буфера в буфер.
  39. ✔ Заполнение буфера значением.
  40. ✔ Совместимые с wSizeOfBuf локальные буферы.
  41. ✔ Проверка на битость буфера.
  42.  
  43. LUtils - Разное:
  44. ✔ Определение типа процессора, чтобы можно было вызывать MoveMem и FreeMem по указателю на общую функцию.
  45. LFiles:
  46. LRF:
  47. ✔ Открытие LRF.
  48. ✔ Поиск подфайла (одновременно и открытие).
  49. ✔ Чтение подфайла. (07-03-15, 08:21)
  50. ✔ Чтение строк из подфайла. (15-03-15, 01:50)
  51. ✔ Позиционирование в подфайле. (07-03-15, 07:36)
  52. ✔ Позиция подфайла. (07-03-15, 07:26)
  53. ✔ Размер подфайла. (07-03-15, 07:27)
  54. ✔ Закрытие подфайла. (07-03-15, 07:27)
  55. ✔ Закрытие LRF. (07-03-15, 07:27)
  56. ✔ Функция EOF для подфайлов. (07-03-15, 07:46)
  57. Интерфейс:
  58. ✔ Общий интерфейс для чтения обычных файлов и подфайлов LRF. (15-03-15, 01:51)
  59. ✔ Функции прозрачной распаковки и чтения данных из LZ4 также, как и обычных данных. (21-03-15, 22:31)
  60. LErrors:
  61. ✔ Загрузка сообщений об ошибках из файла.
  62. ✔ Функции установки состояний ошибки, работы с ними. (15-03-15, 04:54)
  63. ✔ Механизм хранения и передачи значений для подстановок. (15-03-15, 04:54)
  64. ✔ Парсинг подстановок в тексты об ошибках. (15-03-15, 04:54)
  65. ☐ Обязательно вставить флаги критичности ошибок, и завершать работу
  66. программы при наступлении критичной ошибки в функциях Error и
  67. ассертах!
  68.  
  69. LGFiles:
  70. LGF файлы:
  71. ✔ Определения структур. (20-03-15, 05:23)
  72. ✔ Загрузка. (23-03-15, 06:30)
  73. LPF файлы:
  74. ✔ Определения структур. (20-03-15, 05:23)
  75. ✔ Загрузка. (20-03-15, 06:13)
  76. LCS файлы (компилируемые спрайты):
  77. ☐ Определения структур.
  78. ☐ Создание генератора из LGF в LCS.
  79. ☐ Загрузка.
  80. LFF файлы (работу LFF можно построить на LCS):
  81. ☐ Определения структур.
  82. ☐ Загрузка.
  83. LGL:
  84. Инициализация:
  85. ✔ Инициализация дисплея. (15-03-15, 06:37)
  86. ✔ Возврат старого экранного режима (15-03-15, 06:38)
  87. ✔ Инициализация экранного буфера. (23-03-15, 06:30)
  88. Работа с палитрой:
  89. ✔ Установка палитры (21-03-15, 22:58)
  90. ✔ Чтение палитры из VGA (21-03-15, 23:04)
  91. ✔ Установка яркости вверх\вниз (23-03-15, 02:48)
  92. ✔ Приведение одной палитры к другой. (23-03-15, 03:40)
  93. ✔ Установка цвета в палитре. (23-03-15, 03:51)
  94. Работа с изображениями:
  95. ✔ Обновление экрана. (23-03-15, 20:10)
  96. ✔ Очистка экрана. (23-03-15, 23:06)
  97. ✔ Вывод обычных изображений. (23-03-15, 23:06)
  98. ✔ Вывод обычных спрайтов (24-03-15, 04:51)
  99. ✔ Отражения всего перечисленного выше добра. (26-03-15, 20:25)
  100. ✔ Функция Copy (получение части изображения) (29-03-15, 09:23)
  101. ✔ Вывод с отсечением всего перечисленного выше добра. (29-03-15, 13:39)
  102. ✔ Заполнение изображений цветом (30-03-15, 22:32)
  103. ✔ RLE-спрайты. (31-03-15, 04:43)
  104. ✔ Отсечения RLE-спрайтов (31-03-15, 04:43)
  105. ✔ Отражения RLE-спрайтов. (13-04-15, 19:12)
  106. ☐ Компилируемые спрайты
  107. ☐ Отражения и отсечения компилируемых спрайтов.
  108. Шрифты:
  109. ☐ Вывод надписи.
  110. ☐ Возможно - объект надписи.
  111. Работа с примитивами:
  112. ☐ Установка точки.
  113. ☐ Вывод линии.
  114. ☐ Вывод прямоугольника
  115. Прочее:
  116. ✔ Вертикальная синхронизация (30-03-15, 22:44)
  117. ✔ Проверка наличия VGA-совместимого адаптера. (15-03-15, 06:37)
  118. ☐ Разделить внутренние и внешние функции по порядку следования.
  119. LZ4:
  120. ✔ Функция распаковки и интерфейсы в LUtils.H (21-03-15, 16:19)
  121.  
  122.  
  123. ...
  124. ...
  125. Титры игры:
  126. ☐ Привет товарищу "Trixter/Hornet" за LZ4-функцию.
  127. По полной готовности проекта:
  128. ☐ Или добавить к LZ4 функцию чтения строк текста, или просто убрать функции чтения строк вообще.
  129. ☐ Функция RLE_Copy, которая поможет избавиться от лютого костыля при
  130. отрисовке RLE-спрайтов с отсечением. Но пока и так сойдет.
  131. ☐ Добавить 16 и 32 бит версии функции Img_Flip для обычных изображений.
  132. ☐ Цепочка функций завершения программы. Замена вызовов Abort на вызов первой в цепочке функции завершения.
  133. ☐ Добавить кэш для поиска файлов в LRF. А то пока медленно.
  134. ☐ Удаление файлов из LRF.
  135. ☐ Ужать EXE-пакером.
  136. ☐ Возможно, избавиться таки от стандартной библиотеки вообще.
  137. ☐ Переписать утилиты (LRFP, LGFC, STRCOMP) на Си.
  138. ☐ Возможно вшить данные в EXE файл.
  139. ☐ Добавить каждому файлу кода лейблы с лицензией.
  140.  
  141. Дневник разработки:
  142. 13 Апреля, 2015:
  143. Проснулся в 12 дня где-то. Посычевал в интернете, сделал пару дел по дому,
  144. теперь кожу потиху. На часах 19.00. "Отрефакторил" жирнющие однотипные
  145. функции вывода RLE с отражением, которые запилил вчера, разбив их на
  146. парочку макросов. Конечно, рефакторингом такое можно и не назват, но
  147. объем кода уменьшился значительно, и это при не изменившейся его
  148. производительности. Отлично. Сейчас думаю, чем заняться дальше. Впрочем,
  149. список дел у меня есть. Думаю, сейчас самое время решить вопрос с
  150. функциями, которые должны быть статическими. А именно, собрать их в кучу
  151. и перенести в концы модулей. А то там слегонца каша.
  152. 7 Апреля - 12 апреля, 2015:
  153. Снова не писал сюда ничего на протяжении шести суток. Разумеется, это было
  154. вызвано тем фактом, что я ничего не кодил все это время. К сожалению,
  155. память уже не позволяет вспомнить достаточно детально каждый из дней, а
  156. я не особо-то желаю ее насиловать. Тем не менее, пробегусь по
  157. основным моментам: В среду 8 апреля поехал к Женьке, взяв привычный
  158. литрик вина. Поболтали с ним, а потом я позвонил Николаевичу. Выяснил, что
  159. за описанный мой ранее проеб он меня таки уволил. Расчитал, оказывается,
  160. то ли в понедельник, то ли вообще в пятницу. Денег пришло мало, ибо за
  161. март он заплатил мне по справедливости ровно столько, сколько я и
  162. наработал - порядка 700к всего. Отпускные, впрочем, выплатил нормально.
  163. Так что отныне я безработен.
  164. В четверг сычевал, очень много спал. В пятницу поехал, забрал трудовую у
  165. него, в общем-то, попрощались. Всякое было за эти 2 года, я не жалею, что
  166. работал у него все это время, и мне нет причин на него обижаться.
  167. В субботу поехали с родителями на дачу, заодно заглянули на кладбище, да
  168. прибрались на могилах бабушки и дедушки. Всяко лучше, чем втупую набить
  169. требух. Потом на даче закосплеил земнопоня, точнее, самого себя, прополов
  170. теплицу да запилив грядку. Нажрался мяса и поехал домой в город, чатиться
  171. с Волки, заодно купил и выжрал очереденой литрик винца.
  172. Поигрался в Тундру, словил лютый баттхерт по пьяни из-за неосторожно
  173. сказанных слов Волки в чате. Впрочем, не будь я бухим, баттхерта бы явно
  174. не было. Просто наложилась физическая усталость, сонность и опьянение,
  175. потому психика не выдержала.
  176. Воскресенье слилось хрен пойми куда, а также стало одним из рекордных
  177. дней по продолжительности моего бодрствования, только с обратной стороны.
  178. Лен спать через 9 часов после подъема и довольно быстро отрубился.
  179. А еще, кажется, во вторник фатально уронил свой смартфон. Теперь он
  180. просто не заряжается. Был бы смысл его чинить, если бы это было его
  181. единственной проблемой. Но вдовесок у него полуубитый сенсор, который
  182. пострадал от падения в этом же самом месте примерно год назад, а также
  183. убитая в говно батарея и общая старость и лагучесть. Последнее можно было
  184. убрать, зарядив его старым но рабочим софтом, который явно бы жрал меньше,
  185. но мне все было не до этого. Так что теперь сижу вообще без телефона.
  186. Впрочем, в воскресенье заказал себе новый, покумекав и прикинув, сколько
  187. имею денег. В среду должен быть доставлен.
  188. Ну а насчет воскресенья - таки за него успел неплохо поработать.
  189. В частности, реализовал все функции флипа RLE изображений. Так что теперь
  190. поддержку RLE движком можно назвать полноценной.
  191. 6 Апреля, 2015:
  192. Сейчас на часах ровно 9 утра и я дописал всю историю аж с 31-го марта и
  193. по сегодня. Думаю пойти поспать все же, уже как бы вполне можно немного.
  194. Или таки поработать? Хотя, ехать особо некуда. Если Николаевич сам наберет
  195. и скажет куда, тогда проследую. А нет - тогда завтра уже буду.
  196. 5 Апреля, 2015:
  197. Где-то к шестому часу утра все пиво было выпито, Женька налил мне виски
  198. и посадил играть в тундру, как поня, который явно не намеревался спать.
  199. Да и мне самому очень приятно играть пьяным, игра заходит и идет удачно
  200. почти всегда. Только один раз из всех моих пьяных заходов в тундру игра
  201. не задалась. Не в этот раз тоже. Первые 50 фрагов настрелял очень быстро.
  202. Где-то 8 утра уже было, виски кончился, увы, к тому моменту уже и я
  203. потиху начал трезветь. Потом подумал подумал, понял, что игра заладилась,
  204. все отлично. И грех уже не настрелять еще 80 до бумеранга. И принялся
  205. долбить, поставив на репит трек Mediative Олега Серкова, пока Женька
  206. сопел на кровати рядом. К 11-ти Женька проснулся, как раз тогда, когда
  207. мне оставалось фрагов 10. Сделал мне кофейку, принес эклеров, и я захавал
  208. недостающие фраги за один бой с горкой. Получил бумеранг mk1. Сделал на
  209. нем пробный вылет, настреляв 3 фражика, в принципе, самолет неплохой,
  210. но для моей тактики, которая подразумевает быстрый полет, годится слабо.
  211. Приятно, тем не менее, что таки не пропустил акцию и получил самолетик,
  212. уи :)
  213. Лег спать где-то к 12-ти и спал аж до половины восьмого вечера.
  214. Проснулся, навели порядок, да поехал домой. Вернулся, потупил в интернете
  215. и... поигрался в Тундру. Открыл Рак 9Т, кстати. Именно ради него и решил
  216. добрать еще фрагов 20, чтобы открыть его. Успехи я бы назвал средними,
  217. то ли я просто на папок наткнулся лютых, то ли просто игра не зашла, но
  218. суммарный фрагрейт вышел 29/12, что, в общем-то, довольно уныло, т.к
  219. обычно хорошее соотношение для меня - 4/1, что как раз и вышло, когда
  220. стрелял 130 на бумеранг. Ну, а первый вылет на раке 9Т уже порадовал,
  221. как и тестовые. 5 фрагов настрелял, пока сам не подставился. Жаль, что
  222. все же Рак - не кобра, со скоростью и сохранением энергии у него есть
  223. проблемы. Ну, зато много других преимуществ по сравнению с коброй.
  224. Главное раскрывать именно их, а не пытаться летать на нем также, как на
  225. кобре. Для этого, собственно, есть кобра Покрышкина, на которой, кстати,
  226. я пока так и не провел ни одного вылета.
  227. Мде. Что-то меня занесло. Тут-то речь не про самолеты должна быть, вот
  228. нисколько :)
  229. 4 Апреля, 2015:
  230. Как обычно, я немного проспал. Вышел из дома в 17.20, кажется.
  231. Встретились с Женькой, съездили к нему домой за джойстиком, который
  232. он мне предложил подарить, т.к ему не нужен, а я как раз играю в Тундру.
  233. Довольно мило с его стороны, не считая того, что такому ракадному крабу,
  234. как мне, летающему только в аркаде, джойстик не особо-то и нужен. Но
  235. от подарка не отказался, кто знает, может и в СБ полетаю однажды, там он
  236. определенно пригодится)
  237. Да и вообще нужно посмотреть, какое применение ему можно еще найти,
  238. явно ведь будет.
  239. Закупились потом, да поехали к Женьке в Боровляны. Взяли 8 литров пива
  240. на двоих, пару пицц, закуси всякой, и принялись очень добро проводить
  241. время, как и всегда.
  242. 3 Апреля, 2015:
  243. Проснулся к пяти дня. Поболтал с Женькой о том о сем, да отправился
  244. сычевать в интернеты. Уже не помню, что делал, помню, что снова по
  245. существу это было именно что пинанием хуев.
  246. Кстати, узнал, что в тундре с 3 по 6 апреля проходит акция, как недавно
  247. мной описанная акция с коброй Покрышкина. В этот раз предлагалось
  248. настрелять 140 фрагов за время акции и получить один из двух
  249. австралийских Бумерангов. Сам по себе самолет довольно средний.
  250. Сделал 3 вылета в тундре, настрелял 12 фрагов, решил, что, видимо,
  251. заниматься этим не стоит и закрыл тундру вообще.
  252. Под утро лег спать, часов 8 было. Требовалось поспать, ибо Женька
  253. (не Лезвион, а другой, коллега с прошлой работы) как раз к шести вечера
  254. субботы звал меня потусить с ним.
  255. 2 Апреля, 2015:
  256. Проснулся от звонка Николаевича где-то к 12-ти часам дня.
  257. К сожалению, он задавал мне прямые вопросы касательно достижений за
  258. последние 2 дня, поэтому пришлось ответить как есть. Разумеется, ему это
  259. очень не понравилось. Так что я не нашел ничего лучше, кроме как пулей
  260. вылететь из дома и сделать за рабочий день все то, что не сделал за
  261. предыдущие два. Вернулся к семи вечера, отправил ему отчет и был таков.
  262. Оформил ИПР Женьке по всем канонам, постоянно отвлекаясь на интернеты.
  263. 5 утра было, когда я окончил работу. Посмотрел интернеты еще немного и лег
  264. спать.
  265. 1 Апреля, 2015:
  266. Сутки начались с того, что я, в конечном итоге, сделал оба задания для
  267. одной из ИПР-ок. Затем лег спать, чтобы снова проснуться в 2-3 дня.
  268. Ну и решил остаться дома второй день кряду. Получается, положил болт на
  269. работу и 2 дня не выходил на нее. Ну, позволить пропустить себе день без
  270. особых последствий я вполне мог весь последний год, но два дня оказалось
  271. все же довольно много. Так что второго апреля я конкретно так огреб,
  272. о чем напишу за следующий день.
  273. Тем не менее, после пробуждения я целых часов 8 занимался лютой хуитой,
  274. фактически, время было просто слито впустую. Затем запустил тундру.
  275. И задротил, значится, еще несколько часов. Лег спать под утро 2 апреля.
  276. 31 Марта, 2015:
  277. Эти строки я пишу уже 6-го апреля, аж утром. К сожалению, работа
  278. прервалась и я не работал над игрой на протяжении пяти полныйх дней.
  279. Далее вкратце опишу, что происходило эти дни.
  280. Тем не менее, git напоминает, что в ночь с 30 по 31-го марта я сделал не
  281. только RLE спрайты, но еще и RLE-кроппинг по всем возможным осям, а также
  282. поправил баг в функции Img_Copy32. В принципе, работа была проведена
  283. неплохая. За тот день я реально был доволен. А потом я лег спать и
  284. проснулся в два часа дня. На работу решил не идти, хотя утром и получил
  285. от Николаевича парочку заданий. Типа, сделаю все шустренько завтра, спешки
  286. нет, вроде. Написал Женька, попросил не тянуть поня за хвост и приступить
  287. к работе над его учебой. Согласился, и решил таки начать. Программное
  288. обеспечение встроенных систем, значит. Полистал методичку, мануалы по
  289. микроконтроллеру PIC16F84A, c которым требовалось вести работу. Сначала
  290. детали были решительно непонятны, но со временем начал в них разбираться.
  291. Ассемблер у этого девайса, конечно, довольно забавный. Чем-то напомнил
  292. таковой от MOS 6502, они определенно оба больше похожи друг на друга,
  293. нежели x86 и один из них :).
  294. 30 Марта, 2015:
  295. Проснулся в 8 утра, итого часов 16 продрых. Вышел на работу, вернулся
  296. в два дня, да сидел сычевал в интернетах до шести вечера, врезав
  297. предварительно немного коньячку. Помог немного бате отвоевать места на
  298. системном разделе на его компьютере. Потом поигрался со шрифтами к ST,
  299. попытался найти какой-нибудь новый, но в конечном итоге остался на
  300. богоподобном keyrus. Гуртяку, конечно, поклон и светлая память. Люди
  301. вообще ведь умирают как минимум дважды - один раз физически, второй - в
  302. памяти человечества. У многих относительно быстро наступает вторая смерть.
  303. Но не у всех. Как не у него.
  304. И все с этим шрифтом хорошо, кроме того, что не предназначен он был для
  305. масштабирования, и его ttf версия была получена одним человеком с теми
  306. еще костылями, потому масштабируется несколько гаденько. Его же
  307. оригинальный размер для меня мелковат. Ну, что же, тем не менее, я уже
  308. привык к текущему виду. Пусть будет так.
  309. Также понял, что Си-Linter у меня таки не работает, будучи вызываемым из
  310. ST. Пока эту проблему так и не решил, но временно прикрутил его через
  311. батник. Результаты статического анализа текущего кода радуют. Из
  312. серьезного - только один undefined behavior, да и все. Остальное - ругань
  313. на неиспользуемые функции (пока это нормально, я таки движок делаю)
  314. и совершенно неадекватная ругань на якобы неиспользуемые переменные,
  315. которые, однако вполне себе используются, даже напрямую, а не каким-либо
  316. косвенным путем. Просто выключил упоминания о всех ошибках класса "style"
  317. и был таков.
  318. В целом - резюмируя - вот что значит выкрутить в компиляторе максимальный
  319. уровень warning-ов! :)
  320. Ну и сейчас уже 22 вечера. Пора таки браться за сам код :)
  321. 29 Марта, 2015:
  322. Неплохо покодил, решив вопрос с функциями Copy. Но, что еще
  323. более важно, выяснил, что вывод с отсечением - это и есть по существу
  324. функция Copy! Раньше у меня для вывода с отсечением были аж 3 функции с
  325. очень неудобным (ужасающим) интерфейсом вызова. Теперь же все делается
  326. гораздо гораздо проще, и в среднем также и немного быстрее.
  327. Вообще, конечно, поражен, что меня не просветило так еще 3 года назад.
  328. Это кажется очевидным мне на данный момент.
  329. Отлично, кроп есть, копи есть. Остается заполнение изображения, после
  330. чего нужно будет разобраться с RLE спрайтами да шрифтами, по существу.
  331. Ну и функции вроде Move, MoveTo, Align, такие вот сервисы короче, и все
  332. будет в шляпе, насчет графики-то. А там впереди клавиатура, таймер и мышь.
  333. XMS, полагаю, отложу на потом.
  334. Сейчас почти 2 дня. Собираюсь устроиться кверху копытами. Пойду, видимо.
  335. 28 Марта, 2015:
  336. Проснулся в 8 вечера. Потупил, как водится, в интернете, и пошел кодить.
  337. На форуме посоветовали таки разобратсья с git-ом, что и принялся делать.
  338. Настроение на приключения совпало. Ну, вроде, через 3 часа настроил все
  339. довольно вменяемо и научился таки коммитить. Так что теперь нет
  340. необходимости бэкапить исходники аж в контакт :)
  341. После чего плавно по факту наступило 29-ое, так что кусок, который я
  342. изначально записал за этот день, нужно поместить уже в день новый.
  343. 27 Марта, 2015:
  344. Проснулся поздно, к двум дня примерно. Потупил в тундру малость, да поехал
  345. повидаться с Антоном и Ильей, как договаривались. Выпили пивка немного,
  346. поболтали по мелочи. А еще Рита была, которую я совсем не ожидал увидеть,
  347. и был весьма ей рад. Разумеется, меня тут же обняли и подняли. А потом
  348. гладили мне гриву, а на прощание я получил укус за ушко, что особенно
  349. добро было.
  350. По пути домой купил литр вина, вернулся, и давай его выжирать. Чатился
  351. довольно долго с Волки, а потом пошел играть в тундру и устроил весьма
  352. неплохой нагиб, чему особенно был рад. Лег спать к восьмому часу утра.
  353. 26 Марта, 2015:
  354. Проснулся в час дня. Решил перенести помощь Жене на понедельник, ибо стало
  355. так лениво вдруг, что никуда не хотелось ехать. Даже на работу забил.
  356. Сижу вот, понимаю, что надо начать кодить, да чатюсь пока что с Волкопони.
  357. В конечном итоге немало времени потратил на чаты, но таки допилил функции
  358. отражения изображений как по вертикали, так и по горизонтали. Отличо, что
  359. же, и то добро.
  360. 25 Марта, 2015:
  361. Очень занимательно. Очень. Я только что обратил внимание, что прошел
  362. месяц разработки. И что бы вы думали? Именно сегодня, спустя ровно
  363. месяц я повстречал во сне сестру белой байки. Ее задача была такой же,
  364. как и белой байки - напугать меня. Но, стоит отметить, у байки это
  365. получилось сделать лучше.
  366. Короче, ситуация была такова. Я в одиночку нахожусь в незнакомой квартире.
  367. Ну и понимаю, что больше я не один. На меня со входа наступает женщина
  368. с тентаклями на голове и вместо рук. Я еще не вижу ее, ибо нахожусь за
  369. стенкой, но знаю, что она там, и решаю заглянуть за дверной проем.
  370. Понимаю, что это так. И спасаться некуда. Решение приходит само собой.
  371. Я остаюсь прямо возле дверного проема и встречаю свой страх лицом к лицу.
  372. Когда она показалась из него, не было на лице у нее тентаклей, да и руки
  373. были обычные. Это была обычная с виду женщина лет 45 на вид.
  374. Я смотрю на нее, она находится в метре от меня. И понимаю, что должен
  375. укусить ее за палец. Обмен ролями происходит очень быстро. Теперь я уж
  376. точно ее не боюсь. Следующий эпизод - мы вместе лежим на кровати, и я
  377. пытаюсь схватить один из ее пальцев, чтобы воплотить задуманное.
  378. А потом на этой приятной ноте реальность резко вмешивается в мой сон,
  379. который уже не было никакого смысла прерывать. Я просыпаюсь, чтобы
  380. обнаружить, что у меня какие-то влажные пятна на одеяле. Сначала думаю,
  381. что просто кусал во сне его, однако потом нахожу еще одно влажное пятно
  382. на простыне. Рядом мечется собака, поскуливает, желая, чтобы я ее выпустил
  383. из комнаты. Нога задевает влажную зону на ковре. А на полу рядом - пятнышки
  384. жидкости, да и зад у собаки весь мокрый. Ну ебаный же ж ты нахуй!
  385. Выгуливал же специально, чтобы такого не произошло, можно же было
  386. дотерпеть. Пока убирал содеянное, растерял желание ложиться спать.
  387. Включил компьютер, написал эти строки, немного потупил в интернете, понял,
  388. что таки нифига его не растерял, да лег спать. Проснулся в 12. Сгонял на
  389. работу, отработал неплохо, получил деньжат, купил пивка с рыбкой, да,
  390. хорошо мне было очень весь вечер. Игрался в тундру с большим
  391. удовольствием, да лег спать в 3 ночи.
  392. 24 Марта, 2015:
  393. Ну, по идее, часть работы, сделанной вчера, фактически была сделана
  394. в начале дня сегодня. После чего не спал, а сразу проследовал на работу,
  395. после чего заехал к Женьке, сделали с ним пару вещей. Вернулся, потупил
  396. малость в интернете, да лег спать копытами кверху, 8 вечера было.
  397. 23 Марта, 2015:
  398. В принципе, я и за сегодня оказался молодцом. Сделал несколько функций
  399. вывода изображений, в частности экранный буфер, обычные изображения
  400. и спрайты, также поправил парочку багов в функциях загрузки изображений.
  401. Проснулся в два дня, на работу вообще решил не идти, доберу в другие дни.
  402. 22 Марта, 2015:
  403. Проснулся во столько же, во сколько и вчера. За сегодня в целом закончил
  404. работу с всеми функциями палитры, также сделал часть функций по работе
  405. с LGF - загрузку из него, также инициализацию экранного буфера.
  406. Во время отладки наткнулся на странное поведение. DOS выделяет память
  407. как полагается, но при освобождении более, чем одного выделенного
  408. фрагмента, возвращает странную информацию о наличии оставшейся свободной
  409. памяти. Сижу и думаю, то ли у меня где-то детектор потерянной памяти
  410. барахлит, то ли вопрос в том (что вероятнее всего) что память просто
  411. фрагментируется. А это легко проверить. Если освобождать выделенные
  412. буфера в обратном порядке их выделения, то _по хорошему_ проблема
  413. должна исчезнуть. А ну-ка...
  414. Так и оказалось. Что же, наивно было ожидать от DOS умения заниматься
  415. крутым менеджментом памяти. В общем, из этого следует очень простой факт.
  416. Мне требуется уделять особую осторожность работе с памятью, особенно
  417. следить за ее корректным освобождением. Ну, или заняться построением
  418. нового велосипеда в виде менеджера памяти, что я явно сейчас делать не
  419. намерен :)
  420. 21 Марта, 2015:
  421. Очень рад, что вчера лег спать относительно рано, из-за чего проснулся в
  422. 2 дня, а не в 8 вечера, как бы мог. Потупил с часик в интернете и принялся
  423. уже за работу. Исправил распаковку LZ4. Разумеется, там, где я ожидал
  424. какого-нибудь хитрого бага, типа опечатки с регистром, или сорт оф зэт,
  425. истина оказалась намного проще - перепутал местами источник и назначение,
  426. когда указывал, в каких регистрах функции передаются два ее параметра.
  427. За этот день закончил работу с LZ4 и файловым модулем. Отлично.
  428. 20 Марта, 2015:
  429. В принципе, сейчас 6 утра, а уже есть прогресс. В частности, прописал
  430. структуры для LGF и LPF файлов, а также функцию загрузки последних.
  431. Добро. Сейчас, полагаю, следует немного сбиться с курса, именно для
  432. того, чтобы реализовать задачу, которую я только что понял, что нужно
  433. было сделать ранее, а именно - добиться поддержки LZ4 сжатия, и чтения
  434. сжатых файлов прямо из LRF. Уже реально пора, это поможет потом вовремя
  435. не наступить на грабли. Заодно нужно подумать про то, как бы это так
  436. хитро распаковывать из LZ4, особенно не выделяя много памяти. В принципе,
  437. есть чит вариант с видеопамятью, но он не особенно приемлем.
  438. Работа над кодом на этом я и закончил в тот день. Съездил на работу,
  439. после чего заехал к Женьке и традиционно выжрал литр вина да литр сидру.
  440. Хорошо было)
  441. Как вернулся, полетали с Волки в Тундру, как понимаю, это типичное мое
  442. пятничное времяпрепровождение :)
  443. 19 Марта, 2015:
  444. Повторилась история со сном во вторник. Лег почти в четверг утром, проснулся
  445. аж в тяпницу в 2 ночи. Вот и пишу спустя два часа, как закончил с
  446. интернетами. Думаю смачно так покодить, да и желание просто прет. Еще бы,
  447. так много времени прошло, как не кодил. Да и следует успевать, ибо вообще
  448. в идеале мне бы закончить работу над основной частью движка к началу апреля.
  449. Когда он у меня уже будет - будет самое время заняться поиском художников
  450. для анимации. Ибо, боюсь, саму анимацию я не найду в нужном мне ракурсе.
  451. Хотя, конечно, прежде всего следует поискать именно анимацию, есть
  452. возможность, что она как раз найдется. Ну и поскольку уже 20 марта, то
  453. переберусь в новый день.
  454. 18 Марта, 2015:
  455. Лишь немного поиграл в Тундру по раннему утру, просрав оставшееся время на
  456. интернеты. Та еще радость. Утром вышел на работу, проделал все довольно
  457. неплохо. Вернулся, еще тупил в интернете. Вообще успех.
  458. 17 Марта, 2015:
  459. Лег спать довольно рано, но целых часа 4 дочитывал последнюю книгу о
  460. Гарри Поттере. Тем более, ее-то я прочитал всего один раз. Ну, финал
  461. приятный. Отрубился где-то к семи утра, если не позже, продрых весь вторник,
  462. на работу было решено забить от слова совсем. Проснулся вообще в 2 ночи
  463. среды.
  464. 16 Марта, 2015:
  465. Вышел на работу довольно рано, быстренько отработал, вернулся, да сидел,
  466. болтал с Волки, пробовал новое управление в тундре, которое установил.
  467. Действительно, нагибать стало проще с поднятой чувствительностью мыши.
  468. Теперь мышь не нужно елозить через пол стола. Удивительное рядом.
  469. 15 Марта, 2015:
  470. Плавно настали новые сутки, и я все же победил баг с чтением подфайлов.
  471. Итого уже можно ставить две галки. Теперь следует ознакомиться с
  472. остальными поставленными ранее задачами, и доработать их.
  473. Что же, внезапно неплохо поработал - в частности, закончил функции обработки
  474. ошибок и подстановок в строки. Теперь я могу пользоваться примерно таким же
  475. сервисом, какой есть у стандартной функции printf.
  476. 14 Марта, 2015:
  477. Проснулся аж в 9 часов вечера. Проспал 12 часов то есть. Решил не начинать
  478. день с распиздяйства, к тому же, мне действительно нужно писать код,
  479. если я хочу к началу апреля закончить работы над графической составляющей
  480. игры.
  481. 13 Марта, 2015:
  482. Проснулся поздновато, да сразу поехал к Женьке, взял винца и сидра и с
  483. большим удовольствим все это дело у него и выпил. Поболтали, немного
  484. прояснили планы на предстоящие конвенты - Everycon и РуБрониКон.
  485. Затем к часам одиннадцати я вернулся домой, и, учитывая свое состояние,
  486. мало способствующее кодингу, пошел играть с Волком в тундру. У Волкопни
  487. под конец бомбануло оттого, что у него плохо выходит летать на американцах
  488. в аркаде. Волчок покинул меня, а я еще пару часов погонял со средними
  489. результатами, да в часов 7 утра пошел спать. Гарри Поттера еще почитал,
  490. перечитываю ведь, уже на половине седьмого тома, который, кстати, прочитал
  491. единственный раз да и очень давно. Фактически читается так, словно я и не
  492. читал его вовсе.
  493. 12 Марта, 2015:
  494. Проснулся довольно поздно, быстро сделал пару магазинчиков, да вернулся
  495. домой, чтобы встречать монитор. Он не задержался, и не подвел, очень
  496. доволен оказался покупкой. Также, устроил себе двумониторную систему,
  497. чем весьма доволен. Толку продавать старый понитор, если он уйдет за
  498. копейки? Почистил его нормально, да установил вместе с новым. Заодно
  499. пришлось перепланировать расположение вещей на столе. Теперь системный
  500. блок переехал на левый край стола, чтобы уступить место клавиатуре и
  501. мониторам. В общем-то, на распихивание стаффа и тесты монитора у меня
  502. весь день и часть ночи нового дня и ушли.
  503. 11 Марта, 2015:
  504. Начало суток ознаменовалось релизом бас-альбома Пети, также известного как
  505. SDreamExplorerS. С удовольствием послушал, и просто залип в его творчестве.
  506. Пока не прослушал весь альбом, не занимался вообще ничем. Это довольно странное
  507. для меня состояние, кстати, ибо обычно музыка, даже хорошая, играет у меня фоном
  508. к какой-либо деятельности. Что как раз намекает на то, что Петя сделал все более,
  509. чем правильно.
  510. Итак, после всего взялся за кодинг, повыбрасывал говно, которое было сделано
  511. 8-го марта, количество кода при этом сократилось, а функциональность осталась
  512. прежней :)
  513. Баг пока не спойман, займусь этим сейчас. Пока еще только половина третьего
  514. ночи, можно и покодить маленько. Тем более, хочется хоть где-то поставить
  515. заветную галочку.
  516. ***
  517. Стоило мне не вести дневник разработки 3 дня, как я уже стал забывать, что
  518. происходило в это время. Справедливости ради, разработку как таковую все
  519. это время я тоже не вел. Теперь бы еще вспомнить, что происходило в вечер
  520. среды. Слава пони, пятницу я помню. Ах да. Вернувшись с работы, сел сычевать
  521. в интернетах, заодно таки заказал себе FullHD монитор. Еще месяц назад мог
  522. это сделать, но что-то все откладывал да откладывал на потом.
  523. 10 Марта, 2015:
  524. Ну, вот конкретно за этот день мне стыдно. Банально из-за того, что проснулся
  525. я не поздно, с работы вернулся тоже довольно рано, и кодить сел только уже
  526. фактически к часу ночи среды, то есть, 11-го марта. Ну а так, в течении дня
  527. разобрался с магазинчиком на Немиге, получил зарплату (по ходу Николаевич
  528. таки решил потиху отдавать долг), накупил вкуснях, да чатился с Волкопони,
  529. поедая вкусняшки и посматривая видео по Тундре.
  530. 9 Марта, 2015:
  531. ...И проснулся к утру понедельника. Поскакал сначала на работу, а оттуда уже к
  532. Женьке, ибо обещал свозить его на сходку пони-организаторов стенда на Everycon.
  533. Прибыли туда, поболтали с понями, я еще поразился довольно таки приятным ценам
  534. в местной кафешке (действо происходило в здании кинотеатра), где с удовольствием
  535. взял 3 пива и был доволен. Решили с ребятами вопросы, после чего пошли с Женей
  536. смотреть кино, он давно хотел. Там как раз крутили фильм про робота Чаппи.
  537. Трешак просто лютый, но в принципе, посмотреть разок можно, во всяком случае,
  538. фильм даже без попкорна (пусть и с колой) заходил легко и непринужденно.
  539. Вернулся поздно вечером, было особенно не до кода, лег спать.
  540. 8 Марта, 2015:
  541. Итак, день новые, задачи те же.
  542. Посмотрим...
  543. А получилось так. LRF-слой я успешно прописал, наплодив при этом тучу совершенно,
  544. как я потом понял, не нужных функций. В итоге, оно-то работало, но столкнулся с
  545. багом, то есть, работало не совсем так, как я ожидал. Решил, что в сонном состоянии
  546. продолжать работу не особенно хорошо, и пошел спать. Спал аж 16 часов.
  547. 7 Марта, 2015:
  548. Поработал довольно неплохо. Ну, фактически, эти строки я пишу (что частенько делаю)
  549. уже днем позже, а именно вообще аж в пол седьмого утра 8-го марта. День кобылок, уи)
  550. Кодил ночь и начало утра, теперь плагин сам проставляет время завершения той или
  551. иной задачи, так что видно, когда и что было запилено. Если вкраце - запилил
  552. почти всю работу с LRF. Осталось сделать чтение строк, и можно браться за
  553. общий интерфейс. Который-то ведь тоже, в принципе, готов, только нужно прописать
  554. ветки, отвечающие за LRF.
  555. Перед тем, как отбрыкнулся, узнал, что в War Thunder намечается акция с получением
  556. кобры Покрышкина. За выходные требуется настрелять 90 фрагов, чтобы ее сделать.
  557. Проснулся где-то в часов 5 дня, почитал интернеты, потупил, сделал пару боев в
  558. тундре, да решил, что все же устрою себе задрот-марафон в тундру в честь такого
  559. сочного события. Ну и неплохов вышло, в 11 вечера начал продолжать. В пол шестого
  560. утра, через боев 17 примерно получил кобру. День прожит не зря (а если разобраться,
  561. то все таки более зря, чем нежели если я писал бы код). Но и то добро, теперь у
  562. меня есть кобра и приятно оттого, что таки смог. То есть, сейчас уже аж 8-го марта,
  563. половина восьмого утра. Думаю плавно перебраться в новый день, и, быть может,
  564. что-то полезное для игры и сделать.
  565.  
  566. 6 Марта, 2015:
  567. Проснулся в 3 дня. На работу не поехал, думаю, доберу в один из выходных хвост.
  568. Вернулся домой где-то в часов 7 вечера, слил время в интернетах до 11 вечера.
  569. Поставил на Sublime Text плагин PlainTasks, буду теперь вести запил TODO-списка
  570. и дневника разработки в нем, ибо сворачивание и галочки, свистоперделочки, красота.
  571. Ну и технически день вот вот закончится, буквально через минутку, так что резюмируя,
  572. можно сказать, что просрал целых 2 дня, не делая ничего. Перейду на новый день
  573. и поработаю, надеюсь, на славу.
  574. 5 Марта, 2015:
  575. Проснулся довольно поздно, метнулся на работу, а затем поехал к Женьке. Выжрал литр
  576. винища, запил все это дело сидром, да зарубился в Тундру (причем, достаточно успешно),
  577. пока Женька пытался заснуть. Короче, проигрался очень здорово. Разумеется, никакого
  578. прогресса не было, сложно что-то делать, когда ты не дома)
  579. 4 Марта, 2015:
  580. Сделано:
  581. [*] - Открытие LRF
  582. [*] - Поиск подфайла (+открытие)
  583.  
  584. Также, весьма конкретно причесан код, добавлена функция UpperCase.
  585. Сделал бы и больше, если бы не потратил много времени на код, который потом
  586. все же додумался не использовать. Воспользуюсь старым упаковщиком, его
  587. вполне достаточно, на самом деле, смысла переписывать реально можно считать
  588. нет. Тем более, времени у меня тоже не особо и много. Так что осталось
  589. наладить буквально работу с LRF из прослоек, и все будет готово.
  590. 3 Марта, 2015:
  591. [*] Склеивание строк. [Допилено]
  592.  
  593. На работе все довольно неплохо было, ну, то есть, я проснулся, и потиху
  594. на нее поскакал. Вернулся, потупил в интернете, и таки немного покодил.
  595. В частности, допилил функцию AppendStr так, чтобы она принимала несколько
  596. параметров одновременно. Это позволило больше не заниматься BDSM-ом, вызывая
  597. для склейки 7-ми разных строк 7 раз старую AppendStr, а совершив один точный
  598. вызов. Отличное приобретение.
  599. Увы, убеждаюсь, что по будням моя продуктивность достаточно мала.
  600. А сейчас и вовсе 4-го марта, 4.41 на часах. Пора снова кверху копытами делать.
  601. Завтра кое-какая работа, и, я очень надеюсь, что весьма конкретный код,
  602. сделанный, разумеется.
  603. В принципе, по коду - следует немного расширить функционал работы с ошибками,
  604. а затем обязательно допилить LRF-модуль. Пока последние 2 галки по файлам и
  605. ошибкам не поставлю, браться за что-либо другое бессмысленно.
  606. Радует, что экономия по объему кода, сравнительно с программой на паскале,
  607. обладающей теми же способностями, действительно есть, и она даже двукратная.
  608. А каждый сэкономленный байт кода - это свободный байт для данных.
  609. 2 Марта, 2015 года:
  610. Сделано и протестировано:
  611. [*] Загрузка сообщений об ошибках из файла.
  612. [*] Снабдить весь существующий код вызовами функций LErrors где нужно.
  613.  
  614. Теперь задача - запилить работу с LRF, и если все пойдет как по маслу,
  615. далее работа с файлами будет весьма простой и приятной на протяжении
  616. всего проекта.
  617.  
  618. Будучи довольным и весьма усталым, я все же дотянул до утра, чтобы быстренько
  619. сходить на работу, вернуться, немного потупить в интернете (Элди позвал на
  620. стрим, на котором рисовал сочный арт для РБК), да лечь спать.
  621. Отрубился аж на 15 часов. Хорошо поспал, в общем-то, приятно, сочно так.
  622. Проснулся уже аж 3-го марта, потому есть смысл расписать некоторые подвиги
  623. и за следующий день.
  624. 1 Марта, 2015 года:
  625. Сделано и протестировано:
  626. [*] Доделать требуемые по ходу работы функции работы со строками.
  627. [*] Сравнение строк.
  628. [*] Склеивание строк.
  629. [*] Нахождение подстроки.
  630. [*] Реализовать функции-залушки для упомянутого выше подхода,
  631. предварительно продумав архитектуру.
  632.  
  633. Итак, фронт работ на сегодня - это допиливание строковых функций. Далее,
  634. по хорошему все же следует браться именно за файлы, а не за ошибки. Сообщения
  635. об ошибках строятся на файлах, и в этом есть логика.
  636. Сейчас отлаживаю функцию склеивания строк. Поведение довольно странное.
  637. Подозреваю, оптимизатор шалит, либо же я не совсем понимаю логику его работы.
  638. Например, все работает не как положено, но стоит в код прописать int 03
  639. для вызова отладчика - как тут же работа становится верной.
  640. Нашел на мысль, что проблема может быть в том, что я как обычно невнимательно
  641. указал компилятору, какие регистры модифицируют те или иные мной вызываемые
  642. ассемблерные функции. Пойду проверю.
  643. Проблему обнаружил сразу же. Ну конечно. Для двух функций забыл указать
  644. модифицируемые ими регистры. Проблема решена. Впредь следует быть максимально
  645. внимательным по этому вопросу, тем более, таких функций планируется еще тьма.
  646.  
  647. Прошло время, перепилил макрос, объявляющий локальные буферы, также включил
  648. таки в компиляторе совместимость со стандартом C99. 16 лет прошло с момента
  649. его появления, полагаю, он уже достаточно труЪ, чтобы его можно было включить)
  650. И теперь я могу объявлять переменные, где пожелаю. Приятно)
  651.  
  652. Кстати, по моему, линковщик тупит, и впихивает в итоговый файл вообще все
  653. сишные функции, без разницы, вызываются они, или нет. Нужно будет потом
  654. проверить это.
  655.  
  656. Резюмируя - сегодня в ночь поработал неплохо. В идеале, до понедельника
  657. сделать бы, наконец, работу с файлами.
  658.  
  659. И снова здравствуйте, мы продолжаем. Сейчас работаю над общим интерфейсом
  660. для работы с файлами. Пока вроде выходит, разве что до сих пор размышляю,
  661. а не перекроить ли его на указатели для функций. С одной стороны, выгода
  662. будет в уменьшении объема дублируемого кода, но в удобстве вызова потеряется.
  663.  
  664. Под вечер я некисло разошелся, за часа 4 неплохо продвинувшись в запиле.
  665. Код писался так, словно я был вдохновлен, быстро и качественно.
  666. В частности, снова изменил локальные буферы, теперь они также хранят и
  667. сигнатуру своей целостности, и есть функция, которая сразу буфер проверяет,
  668. а не NULL ли он, не битый ли, и вообще с того ли района.
  669. Также написал кусок высокоуровневой прослойки для работы с файлами.
  670. Перемещаюсь на запись от второго марта, ибо технически сей день уже начался.
  671. 28 Февраля, 2015 года:
  672. Ну вот. Особо покодить в последний час вчерашнего уже дня не вышло - интернет
  673. съел это намерение. Ну ничего, уже 3 ночи, и кое что определенно написано.
  674. Общий итог подведу тогда, когда решу, что следует отправляться спать.
  675.  
  676. Итого сделано и протестировано:
  677. [*] Доработать функции работы с памятью. Перемещение и филл.
  678. [*] Определение типа процессора, чтобы можно было вызывать MoveMem
  679. и FreeMem по указателю на общую функцию.
  680.  
  681. Также убрал довольно критичный баг в функии вывода строки, который,
  682. обыкновенно, при всей его критичности, запалился совсем нескоро :)
  683.  
  684. Проснулся аж в 6 вечера. Приехал дядька, попросил почистить его ноутбук от
  685. говнеца. Почистил. Заодно по его просьбе сменил ему размеры разделов на
  686. диске. Подумал, надо бы и самому себе после покупки SSD объединить старый
  687. системный раздел с основным для данных, раз уж теперь система у меня стоит
  688. прямо на SSD. Решил воспользоваться акронисом, последний раз он меня выручал
  689. где-то с лет 6 назад, вот по доброй памяти. И сасай лалка, через два часа
  690. объединения он умудрился начать все по новой в третий раз, так и не преодолев
  691. отметку в "Сделано 10%". Терпение у меня лопнуло (много было нелестного
  692. подумано про создателей этой замечательной программы, вкупе с гуглением
  693. по вопросу). Решил рискнуть и прервать нафиг. К счастью, файлы потеряны
  694. не были, но осадочек все равно остался. В конечном итоге добился цели,
  695. правда пойдя не через функцию Merge, а через удаление старого раздела и
  696. присоединение нового. Но на этом эпопея не завершилась - загрузочные файлы-то
  697. у меня остались на том самом разделе, который я удалил. Еще 40 минут на
  698. создание загрузочной флешки и восстановление всего, как было. Ну, теперь это
  699. в прошлом. 2.51 сейчас, весна официально наступила. Пожалуй, следует
  700. перебраться в новый блок, за первый день марта-то.
  701. 27 Февраля, 2015 года:
  702. Пожалуй, довольно забавно будет использовать этот файл в качестве
  703. своеобразного дневника, причем, не только разработки. Если будет такое
  704. желание, то буду периодически делать записи и о чем-то просто так, особенно
  705. на тему того, как у меня прошел день :)
  706. Проснулся сегодня в 3 дня. Поехал на работу, почти нифига не сделал, вернулся.
  707. Взял пивка да рыбки, посычевал вместе с ними за монитором, сделал себе чистого
  708. поня, вот, думаю, пора покодить, а то до конца суток меньше часа осталось :)
  709. Впрочем, впереди выходные, надеюсь, за них удастся наверстать упущенное. Хотя,
  710. в субботу все равно есть план съездить на тусовку броней с Женькой. Посмотрим.
  711. 26 Февраля, 2015:
  712. Весь день я сначала работал, а потом бухал, дома вообще не появился на ночь.
  713. Так что, ясное дело, прогресса никакого быть не могло.
  714. 25 Февраля, 2015:
  715. Сделано и протестировано:
  716. [*] Двоичная запись
  717. [*] Чтение и запись строк текста.
  718. [*] Удаление файла.
  719. [*] позиционирование
  720. [*] позиция указателя в файле.
  721. [*] размер файла
  722. [*] определить константы ошибок работы с файлами.
  723. [*] Создание файла.
  724. [*] Привести в порядок комментарии к коду по всему проекту.
  725. [*] Совместимые с wSizeOfBuf локальные буферы.
  726. Ну, что же, неплохо. Заодно покажу копипасту с чудо-кошмаром, который мне
  727. приснился ранним утром этого дня.
  728. "Ты мне снился только что. И это был сорт оф кошмар.
  729. Такой, из детских.
  730. Начало не помню, да и начало было норм.
  731. Короче, сидим мы у тебя в комнате, о чем-то болтаем. Я замечаю, что у тебя
  732. закончилась кола. Но потом замечаю в комнате часть бутылки, где-то две трети.
  733. В том то и дело, что ты превратился резко в кошмарика.
  734. В это же время я через окно замечаю, что за окном падает часть дома напротив.
  735. Рушится просил.
  736. *просто.
  737. Кричу тебе - мол давай на выход. Показалось, сейчас и наш развалится.
  738. Но не валится, вроде все путем. Побежали с тобой на кухню в окно смотреть.
  739. Ты адски резво запрыгнул на подоконник, а потом вообще сел на нижнюю секцию
  740. окна жопой, чтобы остальная твоя половина выглядывала из окна
  741. Ну и я рядом, -удивившись- твоей резвости, начал смотреть.
  742. А обломки дома исчезли. Словно и не было ничего.
  743. Словно рухнул не дом, а что-то очень маленькое.
  744. Ты мне сказал - посмотри дальше. Смотрю - а там картина маслом - один
  745. экскаватор каким-то образом поднимает второй, второй-третий, третий-четвертый.
  746. Они словно тянутся к чему-то, что могут достать только вместе.
  747. И один экскаватор махает ковшом прямо в метре от нашей форточки.
  748. Я понимаю, что что-то тут не то. Внезапно, ковш этой штуки резко залетает
  749. в форточку, на пути превращаясь в цепкую худую руку, которая хватает меня
  750. за запястье и очень сильно сжимает.
  751. Странно. Мне очень страшно. Сначало я понимаю, что оно что-то с тобой сделало,
  752. а потом понимаю, что вообще тебя в окне больше нет, ты исчез.
  753. Оно меня отпускает. А я по прежнему тяну руку за окно. Оно начинает залазить.
  754. Это человек. В белой байке, с очень цепкой хваткой руки с тонкими пальцами.
  755. Он показывает мне свою голову, и сейчас я могу сказать, что она похожа на
  756. голову дементора из Гарри Поттера. Мне страшно, но при этом я проявляю
  757. агрессию к этому незнакомцу, не хочу отпускать его. Я кричал ему "иди же,
  758. иди сюда, сука", а потом проснулся. С поднятой вверх рукой и этими
  759. словами на губах.
  760. Давно такого дерьма не было. Жуть.
  761. Последние кадры еще были эпичны тем, что этот чувак со своей головой со ртом
  762. на пол ебала еще где-то с секунду плавно растворялся на фоне потолка моей
  763. комнаты - то есть реальности. Как раз на пограничном состоянии между сном и
  764. реальностью.
  765. Спал, конечно, на спине. Я бы сказал, что это сонный паралич, ибо симптом
  766. совпадает, но меня, вроде бы, не душили. Дышал я свободно. Только за руку
  767. схватили. Левую, кстати.
  768. Я тут выспаться хотел. Ну и как после всего этого заснешь?... :)
  769. Приятных снов тебе, если что.
  770. Ну и постарайся не прыгать на подоконники, а то потом какая-то хуита
  771. происходит."
  772. Такие дела. С того сна я действительно неплохо прибалдел. Сейчас как раз
  773. ложиться спать пора бы, и думается мне что-то вроде "Ну, крести свою жопу,
  774. белая байка, я иду".
  775. 24 Февраля, 2015:
  776. 1. Написал первые функции для работы с файлами: открытие, чтение, закрытие.
  777. 2. Целых 3 самые важные функции для работы с памятью готовы: выделение,
  778. размер буфера и освобождение памяти. Вроде, там что-то еще было, следует
  779. посмотреть внимательно на тот же LMEM.PAS из LGL 2.0
  780. 3. Исправлен злобный баг с кривым размещением сегментов. Больше я его не
  781. встречу, чему и рад, ибо кто знает, сколько бы он мне крови успел
  782. попортить.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement