Educational program - FULL DESCRIPTION + FULL ROM DISASSEMBLER TR-DOS 5.04T (5.03).

──────────────────────────────────────────
                ЛИКБЕЗ
──────────────────────────────────────────

  (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