;**********************************************************************; ;* A T O M I C W I N D O W S *; ;*--------------------------------------------------------------------*; ;* doel : Interpreter en statements voor toolbox *; ;*--------------------------------------------------------------------*; ;* filenaam : INT36PC.INC *; ;* auteur : Kees van Oss *; ;* conversie : Roland Leurs *; ;* The Atomic Development Studio *; ;* ontwikkeld : juli 1997 *; ;* laatste update : 12 oktober 1998 *; ;*--------------------------------------------------------------------*; ;* wijzigingen : v36 - DLGEND commando werkte met actieve loop *; ;* loop commando's niet goed, 3x PHA/PLA *; ;* toegevoegd *; ;* - DLGLISTBOX gecorrigeerd met maxitems=0/1 *; ;* - Commando's aangepast voor aanroep in asm *; ;* - Ruimte bespaard door JSR,RTS -> JMP *; ;* - String bij AW ingekort voor extra ruimte *; ;*--------------------------------------------------------------------*; ;* assembleren : opnemen als includefile in AWPC.ASM *; ;*--------------------------------------------------------------------*; ;* oproep : - *; ;**********************************************************************; ; === INITIALISATIE VARIABELEN stackpointer equ $4 ; Standaard Atom adressen stack1 equ $16 stack2 equ $25 read_param equ $C8BC ; Standaard Atom routines read_text equ $CEB1 next_param equ $C231 print_text equ $F7D1 scan_toets equ $FE71 wait_key equ $FE94 no_com equ $C558 new_line equ $FFED osbyte equ $FFC2 ; Atom-in-PC routines leesbyte equ $FFC5 zendbyte equ $FFC8 ret equ $0D ; Constante variabelen esc equ $1B bsp equ $7F copy equ $0E delete equ $0F spatie equ $00 escape equ $3B data equ $80 ; Werkruimte voor hulproutines x_tmp equ data y_tmp equ data+1 b_tmp equ data+2 h_tmp equ data+3 m_tmp equ data+4 nulblock equ $90 ; Werkruimte voor commando's tmp_adres equ nulblock foc_ptr_lo equ nulblock+2 foc_ptr_hi equ nulblock+3 dlg_buffer equ $140 ; Buffer parameter equ $16B dlg_base_lo equ parameter ; Globale variabelen dlg_base_hi equ parameter+1 dlg_ptr_lo equ parameter+2 dlg_ptr_hi equ parameter+3 x_base equ parameter+4 ; Lokale variabelen y_base equ parameter+5 x_min equ parameter+6 x_max equ parameter+7 y_min equ parameter+8 y_max equ parameter+9 store_mode equ parameter+10 store_var equ parameter+11 store_len equ parameter+12 store_style equ parameter+13 store_x equ parameter+14 store_y equ parameter+15 store_width equ parameter+16 store_height equ parameter+17 store_var1 equ parameter+18 store_var2 equ parameter+19 ; === INTERPRETER LDX #$FF next_com LDY $5E DEY next_chr INX INY next_vec LDA com_tab,X BMI com_ok CMP ($05),Y BEQ next_chr int2 INX LDA com_tab-1,X BPL int2 LDA ($05),Y CMP #$2E BNE next_com INY DEX BCS next_vec com_ok STA $53 LDA com_tab+1,X STA $52 STY $3 LDX #0 STX $4 JSR exec_com LDX #0 STX $4 JMP $C558 exec_com JMP ($0052) com_tab .db "DLGBASE" ; Algemene commando's .db >dlgbase,dlgcls,dlgcreate,dlgend,dlgpointer,aw,dlgpushbutton,dlgradiobutton,dlgcheckbox,dlgoption,dlgtext,dlghotspot,dlgicon,dlglistbox,dlglabel,dlgframe,no_com,