Я как-то попробовал, ничего не получилось. Вот это:
На Амиге пашет как танк.Код:/* SCLView */ parse arg scl if scl='?' then do options prompt 'FILE/A: ' parse pull scl end if scl='' then do say 'required argument missing' say 'No file to view' exit end scl=strip(scl,,' "') if ~open(file,scl,'R') then do say 'No file to view' exit end if readch(file,8)~='SINCLAIR' then do say 'File is not SCL format' exit end say 'SCLView (R) View Utility Version 1.0 03-Dec-2000' say ' (c) 2000 Alex Kovrigin, 2:5000/28.19' say say 'Name Start Length Sector' say '---------- ----- ------ ------' do c2d(readch(file)) say readch(file,8) readch(file)||right(c2d(reverse(readch(file,2))),7)||right(c2d(reverse(readch(file,2))),8)||right(c2d(readch(file)),8) end
Или так:
Код:/* TAPView */ PARSE ARG TAPFILE IF TAPFILE='?' THEN DO OPTIONS PROMPT 'FILE/A: ' PARSE PULL TAPFILE END IF TAPFILE='' THEN DO SAY 'required argument missing' SAY 'No file to view' EXIT END TAPFILE=STRIP(TAPFILE,,' "') IF ~OPEN(FILE,TAPFILE,'R') THEN DO SAY 'No file to view' EXIT END FILELENGTH=SEEK(FILE,0,'E') SEEK(FILE,0,'B') SAY 'TAPView (R) View Utility Version 1.0 10-Dec-2000' SAY ' (c) 2000 Alex Kovrigin, 2:5000/28.19' SAY SAY 'Type Name Length Start Size' SAY '--------------- ---------- ------ ----- -----' LOOP: BLOCKLENGTH=C2D(REVERSE(READCH(FILE,2)))-2 FLAG=C2D(READCH(FILE,1)) IF FLAG=0&BLOCKLENGTH=17 THEN DO TYPE=C2D(READCH(FILE,1)) SELECT WHEN TYPE=0 THEN TYPE='Programm' WHEN TYPE=1 THEN TYPE='Number Array' WHEN TYPE=2 THEN TYPE='Character Array' WHEN TYPE=3 THEN TYPE='Bytes' OTHERWISE END NAME=READCH(FILE,10) SIZE=C2D(REVERSE(READCH(FILE,2))) START=C2D(REVERSE(READCH(FILE,2))) IF TYPE='Program'&START>32767 THEN START=NONE LENGTH=C2D(REVERSE(READCH(FILE,2))) IF TYPE='Bytes' THEN LENGTH='' SAY LEFT(TYPE,15)||RIGHT(NAME,12)||RIGHT(LENGTH,8)||RIGHT(START,7)||RIGHT(SIZE,7) END ELSE DO SAY '-----Headerless--block-----'RIGHT(FLAG,15)||RIGHT(BLOCKLENGTH,7) SEEK(FILE,BLOCKLENGTH) END IF SEEK(FILE,1)=FILELENGTH THEN EXIT SIGNAL LOOP




Ответить с цитированием