Blog Home

Getting started with Base24 development. TAL tutorial

Posted on 7th Jun 2017 700 views

First program in TAL: the "hello world".
The code is below, we are going to compile it.
Compiling is done in a separate article, in this one we only focus on the code.
TAL stands fro Transaction Application Language, and you can expect that the language is sort of dedicated to working with data and processing data.
We need to explain the header here:

?nocode, inspect, symbols

This compiler directive contains 3 directives:
nocode: Lists instruction codes in octal format after each procedure
inspect: INSPECT sets the Inspect product as the default debugger for the object file
symbols: SYMBOLS saves symbols in a symbol table (for Inspect symbolic debugging) in the object file. The default is NOSYMBOLS


[break] More header:

?nolist, source $system.system.extdecs0(
? file_open_
? file_close_
? initializer
? writex
? process_getinfo_)

This compiler directive contains several directives:
nolist: NOLIST suppresses listing of sourced-in procedures
extdecs: EXTDECS is a file, provided by the operating system, that contains external declarations for system procedures. System procedures, for example, manage files, activate and terminate programs, and monitor the operations of processes.

?nocode, inspect, symbols

?nolist, source $system.system.extdecs0(
? file_open_
? file_close_
? initializer
? writex
? process_getinfo_)


literal maxlen = 256;

proc startup_proc(rucb, passthru, message, msglen, match) variable;
int .rucb, .passthru, .message, msglen, match;

proc param_proc(rucb, passthru, message, msglen, match) variable;
int .rucb, .passthru, .message, msglen, match;

proc assign_proc(rucb, passthru, message, msglen, match) variable;
int .rucb, .passthru, .message, msglen, match;

proc hello_w main;
    int term_length, termnum, count;
    string .terminal_name[0:maxlen - 1], .sbuffer[0:maxlen - 1];

    call initializer(,, startup_proc, param_proc, assign_proc,,);
    call process_getinfo_(,,,,, terminal_name:maxlen, term_length);
    call file_open_(terminal_name:term_length, termnum);
    sbuffer ':=' "Hello world!";
    count := 12;
    call writex(termnum, sbuffer, count);
    call file_close_(termnum);


Top Read Articles

Read smart card chip data with APDU commands ISO 7816 13286 views

Deploy, run and generate with neaPay Card Data Generator 7759 views

Run the neaPay ISO8583 simulator 6814 views

ISO8583 payments message format, programmers guide 6378 views

ISO8583 Message Converter JSON and XML interface specification mapping 4766 views

ISO8583 message: The list of ISO 4217 currency codes for data elements 49 and 52 4259 views

Deploy the neaPay ISO8583 simulator - video guide 4155 views

MCC Codes - Merchant Category Codes to use in ISO8583 Field 18 3350 views

Create a new test case in the neaPay ISO8583 simulator Video guide 3191 views

Asking for defects support for the neaPay products: converter, switch, issuer, simulator 2557 views

Log Files in BASE24 classic 2450 views

Performance testing at 500, 1000 and 1500 TPS 2422 views

Connect the neaPay ISO8583 Acquirer simulator to your own host or Issuer 2292 views

BIN List & Range for MasterCard, Visa, Amex, Diners, Discover, JCB, CUP 2245 views

Sample Recommended design for an Acquirer test cases suite, Scenarios and Regression 2135 views

BASE24 documentation to read 2102 views

BASE24 classic vs BASE24-eps 2086 views

Card readers supported by neaPay payments simulator, CHIP and NFC 2069 views

Regression Testing in 1 click with instant Analytics and CSV report 2054 views

BASE24 classic interview questions 1956 views

Load Test enabling and performance testing at 1TPS and 100TPS 1907 views

Run the neaPay ISO8583 converter to JSON, XML, SQL, in a test environment 1851 views

Adding your own card to the Payments simulator to test your system 1740 views

BASE24 classic screens examples explained 1740 views

Changing fields definitions in the ISO8583 simulator and message converter 1705 views

How the fingerprint reader works in the ISO8583 payments simulator 1693 views

Deploy the neaPay ISO8583 Payments converter in a test environment 1661 views

Enabling traces in the payments simulator 1622 views

Altering test cases in Excel for the ISO8583 simulator 1566 views

Run One, Run Scenario, Run All, Run Load in the neaPay ISO8583 Simulator - Use guide 1564 views

BASE24 classic ATM configuration Tutorial in ATD and XPNET with examples 1471 views

Cards and Banks Training 1361 views

EMV explained for programmers 1333 views

BASE24 classic cards configuration tutorial with Examples 1283 views

Deploy the neaPay HSM simulator in a test environment 1269 views

BASE24-eps interview questions 1267 views

Getting started with BASE24. Compiling your first TAL program 1136 views

BASE24-EPS ACI DESKTOP tutorial - Getting started 1113 views

BASE24 classic prefix configuration tutorial CPF with examples 1056 views

BASE24 classic tracing of transactions. Audits, configuration, enabling and opening 1034 views

BASE24 classic Institution configuration Tutorial with example 941 views

ACI BASE24 classic automatic extract configuration 866 views

BASE24 classic balance file configuration PBF with example 866 views

ISO8583 converter to JSON XML SQL to HTTP host - start& run - video guide - Part.1 859 views

ISO8583 converter to JSON XML SQL to HTTP host - message flow - video guide - Part.2 858 views

ISO8583 converter to JSON XML SQL to HTTP Host - host unavailable - video guide- Part.3 857 views

BASE24 classic interchange configuration with examples 849 views

Base24-eps how to create journals with esbldjnl 833 views

Deploy the Payments Switch Router in a test environment 725 views

Getting started with Base24 development. TAL tutorial 701 views

BASE24 classic routing in IDF 696 views

BASE24 classic External Message File configuration EMF with examples 655 views

Working with Base24-eps vs BASE24 Classic 637 views

BASE24 classic host configuration tutorial HCF with examples 576 views

What to expect when installing Base24-eps 569 views

Managing BASE24-eps implementation projects 566 views

First steps with BASE24 Classic 565 views

Getting started with using Prognosis for BASE24 and BASE24-eps 558 views

ISO8583 Response Codes for Transaction processing 214 views

Add extra custom fields to the ISO8583 simulator 168 views

ISO8583 Processing Codes for Transaction Processing 147 views

ISO8583 Message Types for Transaction Processing 135 views

Ask a question, get advice and help


Read related articles - Iso8583

Are you ready to start or need help?

Ready to start your next project with us? Give us a call or send us an email and we will get back to you as soon as possible!

Get a free quote, Ask for details, Get guidance

Contact us

Download and Use the software yourself

Download software

Follow a getting started guide to deploy and use the software

Get started