OK, ostatni sposób się sprawdził. Plik wynikowy skryptu w BASH'u potraktowałem Twoim skryptem i udało się rozmieścić wszystko tak, jak chciałem. Oto dowód:
Kod:
paulo@Ferrari-One-200:~/iks51/_test$ ruby address2.rb "`cat system.inc`"
ABOUT CODE 07C3h
ADD_DPTR0_A CODE 08D7h
ADD_DPTR0_BA CODE 08DAh
ADD_DPTR1_A CODE 08E5h
ADD_DPTR1_BA CODE 08E8h
ARG_2HEX2BIN_A CODE 0E51h
ARG_4HEX22BIN_DPTR0 CODE 0E24h
ARG_LAST_IN_R1_BUF CODE 0E74h
ARG_SKIP_SPACES_IN_R1_BUF CODE 0E6Ch
BAR_DOWN CODE 0EF8h
BCD2BIN CODE 0927h
BMP_1 CODE 0549h
BMP_16 CODE 0689h
BMP_4 CODE 0591h
BMP_8 CODE 05DCh
BMP_8_RLE CODE 0625h
BMP_IMG CODE 0264h
BMP_PARM CODE 0472h
BMP_RGBQUAD CODE 0064h
BMP_VIEW CODE 0408h
BUFFER_0 CODE 0EB5h
BUZZER_INTERMITTENT_80MS CODE 0E95h
BUZZER_ON_80MS CODE 0E7Fh
CLEAR CODE 03E1h
CLOCK CODE 1CC6h
COMMANDS CODE 06A1h
CURSOR_OFF CODE 0401h
CURSOR_ON_GREEN CODE 03EDh
DEC_DPTR0 CODE 08F3h
DEC_DPTR1 CODE 090Dh
EEPROM_I2C CODE 1C85h
HALT CODE 07FEh
HELP CODE 078Fh
HEX2BIN CODE 0946h
I2C_READ CODE 09C2h
I2C_READ_BYTE CODE 099Bh
I2C_READ_EEPROM_BYTE CODE 09FCh
I2C_READ_EEPROM_PAGE CODE 0A56h
I2C_START CODE 096Bh
I2C_STOP CODE 097Ch
I2C_WRITE CODE 09E0h
I2C_WRITE_BYTE CODE 0985h
I2C_WRITE_EEPROM_BYTE CODE 0A27h
I2C_WRITE_EEPROM_PAGE CODE 0A92h
IMG_PARM_SHOW CODE 0F3Ch
INT_INT0 CODE 1E23h
INT_INT1 CODE 1E62h
INT_SERIAL CODE 1E64h
INT_T0 CODE 1E47h
INT_T1 CODE 1E63h
INT_T2 CODE 1E9Ch
JUMP CODE 0FC2h
KBD_DETECT_PRESENCE CODE 0D6Bh
KBD_DIAG CODE 1994h
KBD_KEY CODE 0B56h
KBD_KEY_INT CODE 0B5Ah
KBD_LED CODE 0D99h
KBD_READ CODE 0AC7h
KBD_READ_INT CODE 0ACCh
KBD_READ_TIME CODE 0ABEh
KBD_WRITE CODE 0AE9h
KEY_BREAK_E0 CODE 0C99h
KEY_BREAK_SPECIAL CODE 0C78h
KEY_MAKE_E0 CODE 0C1Bh
KEY_MAKE_SPECIAL CODE 0CF3h
KEY_NUM CODE 0D2Eh
LCD_AREA CODE 0173h
LCD_BARS CODE 0313h
LCD_BIN_A CODE 0257h
LCD_BIN_C CODE 024Ah
LCD_CHAR CODE 028Fh
LCD_CLR_ALL_AREA CODE 0197h
LCD_CLR_LINE_END CODE 0373h
LCD_CLR_OTHER_END CODE 0381h
LCD_CLR_SEL_AREA CODE 0199h
LCD_COMMAND CODE 002Eh
LCD_CUR_0 CODE 01BDh
LCD_CUR_DEC CODE 0232h
LCD_CUR_DEFAULT_AREA CODE 014Dh
LCD_CUR_DET_0 CODE 038Ch
LCD_CUR_INC CODE 021Ah
LCD_CUR_RET CODE 0222h
LCD_CUR_XY CODE 01CAh
LCD_CUR_Y CODE 01C5h
LCD_DATA CODE 0036h
LCD_HEX_A CODE 0279h
LCD_HEX_DPTR0 CODE 0273h
LCD_HEX_DPTR1 CODE 026Bh
LCD_INIT CODE 003Eh
LCD_MENU CODE 032Dh
LCD_MODE_GRAPH CODE 044Dh
LCD_PIX_DEFAULT_AREA CODE 0141h
LCD_PROMPT_AND_CUR CODE 03E6h
LCD_SQUARE CODE 02F2h
LCD_TEXT CODE 02E1h
LCD_TEXT_SMART CODE 0397h
LOAD_BIN CODE 0F81h
LOAD_HEX CODE 0FC1h
MAIN CODE 1F3Bh
MEM_CLR CODE 1060h
MEM_DIAG CODE 11F2h
MEM_VIEW CODE 106Fh
NUMBER_CHAR CODE 0EDAh
PORT_DIAG CODE 1B96h
RAND_256 CODE 0F39h
REBOOT CODE 07CDh
RS_RX CODE 0DCDh
RS_TX CODE 0DD7h
SD_DIAG CODE 0DFFh
SD_READ_SPI CODE 0DF0h
SD_WRITE_COMMAND CODE 0DF8h
SD_WRITE_SPI CODE 0DEBh
SPI_READY_SD CODE 0DE1h
START CODE 1E9Dh
SUB_DPTR0_A CODE 0908h
SUB_DPTR0_BA CODE 08F8h
SUB_DPTR1_A CODE 0922h
SUB_DPTR1_BA CODE 0912h
TEST CODE 2039h
TEXT_EDIT CODE 125Ah
TXT_ANULUJ CODE 2032h
TXT_BRAK CODE 1F9Ah
TXT_ESC CODE 2018h
TXT_KBD_BUF_OVERFLOW CODE 1FA0h
TXT_KEYBOARD CODE 1F7Eh
TXT_KONCZ CODE 2012h
TXT_MENU CODE 1FF9h
TXT_NIE CODE 202Eh
TXT_OK CODE 1F96h
TXT_OTWORZ CODE 200Bh
TXT_POMOC CODE 1FFEh
TXT_POWROT CODE 201Ch
TXT_PRESSKEY CODE 1FC1h
TXT_QUITESC CODE 1FDDh
TXT_READY CODE 1F76h
TXT_TAK CODE 202Ah
TXT_UWAGA CODE 2023h
TXT_ZAPISZ CODE 2004h
WAIT_XXMS CODE 0EC1h
WAIT_XXMS_X10 CODE 0ECAh
Jeśli nie masz nic przeciwko, to wrzucę go na GitHub, gdzie mam swój projekt, zastrzegając właściciela (czyli nick lub nazwisko). Muszę mieć tylko Twoją zgodę, bo cały projekt jest na GNU GPL v2 lub kolejnych.