Важная информация

User Tag List

Страница 6 из 6 ПерваяПервая ... 23456
Показано с 51 по 54 из 54

Тема: SDCC: Автоматизация

  1. #51
    Master
    Регистрация
    27.01.2005
    Сообщений
    888
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    163
    Поблагодарили
    131 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Добавлены разделы по передаче параметров в функции на ассемблере и возврату значений в С.
    Добавлен глоссарий по утилитам и прочему.

    https://github.com/salextpuru/sdcc-n...dcc-noinit.pdf

  2. #52
    Master
    Регистрация
    27.01.2005
    Сообщений
    888
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    163
    Поблагодарили
    131 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Добавлены примеры функций, иллюстрирующие передачу и возврат значений.
    Каталог apps/example-0. Добавлено описание примеров в документацию. (раздел 4.6. Примеры функций на ассемблере)
    https://github.com/salextpuru/sdcc-n...dcc-noinit.pdf

  3. #53
    Master
    Регистрация
    27.01.2005
    Сообщений
    888
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    163
    Поблагодарили
    131 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

  4. #54
    Guru Аватар для creator
    Регистрация
    02.07.2006
    Адрес
    Новосибирск
    Сообщений
    2,193
    Спасибо Благодарностей отдано 
    422
    Спасибо Благодарностей получено 
    219
    Поблагодарили
    130 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Смотрелка TZX.

    Скрытый текст

    Код:
    /* TZXView */
    
    OPTIONS AREXX_BIFS
    OPTIONS AREXX_SEMANTICS
    
    PARSE ARG TZXFILE
    IF TZXFILE='?' THEN DO
    OPTIONS PROMPT 'FILE/A: '
    PARSE PULL TZXFILE
    END
    IF TZXFILE='' THEN DO
    SAY 'required argument missing'
    SAY 'No file to view'
    EXIT
    END
    TZXFILE=STRIP(TZXFILE,,'"')
    TZXFILE=STRIP(TZXFILE,,' ')
    IF ~OPEN(FILE,TZXFILE,'R') THEN DO
    SAY 'No file to view'
    EXIT
    END
    IF READCH(FILE,8)~='ZXTape!'X2C(1A) THEN DO
    SAY 'This file is not TZX type'
    EXIT
    END
    SAY 'TZXView (R)  View Utility  Version 1.0  04-Feb-2022'
    SAY ' (c) 2022  Alex Kovrigin, 2:5000/111.47'
    SAY TZXFILE 'ZXTape file revision' C2D(READCH(FILE,1))'.'RIGHT(C2D(READCH(FILE,1)),2,0)
    SAY
    DO FOREVER
    ID=C2X(READCH(FILE,1))
    SELECT
    WHEN ID=10 THEN DO
                            PAUSE=C2D(REVERSE(READCH(FILE,2)))
                            LENGTH=C2D(REVERSE(READCH(FILE,2)))
                            SAY 'ID'ID 'Standard speed data block. Pause after this block' PAUSE 'ms. Length' LENGTH
    FLAG=C2D(READCH(FILE,1))
    IF FLAG=0&LENGTH=19 THEN DO
    TYPE=C2D(READCH(FILE,1))
    SELECT
    WHEN TYPE=0 THEN TYPE='Program'
    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 ' Type             Name        Length  Start   Size'
    SAY ' 'LEFT(TYPE,15)||RIGHT(NAME,12)||RIGHT(LENGTH,8)||RIGHT(START,7)||RIGHT(SIZE,7)
    END
    ELSE DO
    SAY ' Type                                  Flag   Size'
    SAY ' -----Headerless--block-----'RIGHT(FLAG,15)||RIGHT(LENGTH-2,7)
    ENDLENGTH=SEEK(FILE,LENGTH-2)
    END
    ENDLENGTH=SEEK(FILE,1)
                    END
    WHEN ID=11 THEN DO
    			ENDLENGTH=SEEK(FILE,13)
                            PAUSE=C2D(REVERSE(READCH(FILE,2)))
                            LENGTH=C2D(REVERSE(READCH(FILE,3)))
    			SAY 'ID'ID 'Turbo speed data block. Pause after this block' PAUSE 'ms. Length' LENGTH
    FLAG=C2D(READCH(FILE,1))
    IF FLAG=0&LENGTH=19 THEN DO
    TYPE=C2D(READCH(FILE,1))
    SELECT
    WHEN TYPE=0 THEN TYPE='Program'
    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 ' Type             Name        Length  Start   Size'
    SAY ' 'LEFT(TYPE,15)||RIGHT(NAME,12)||RIGHT(LENGTH,8)||RIGHT(START,7)||RIGHT(SIZE,7)
    END
    ELSE DO
    SAY ' Type                                  Flag   Size'
    SAY ' -----Headerless--block-----'RIGHT(FLAG,15)||RIGHT(LENGTH-2,7)
    ENDLENGTH=SEEK(FILE,LENGTH-2)
    END
    ENDLENGTH=SEEK(FILE,1)
    		END
    WHEN ID=12 THEN DO
                            PAUSE=C2D(REVERSE(READCH(FILE,2)))
                            LENGTH=C2D(REVERSE(READCH(FILE,2)))
    			SAY 'ID'ID 'Pure tone. Length of pulse' PAUSE 'T-states. Number of pulses' LENGTH
                            ENDLENGTH=SEEK(FILE,0)
                    END
    WHEN ID=13 THEN DO
                            LENGTH=C2D(READCH(FILE,1))
    			SAY 'ID'ID 'Pulse sequence. Number of pulses' LENGTH
                            ENDLENGTH=SEEK(FILE,LENGTH*2)
                    END
    WHEN ID=14 THEN DO
    			ENDLENGTH=SEEK(FILE,5)
                            PAUSE=C2D(REVERSE(READCH(FILE,2)))
                            LENGTH=C2D(REVERSE(READCH(FILE,3)))
    			SAY 'ID'ID 'Pure data block. Pause after this block' PAUSE 'ms. Length' LENGTH
                            ENDLENGTH=SEEK(FILE,LENGTH)
                    END
    WHEN ID=15 THEN DO
    			ENDLENGTH=SEEK(FILE,2)
    	                PAUSE=C2D(REVERSE(READCH(FILE,2)))
    			ENDLENGTH=SEEK(FILE,1)
                            LENGTH=C2D(REVERSE(READCH(FILE,3)))
    			SAY 'ID'ID 'Direct recording. Pause after this block' PAUSE 'ms. Length' LENGTH
                            ENDLENGTH=SEEK(FILE,LENGTH)
                    END
    WHEN ID=16 THEN DO
                            LENGTH=C2D(REVERSE(READCH(FILE,4)))
    			SAY 'ID'ID 'C64 ROM type data block. Block length' LENGTH
                            ENDLENGTH=SEEK(FILE,LENGTH)
                    END
    WHEN ID=17 THEN DO
                            LENGTH=C2D(REVERSE(READCH(FILE,4)))
    			SAY 'ID'ID 'C64 turbo tape data block. Block length' LENGTH
                            ENDLENGTH=SEEK(FILE,LENGTH)
                    END
    WHEN ID=18 THEN DO
                            LENGTH=C2D(REVERSE(READCH(FILE,4)))
    			PAUSE=C2D(REVERSE(READCH(FILE,2)))
    			SAY 'ID'ID 'CSW recording block. Pause after this block' PAUSE 'ms. Block length' LENGTH
                            ENDLENGTH=SEEK(FILE,LENGTH-2)
                    END
    WHEN ID=19 THEN DO
                            LENGTH=C2D(REVERSE(READCH(FILE,4)))
    			PAUSE=C2D(REVERSE(READCH(FILE,2)))
    			SAY 'ID'ID 'Generalized data block. Pause after this block' PAUSE 'ms. Block length' LENGTH
                            ENDLENGTH=SEEK(FILE,LENGTH-2)
                    END
    WHEN ID=20 THEN DO
                            PAUSE=C2D(REVERSE(READCH(FILE,2)))
    			IF PAUSE=0 THEN SAY 'ID'ID '''Stop the tape'' command'
    			ELSE SAY 'ID'ID 'Pause (silence)' PAUSE 'ms.'
                            ENDLENGTH=SEEK(FILE,0)
                    END
    WHEN ID=21 THEN DO
    			LENGTH=C2D(READCH(FILE,1))
                            NAME=READCH(FILE,LENGTH)
    			SAY 'ID'ID 'Group start. Group name:' NAME
                            ENDLENGTH=SEEK(FILE,0)
                    END
    WHEN ID=22 THEN DO
    			SAY 'ID'ID 'Group end'
                            ENDLENGTH=SEEK(FILE,0)
    	        END
    WHEN ID=23 THEN DO
    			SAY 'ID'ID 'Jump to block'
                            ENDLENGTH=SEEK(FILE,2)
                    END
    WHEN ID=24 THEN DO
    			LENGTH=C2D(REVERSE(READCH(FILE,2)))
    			SAY 'ID'ID 'Loop start. Number of repetitions' LENGTH
                            ENDLENGTH=SEEK(FILE,0)
                    END
    WHEN ID=25 THEN DO
    			SAY 'ID'ID 'Loop end'
                            ENDLENGTH=SEEK(FILE,0)
                    END
    WHEN ID=26 THEN DO
    			LENGTH=C2D(REVERSE(READCH(FILE,2)))
    			SAY 'ID'ID 'Call sequence. Number of calls' LENGTH
                            ENDLENGTH=SEEK(FILE,LENGTH*2)
                    END
    WHEN ID=27 THEN DO
    			SAY 'ID'ID 'Return from sequence'
                            ENDLENGTH=SEEK(FILE,0)
                    END
    WHEN ID=28 THEN DO
    			LENGTH=C2D(REVERSE(READCH(FILE,2)))
                            PAUSE=READCH(FILE,1)
    			SAY 'ID'ID 'Select block: 'PAUSE
                            ENDLENGTH=SEEK(FILE,LENGTH-1)
                    END
    WHEN ID=2A THEN DO
    			SAY 'ID'ID 'Stop tape if in 48K mode'
                            ENDLENGTH=SEEK(FILE,4)
                    END
    WHEN ID=2B THEN DO
    			ENDLENGTH=SEEK(FILE,4)
                      	PAUSE=C2D(READCH(FILE,1))
    			SELECT
    			WHEN PAUSE=0 THEN PAUSE='Low'
    			WHEN PAUSE=1 THEN PAUSE='High'
    			OTHERWISE
    			END
    			SAY 'ID'ID 'Set signal level. Signal level' PAUSE
                            ENDLENGTH=SEEK(FILE,0)
                    END
    WHEN ID=30 THEN DO
                            LENGTH=C2D(READCH(FILE,1))
                            PAUSE=READCH(FILE,LENGTH)
    			SAY 'ID'ID 'Text description. Length' LENGTH
    			SAY ' 'PAUSE
                            ENDLENGTH=SEEK(FILE,0)
                    END
    WHEN ID=31 THEN DO
                            PAUSE=C2D(READCH(FILE,1))
                            LENGTH=C2D(READCH(FILE,1))
    			CHAR=READCH(FILE,LENGTH)
    			SAY 'ID'ID 'Message block. Time for which the message should be displayed' PAUSE 's. Length' LENGTH
    			SAY ' 'CHAR
                            ENDLENGTH=SEEK(FILE,0)
                    END
    WHEN ID=32 THEN DO
                            LENGTH=C2D(REVERSE(READCH(FILE,2)))
    			PAUSE=C2D(READCH(FILE,1))
                            SAY 'ID'ID 'Archive info. Number of text strings' PAUSE'. Length' LENGTH
                            ENDLENGTH=SEEK(FILE,LENGTH-1)
                    END
    WHEN ID=33 THEN DO
                            LENGTH=C2D(READCH(FILE,1))
    			SAY 'ID'ID 'Hardware type'
                            ENDLENGTH=SEEK(FILE,LENGTH*3)
                    END
    WHEN ID=34 THEN DO
    			SAY 'ID'ID 'Emulation info'
                            ENDLENGTH=SEEK(FILE,8)
                    END
    WHEN ID=35 THEN DO
                            PAUSE=READCH(FILE,16)
                            LENGTH=C2D(REVERSE(READCH(FILE,4)))
    			SAY 'ID'ID 'Custom info block. Length of the custom info' LENGTH
    			SAY ' 'PAUSE
                            ENDLENGTH=SEEK(FILE,LENGTH)
                    END
    WHEN ID=40 THEN DO
                            PAUSE=C2D(READCH(FILE,1))
    			SELECT
    			WHEN PAUSE=0 THEN PAUSE=Z80
    			WHEN PAUSE=1 THEN PAUSE=SNA
    			OTHERWISE
    			END
                            LENGTH=C2D(REVERSE(READCH(FILE,3)))
    			SAY 'ID'ID 'Snapshot block.' PAUSE'. Snapshot length' LENGTH
                            ENDLENGTH=SEEK(FILE,LENGTH)
                    END
    WHEN ID=5A THEN DO
                            ENDLENGTH=SEEK(FILE,7)
                            SAY 'ID'ID 'Glue block. ZXTape file revision' C2D(READCH(FILE,1))'.'C2D(READCH(FILE,1))
                            ENDLENGTH=SEEK(FILE,0)
                    END
    WHEN ID=00 THEN DO
                            SAY
                            SAY 'ID'ID', real length:' ENDLENGTH'. Please cut!'
                            EXIT
                    END
    OTHERWISE DO
                            SAY
                            SAY 'ID'ID', length:' ENDLENGTH
                            EXIT
                    END
    END
    END
    [свернуть]


    Примеры:
    Код:
    D:\util\regina\regina.exe D:\util\regina\TZXView.rex Cobra Force.tzx
    TZXView (R)  View Utility  Version 1.0  04-Feb-2022
     (c) 2022  Alex Kovrigin, 2:5000/111.47
    Cobra Force.tzx ZXTape file revision 1.10
    
    ID30 Text description. Length 28
     Created with Ramsoft MakeTZX
    ID10 Standard speed data block. Pause after this block 967 ms. Length 19
     Type             Name        Length  Start   Size
     Program          Cobra          142      0    142
    ID10 Standard speed data block. Pause after this block 2853 ms. Length 144
     Type                                  Flag   Size
     -----Headerless--block-----            255    142
    ID10 Standard speed data block. Pause after this block 761 ms. Length 19
     Type             Name        Length  Start   Size
     Bytes            loader              65024    512
    ID10 Standard speed data block. Pause after this block 2930 ms. Length 514
     Type                                  Flag   Size
     -----Headerless--block-----            255    512
    ID11 Turbo speed data block. Pause after this block 1 ms. Length 6914
     Type                                  Flag   Size
     -----Headerless--block-----              0   6912
    ID11 Turbo speed data block. Pause after this block 760 ms. Length 40002
     Type                                  Flag   Size
     -----Headerless--block-----              0  40000
    ID11 Turbo speed data block. Pause after this block 16079 ms. Length 6914
     Type                                  Flag   Size
     -----Headerless--block-----              0   6912
    
    ID, length: 54643
    Код:
    D:\util\regina\regina.exe D:\util\regina\TZXView.rex Beach Head.tzx
    TZXView (R)  View Utility  Version 1.0  04-Feb-2022
     (c) 2022  Alex Kovrigin, 2:5000/111.47
    Beach Head.tzx ZXTape file revision 1.20
    
    ID32 Archive info. Number of text strings 2. Length 21
    ID10 Standard speed data block. Pause after this block 984 ms. Length 19
     Type             Name        Length  Start   Size
     Program          BEACH HEAD     795      0    847
    ID10 Standard speed data block. Pause after this block 6094 ms. Length 849
     Type                                  Flag   Size
     -----Headerless--block-----            255    847
    ID19 Generalized data block. Pause after this block 1971 ms. Block length 268
    ID19 Generalized data block. Pause after this block 1952 ms. Block length 7160
    ID19 Generalized data block. Pause after this block 310 ms. Block length 26369
    ID19 Generalized data block. Pause after this block 0 ms. Block length 14408
    
    ID, length: 49137
    Вложения Вложения
    Последний раз редактировалось creator; 22.03.2022 в 07:54.
    В правильно заданном вопросе содержится половина ответа

  5. Этот пользователь поблагодарил creator за это полезное сообщение:

    Sergey (15.09.2022)

Страница 6 из 6 ПерваяПервая ... 23456

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. SDCC: библиотеки для ZX
    от Sergey в разделе Программирование
    Ответов: 10
    Последнее: 25.10.2015, 19:30
  2. Бага SDCC версии 3.3.0
    от TSL в разделе Программирование
    Ответов: 37
    Последнее: 20.04.2014, 17:31
  3. sdcc. с чего начать.
    от ALKO в разделе Программирование
    Ответов: 42
    Последнее: 16.09.2012, 15:49
  4. SDCC вокруг да около
    от andrews в разделе Программирование
    Ответов: 8
    Последнее: 26.03.2008, 08:16

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •