6.4. Программа HEX ввода.
Программа HEX ввода, дополненная подсчетом контрольной
суммы, приведена ниже. На вопрос "Prefix" введите адрес па-
мяти, где будут располагаться вводимые байты программы.
10 REM Program HEX input +
20 CLEAR 32767: PRINT AT 5,10;"H E X input +"
30 POKE 23658,8: DIM W$(4) : DIM A$(2)
40 PRINT : PRINT TAB 14;"***"
50 PRINT " Use ENTER to step forward"
60 PRINT " Use U 4 ENTER to step backwards"
70 PRINT " Use S 4 ENTER to SAVE code"
80 PRINT " Use N & ENTER to jump new addr."
90 PRINT : PRINT "Adr. ---------Data-------- KS": PRINT
100 INPUT " Input prefix-XXXX ";W$: GO' SUB 400
LET P=T
110 IF P/80INT (P/8) THEN GO TO 100
120 IF P<0 THEN GO TO 100
130 INRUT " Input start address-XXXX";W$: GO SUB 400
LET D=T: LET N=0
140 IF D/80INT (D/8) THEN GO TO 130
150 IF D<0 THEN GO TO 130
160 DEF FN A(AS,B)=CODE AS(B)-48-7*(CODE A$(B)>57)
170 DEF FN C(A$)=16*FN A(A$,1)+FN A(A$,2)
180 DEF FN G$(F)=CHR$ (F+4 8+7*(F>9))
190 DEF FN H$(E)=FN G$(INT (E/16))+FN G$(E-16*INT (E/16))
210 IF D/8=INT (D/8) THEN PRINT FN H$(INT (D/256));FN
HS(D-256*INT (D/256));
220 INPUT A$
230 LET L=1
240 IF A$(1) = "U" THEN LET L=-l: LET N=N-1: GO TO 500
250 IF A$(1)="S" THEN GO TO 350
260 IF AS(1)="N" THEN PRINT : GO TO 130
300 IF AS(1)<>CHR$ 32 THEN POKE (D+P),FN C(A$)
305 LET N=N+1
310 PRINT TAB (2+L*N*3);FN H$(PEEK (D+P));
320 IF (D+1)/8=INT ((D+l)/8) THEN GO SUB 1000: LET N=0
330 LET D=D+L: GO TO 210
350 PRINT AT 20,0;" ": PRINT AT 20,
SAVE ";CHRS 34;: INPUT " Input name program ";N$:
PRINT N$;CHRS 3 4;"CODE ";
360 INPUT "Input start address program-XXXX";W$: GO SUB 400
LET B-T+P: PRINT B;",";
370 INPUT " Input end address program-XXXX";W$: GO SUB 400
LET L-T+l+P: PRINT L-B
380 SAVE NSCODE В,L-B: CLS : PRINT FLASH 1;AT 17,16;"END"
PRINT AT 21,3;"For continue press any key": PAUSE 0:
CLS : GO TO 40
400 LET T=0
410 FOR Y=1 TO 4
420 LET T-T+16t(4-Y)*(CODE W$(Y)-48-7*(CODE W$(Y)>57))
430 NEXT Y
4 40 RETURN
500 IF N<0 THEN PRINT : GO TO 130
510 IF N=0 THEN PRINT : GO TO 330
520 GO TO 330
1000 LET C-D-7
1010 LET KS=INT (C/256)+C-256*INT (C/256)
1020 FOR X=C TO D
1030 LET KS=KS+PEEK (X+P)
1040 IF KS>255 THEN LET KS=KS-256
1050 NEXT X
1060 PRINT " ":FN H$(KS);
1070 RETURN
;Л99 SAVE "HEX input +" LINE 10
6.5. Краткий перечень коиаид TR-DOS.
Команда Действие команды
•"А:" установка по умолчанию дисковода А
*"В:М то же, дисковода В
*"с:" то же, дисковода С
*"D:" то же, дисковода D
40 переключение в 40-дорожечный режим
80 то же, 80 дорожек
CAT вывод каталога иа экран
САТ# то же, иа принтер
CL0SE# закрыть файл последовательного/прямого доступа
СОРУ копирование файла с одногд дисковода на другой
Команда Действие команды
СОРУ а копирование файлов в системе с однии дисководом
СОРУ Ь снятие полной копии диска в системе с одним дис-
ководом
ERASE стирание файла с диска
LIST вывод оглевлеиия на экран
LIST! то же, на принтер
LOAD загрузить программу с диска
INPUTS произвести считывание из файла последовательно-
го/пряиого доступа
MERGE выполнить слияние програмиы с диска и программы,
содержащейся в ОЗУ
MOVE систематизировать и уплотнить програииы на диске
NEW изменение имени существующего файла
OPEN! открыть поток для файла последовательного/пряно-
го доступа
РЕЕК прочитать сектор файла с диска в ОЗУ
РОКЕ записать данные из ОЗУ в сектор файла
PRINT! запись файла с последовательным/пряный доступом
RANDOMIZE USR 15616
переход из SOS в TR-DOS
RANDOMIZE USR 15619
вызов команд tr-dos из sos
return возврат в sos из tr-dos
run загрузить н запустить програиму с диска
save записать программу на диск
VERIFY проверить правильность записи програмиы на диск
Например: СОРУ'нов.имя","стар.иия"тип(...CODE/DATA)
SAVE"hh*"thn, LOAD"иия"тип RUN"иия"тип