1 %macro d2 1.nolist 2 db (%1) >> 8 3 db (%1) & 0xFF 4 %endmacro 5 %macro d2a 1.nolist 6 db ((%1)-_f0) >> 8 7 db ((%1)-_f0) & 0xFF 8 %endmacro 9 SECTION .data 10 global _f0 11 _f0: 12 %define H_COL 0xFF 13 %define H_RSR 0xFE 14 %define H_CON 0xFD 15 %define H_TO 0xFC 16 %define H_AT 0xFB 17 %define H_C1 0xFA 18 %define H_C2 0xF9 19 %define H_C3 0xF8 20 %define SF_EXIT 0xFF 21 %define F_EXIT 0xE5FF 22 %define SF_PLUS 0xFE 23 %define F_PLUS 0xE5FE 24 %define SF_DUP 0xFD 25 %define F_DUP 0xE5FD 26 %define SF_2DUP 0xFC 27 %define F_2DUP 0xE5FC 28 %define SF_1 0xFB 29 %define F_1 0xE5FB 30 %define SF_SWAP 0xFA 31 %define F_SWAP 0xE5FA 32 %define SF_DROP 0xF9 33 %define F_DROP 0xE5F9 34 %define F_COUNT 0xE5F8 35 %define F_TYPE 0xE5F7 36 %define F_CR 0xE5F6 37 %define F_STO 0xE5F5 38 %define F_TOS 0xE5F4 39 %define F_SGOBBLE1 0xE5F3 40 %define F_SGOBBLE2 0xE5F2 41 %define F_WSTORE 0xE5F1 42 %define F_WFETCH 0xE5F0 43 %define F_SBRANCH 0xE5EF 44 %define F_S0BRANCH 0xE5EE 45 %define FIP_RETURN 0xFFFF 46 %define FIP_RSREXIT 0xFFFE 47 ADR_strlen: 48 00000000 FA db H_C1 49 extern strlen 50 00000001 [00000000] dd strlen 51 ; 0<."> = 0angdotquo 52 ADR_0angdotquo: 53 00000005 FE db H_RSR 54 ; S0<."> = S0angdotquo 55 ADR_S0angdotquo: 56 00000006 FF db H_COL 57 00000007 E5F5 d2 F_STO 58 00000009 FD db SF_DUP 59 0000000A 0000 d2a ADR_strlen 60 0000000C FC db SF_2DUP 61 0000000D E5F7 d2 F_TYPE 62 0000000F FE db SF_PLUS 63 00000010 FB db SF_1 64 00000011 FE db SF_PLUS 65 00000012 E5F4 d2 F_TOS 66 00000014 FF db SF_EXIT 67 global ADR_BRANCH 68 ADR_BRANCH: 69 %define SF_BRANCH 0xF8 70 00000015 FE db H_RSR 71 00000016 FF db H_COL 72 00000017 E5EF d2 F_SBRANCH 73 00000019 FF db SF_EXIT 74 global ADR_0BRANCH 75 ADR_0BRANCH: 76 %define SF_0BRANCH 0xF7 77 0000001A FE db H_RSR 78 0000001B FF db H_COL 79 0000001C E5EE d2 F_S0BRANCH 80 0000001E FF db SF_EXIT 81 ; YES/NO = YESx2fNO 82 ADR_YESx2fNO: 83 0000001F FF db H_COL 84 00000020 F7 db SF_0BRANCH 85 00000021 2D00 dw LBL_no-_f0 86 00000023 0005 d2a ADR_0angdotquo 87 00000025 7965730A00 db 'yes', 10, 0 88 0000002A F8 db SF_BRANCH 89 0000002B 3300 dw LBL_end-_f0 90 LBL_no: 91 0000002D 0005 d2a ADR_0angdotquo 92 0000002F 6E6F0A00 db 'no', 10, 0 93 LBL_end: 94 00000033 FF db SF_EXIT 95 global ADR_LITW 96 ADR_LITW: 97 %define SF_LITW 0xF6 98 00000034 FE db H_RSR 99 00000035 FF db H_COL 100 00000036 E5F2 d2 F_SGOBBLE2 101 00000038 FF db SF_EXIT 102 global ADR_DEMO 103 ADR_DEMO: 104 00000039 FF db H_COL 105 0000003A 0005 d2a ADR_0angdotquo 106 0000003C 48656C6C6F0A00 db 'Hello',10, 0 107 00000043 0034 d2a ADR_LITW 108 00000045 1600 dw 22 109 00000047 001F d2a ADR_YESx2fNO 110 00000049 0034 d2a ADR_LITW 111 0000004B 0000 dw 0 112 0000004D 001F d2a ADR_YESx2fNO 113 0000004F FF db SF_EXIT