City
#15
14 июня 1999 |
|
Ликбез - ПОЛHОЕ ОПИСАHИЕ+ ПОЛHЫЙ ДИЗАССЕМБЛЕP ПЗУ TR-DOS 5.04T (5.03).
────────────────────────────────────────── ЛИКБЕЗ ────────────────────────────────────────── (c) П.Ю.Федин ╔════════════════════════════════════════╗ ║ ║ ║ПОЛНОЕ ОПИСАНИЕ+ ПОЛНЫЙ ДИЗАССЕМБЛЕР ПЗУ║ ║ ║ ║ TR-DOS 5.04T (5.03) ║ ║ ║ ║ ДЛЯ ПРОФЕССИОНАЛОВ, ║ ║ ║ ║ А ТАКЖЕ ДЛЯ ТЕХ, ║ ║ ║ ║ КТО ХОЧЕТ ИМИ СТАТЬ. ║ ║ ║ ╚════════════════════════════════════════╝ продолжение Адрес 298. Обработка номера строки авто- старта программы на бейсике. Установите 23824 и загрузите программу. 298 CALL 8421 ;изменение памяти и ;удаление буфера CALL 7575 ;очистка экрана Ох, как меня это бесит, если одна програм- ма на бейсике грузит заставку, а затем другую программу на бейсике. LD HL,(23641);берем адрес, по кото- ;рому находится номер INC HL ;строки автозапуска ;программы LD E,(HL) ;берем этот номер INC HL LD D,(HL) LD A,D ;это 0 ? OR E EX DE,HL ;переброска его в HL JR Z,320 ;если это не 0, то про- ;грамму запускать XOR A LD (23824),A 320 PUSH HL ;сохранение номера ;строки автостарта CALL 562 ;восстановление старого ;адреса подпрограммы ;обработки ошибок POP HL ;восстановление номера ;строки автостарта LD (23618),HL;установка его XOR A ;строку запускать с пе- ;рвого оператора LD (23620),A RST 32 ;очистка рабочей обла- ;сти памяти, стека ка- ;лькулятора и буфера ;редактора DEFW #16B0 LD HL,(23635);выполнение RESTORE DEC HL LD (23639),HL LD SP,(23613);очистка стека LD A,(23824) ;программу запускать ? OR A LD HL,7030 ;адрес подпрограммы вы- ;полнения программы на ;бейсике JR Z,358 ;если можно, то запуск ;программы RST 32 ;сообщение O.K. DEFW #1BBO 358 PUSH HL ;помещение на стек ад- ;реса подпрограммы вы- ;полнения программы ;на бейсике LD HL,23746 ;помещение на стек ад- ;реса переключателя ПЗУ ;на бейсик PUSH HL RET ;переход к подпрограм- ;ме выполнения програм- ;мы на бейсике ────────────────────────────────────────── Адрес 364. То же, что и 15642, но не соз- дает системные переменные. 364 CALL 8433 ;изменение памяти CALL 10570 ;создание буфера LD A,255 ;сообщения не печатать LD (23829),A XOR A ;обнуление 23799 LD (23799),A LD A,170 ;заставку не выводить LD (23831),A LD HL,513 ;возвращаться в бейсик LD (23834),HL LD HL,0 ;сохранение SP ADD HL,SP LD (23836),HL DEC HL ;выделение места для ;адреса подпрограммы DEC HL ;обработки ошибок LD SP,HL CALL 541 ;установка адреса под- ;программы обработки ;ошибок LD HL,(23730);командная строка нахо- ;дится выше RAMTOP ? LD DE,(23645) SBC HL,DE EX DE,HL JR NC,421 ;если да, то при выде- ;лении буфера она не OR A ;перемещалась LD DE,257 SBC HL,DE 421 LD (23645),HL 424 CALL 455 ;следующий символ стро- ;ки ENTER ? 427 JP Z,467 ;если да, то завершение CP 234 ;это REM ? INC HL ;следующий символ JR NZ,424 ;если нет, то следующий ;символ CALL 455 ;следующий символ стро- ;ки ENTER ? JR Z,427 ;если да, то завершение CP ":" ;это двоеточие ? JP NZ,467 ;если нет, то возврат INC HL ;следующий символ CALL 12360 ;сжатие строки JP 778 ;выполнение команды продолжение следует ...
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября