──────────────────────────────────────────
ЛИКБЕЗ
──────────────────────────────────────────
(c) П.Ю.Федин
╔════════════════════════════════════════╗
║ ║
║ПОЛНОЕ ОПИСАНИЕ+ ПОЛНЫЙ ДИЗАССЕМБЛЕР ПЗУ║
║ ║
║ TR-DOS 5.04T (5.03) ║
║ ║
║ ДЛЯ ПРОФЕССИОНАЛОВ, ║
║ ║
║ А ТАКЖЕ ДЛЯ ТЕХ, ║
║ ║
║ КТО ХОЧЕТ ИМИ СТАТЬ. ║
║ ║
╚════════════════════════════════════════╝
продолжение
Адрес 298. Обработка номера строки авто-
start the program in BASIC. Install
23824 and download the program.
298 CALL 8421 ;memory change and
;deleting a buffer
CALL 7575 ;screen clearing
Oh, how it infuriates me, if one program
ma in BASIC loads the screensaver, and then
another program in BASIC.
LD HL,(23641);take the address at which
;Roma is the number
INC HL ;autorun lines
;programs
LD E,(HL) ; take this number
INC HL
LD D,(HL)
LD A,D ;is this 0?
OR E
EX DE,HL ; transferring it to HL
JR Z,320 ;if this is not 0, thenpro-
;run the gram
XOR A
LD (23824),A
320 PUSH HL ;save number
;autostart lines
CALL 562 ;restoring the old
;subroutine addresses
;error handling
POP HL ;number recovery
;autostart lines
LD (23618),HL;installing it
XOR A ; start the line from the first
;first operator
LD (23620),A
RST 32 ;cleaning the workspace
;stimemory, stack
;lculator and buffer
;editor
DEFW #16B0
LD HL,(23635);executing RESTORE
DEC HL
LD (23639),HL
LD SP,(23613);stack clearing
LD A,(23824) ; should you launch the program?
OR A
LD HL,7030 ;the address of the subroutine is
;completing the program on
;basic
JR Z,358 ;if possible, then launch
;programs
RST 32 ;O.K. message.
DEFW #1BBO
358 PUSH HL ;placed on ad stack
;res subroutines you-;completing the program
;in BASIC
LD HL,23746 ;placed on ad stack
;Res of ROM switch
;in BASIC
PUSH HL
RET ;go to subroutine
;during program execution
;we're in BASIC
────────────── ────────────────────────────
Address 364. Same as 15642, but not created
gives system variables.
364 CALL 8433 ;memory change
CALL 10570 ;buffer creation
LD A,255 ; do not print messages
LD (23829),A
XOR A ;zeroing 23799
LD (23799),A
LD A,170 ;do not display splash screen
LD (23831),A
LD HL,513 ;return to BASIC
LD (23834),HL
LD HL,0 ;SP saving
ADD HL,SP
LD (23836),HL
DEC HL ;allocation of space for
;subroutine addresses
DEC HL ;error handling
LD SP,HL
CALL 541 ;setting the address
;processing programs
;errors
LD HL,(23730);command line is found
;is higher than RAMTOP?
LD DE,(23645)
SBC HL,DE
EX DE,HL
JR NC,421 ; if yes, then when selecting
;it does not remove the buffer
OR A ;moved
LD DE,257
SBC HL,DE
421 LD (23645),HL
424 CALL 455 ;the next character is
;ki ENTER ?
427 JP Z,467 ;if yes, then completion
CP 234 ;is this REM?
INC HL ;next character
JR NZ,424 ;if not, then the next one
;symbol
CALL 455 ;the next character is
;ki ENTER ?
JR Z,427 ;if yes, then completion
CP ":" ;is this a colon?
JP NZ,467 ;if not, then return
INC HL ;next character
CALL 12360 ;line compression
JP 778 ;command execution
to be continued...
Share your thoughts about the article