; Diese Datei wurde erzeugt von NiliPascal Version 3.0 rev. 08/28.10.96
; Copyright (c) 1993-1996 by O'Niel Annand Valentin Som
; Mikrocomputer Soft- und Hardware * Postfach 103203 * D-45032 Essen
; Kopie, Verleih, bersetzung dieses Programms sind nicht erlaubt.
.CODE
.ORG $0000
UNIT: .EQU $02
$DEFINE DOUBLEBAUD
BAUD: .EQU $FA
$INCLUDE FPASINIT.ASM
$INCLUDE C:\NILIPAS\DF1704\DF1704_M.INC
pascal_start:
mov T_LSB,#$08
mov T_MSB,#$00
ljmp L10 ; GOTO MAIN
L0: .SYMBOL SEND                
    setb $91
    setb $90
    mov a,#$02
    mov dptr,#$0004
    lcall load_address ; I                   
    mov dptr,#$0000
    lcall load_constant
    mov dptr,#$000F
    lcall load_constant
    mov dptr,#L6
    lcall for_start_up
L1:     cpl $91
    mov a,#$02
    mov dptr,#$0003
    lcall load_value ; DATA                
    mov dptr,#$0000
    lcall load_constant
    lcall int_less
    mov dptr,#L2
    lcall jump_if_false
    setb $92
    ljmp L3
L2:     clr $92
L3:     mov a,#$02
    mov dptr,#$0005
    lcall load_address ; J                   
    mov dptr,#$0000
    lcall load_constant
    mov dptr,#$0002
    lcall load_constant
    mov dptr,#L5
    lcall for_start_up
L4:     mov dptr,#L4
    lcall for_end_up
L5:     cpl $91
    mov a,#$02
    mov dptr,#$0003
    lcall load_address ; DATA                
    mov a,#$02
    mov dptr,#$0003
    lcall load_value ; DATA                
    mov dptr,#$0002
    lcall load_constant
    lcall int_mult
    lcall store
    mov dptr,#L1
    lcall for_end_up
L6:     cpl $90
    mov a,#$02
    mov dptr,#$0004
    lcall load_address ; I                   
    mov dptr,#$0000
    lcall load_constant
    mov dptr,#$0007
    lcall load_constant
    mov dptr,#L8
    lcall for_start_up
L7:     mov dptr,#L7
    lcall for_end_up
L8:     cpl $90
    clr $91
    clr $92
    ljmp exit_procedure
L9: .SYMBOL INIT                
    mov dptr,#$00FF
    lcall load_constant
    lcall pop_dec_t
    mov P3,r0
    mov a,#$01
    mov dptr,#$0008
    lcall load_address ; PRESET              
    mov a,P3
    lcall F1388
    lcall bool_not
    mov dptr,#$003E
    lcall load_constant
    lcall bool_and
    lcall store
    mov a,#$01
    mov dptr,#$0008
    lcall load_address ; PRESET              
    mov a,#$01
    mov dptr,#$0008
    lcall load_value ; PRESET              
    mov dptr,#$0004
    lcall load_constant
    lcall int_mult
    mov dptr,#$0007
    lcall load_constant
    lcall int_plus
    mov dptr,#$00FF
    lcall load_constant
    lcall bool_and
    lcall store
    mov a,#$01
    mov dptr,#$0006
    lcall load_address ; LDATA               
    mov a,#$01
    mov dptr,#$0008
    lcall load_value ; PRESET              
    lcall store
    mov a,#$01
    mov dptr,#$0007
    lcall load_address ; RDATA               
    mov a,#$01
    mov dptr,#$0008
    lcall load_value ; PRESET              
    lcall store
    mov a,#$01
    mov dptr,#$0004
    lcall load_address ; LEFT                
    mov dptr,#$0100
    lcall load_constant
    mov a,#$01
    mov dptr,#$0008
    lcall load_value ; PRESET              
    lcall int_plus
    lcall store
    mov a,#$01
    mov dptr,#$0005
    lcall load_address ; RIGHT               
    mov dptr,#$0300
    lcall load_constant
    mov a,#$01
    mov dptr,#$0008
    lcall load_value ; PRESET              
    lcall int_plus
    lcall store
    lcall mark_stack
    mov a,#$01
    mov dptr,#$0004
    lcall load_value ; LEFT                
    mov r5,#$01
    mov H1_LSB,#$05
    mov H1_MSB,#$00
    mov dptr,#$0003
    lcall call_usr_proc
    lcall L0 ; *** PROCEDURE SEND                
    mov a,#$01
    mov dptr,#$0002
    lcall update_display
    lcall mark_stack
    mov a,#$01
    mov dptr,#$0005
    lcall load_value ; RIGHT               
    mov r5,#$01
    mov H1_LSB,#$05
    mov H1_MSB,#$00
    mov dptr,#$0003
    lcall call_usr_proc
    lcall L0 ; *** PROCEDURE SEND                
    mov a,#$01
    mov dptr,#$0002
    lcall update_display
    lcall mark_stack
    mov dptr,#$0601
    lcall load_constant
    mov r5,#$01
    mov H1_LSB,#$05
    mov H1_MSB,#$00
    mov dptr,#$0003
    lcall call_usr_proc
    lcall L0 ; *** PROCEDURE SEND                
    mov a,#$01
    mov dptr,#$0002
    lcall update_display
    lcall mark_stack
    mov dptr,#$0469
    lcall load_constant
    mov r5,#$01
    mov H1_LSB,#$05
    mov H1_MSB,#$00
    mov dptr,#$0003
    lcall call_usr_proc
    lcall L0 ; *** PROCEDURE SEND                
    mov a,#$01
    mov dptr,#$0002
    lcall update_display
    ljmp exit_procedure
L10: .SYMBOL (MAIN PROGRAM)
    mov dptr,#$00F8
    lcall load_constant
    lcall pop_dec_t
    mov P1,r0
    mov dptr,#$0002
    lcall load_constant
    lcall proc_wait
    lcall mark_stack
    mov r5,#$01
    mov H1_LSB,#$02
    mov H1_MSB,#$00
    mov dptr,#$0002
    lcall call_usr_proc
    lcall L9 ; *** PROCEDURE INIT                
L11:     mov a,#$01
    mov dptr,#$0003
    lcall load_address ; CONTROLS            
    mov a,P1
    lcall F1388
    mov dptr,#$00F8
    lcall load_constant
    lcall bool_and
    lcall store
    mov a,#$01
    mov dptr,#$0003
    lcall load_value ; CONTROLS            
    mov dptr,#$00D8
    lcall load_constant
    lcall int_equal
    mov dptr,#L12
    lcall jump_if_false
    lcall mark_stack
    mov r5,#$01
    mov H1_LSB,#$02
    mov H1_MSB,#$00
    mov dptr,#$0002
    lcall call_usr_proc
    lcall L9 ; *** PROCEDURE INIT                
L12:     mov a,#$01
    mov dptr,#$0003
    lcall load_value ; CONTROLS            
    mov dptr,#$0070
    lcall load_constant
    lcall int_equal
    mov dptr,#L13
    lcall jump_if_false
    mov a,#$01
    mov dptr,#$0006
    lcall load_address ; LDATA               
    mov dptr,#$0000
    lcall load_constant
    lcall store
    mov a,#$01
    mov dptr,#$0007
    lcall load_address ; RDATA               
    mov dptr,#$0000
    lcall load_constant
    lcall store
    lcall mark_stack
    mov dptr,#$0100
    lcall load_constant
    mov r5,#$01
    mov H1_LSB,#$05
    mov H1_MSB,#$00
    mov dptr,#$0003
    lcall call_usr_proc
    lcall L0 ; *** PROCEDURE SEND                
    lcall mark_stack
    mov dptr,#$0300
    lcall load_constant
    mov r5,#$01
    mov H1_LSB,#$05
    mov H1_MSB,#$00
    mov dptr,#$0003
    lcall call_usr_proc
    lcall L0 ; *** PROCEDURE SEND                
L13:     mov a,#$01
    mov dptr,#$0003
    lcall load_value ; CONTROLS            
    mov dptr,#$00F0
    lcall load_constant
    lcall int_equal
    mov dptr,#L14
    lcall jump_if_false
    mov a,#$01
    mov dptr,#$0006
    lcall load_value ; LDATA               
    mov dptr,#$00FF
    lcall load_constant
    lcall int_less
    mov a,#$01
    mov dptr,#$0007
    lcall load_value ; RDATA               
    mov dptr,#$00FF
    lcall load_constant
    lcall int_less
    lcall bool_and
    mov dptr,#L14
    lcall jump_if_false
    mov a,#$01
    mov dptr,#$0006
    lcall load_address ; LDATA               
    mov a,#$01
    mov dptr,#$0006
    lcall load_value ; LDATA               
    mov dptr,#$0001
    lcall load_constant
    lcall int_plus
    lcall store
    mov a,#$01
    mov dptr,#$0007
    lcall load_address ; RDATA               
    mov a,#$01
    mov dptr,#$0007
    lcall load_value ; RDATA               
    mov dptr,#$0001
    lcall load_constant
    lcall int_plus
    lcall store
    mov a,#$01
    mov dptr,#$0004
    lcall load_address ; LEFT                
    mov dptr,#$0100
    lcall load_constant
    mov a,#$01
    mov dptr,#$0006
    lcall load_value ; LDATA               
    lcall int_plus
    lcall store
    mov a,#$01
    mov dptr,#$0005
    lcall load_address ; RIGHT               
    mov dptr,#$0300
    lcall load_constant
    mov a,#$01
    mov dptr,#$0007
    lcall load_value ; RDATA               
    lcall int_plus
    lcall store
    lcall mark_stack
    mov a,#$01
    mov dptr,#$0004
    lcall load_value ; LEFT                
    mov r5,#$01
    mov H1_LSB,#$05
    mov H1_MSB,#$00
    mov dptr,#$0003
    lcall call_usr_proc
    lcall L0 ; *** PROCEDURE SEND                
    lcall mark_stack
    mov a,#$01
    mov dptr,#$0005
    lcall load_value ; RIGHT               
    mov r5,#$01
    mov H1_LSB,#$05
    mov H1_MSB,#$00
    mov dptr,#$0003
    lcall call_usr_proc
    lcall L0 ; *** PROCEDURE SEND                
L14:     mov a,#$01
    mov dptr,#$0003
    lcall load_address ; CONTROLS            
    mov a,P1
    lcall F1388
    mov dptr,#$00F8
    lcall load_constant
    lcall bool_and
    lcall store
    mov a,#$01
    mov dptr,#$0003
    lcall load_value ; CONTROLS            
    mov dptr,#$00F0
    lcall load_constant
    lcall int_notequal
    mov dptr,#L13
    lcall jump_if_false
L15:     mov a,#$01
    mov dptr,#$0003
    lcall load_value ; CONTROLS            
    mov dptr,#$00E8
    lcall load_constant
    lcall int_equal
    mov dptr,#L16
    lcall jump_if_false
    mov a,#$01
    mov dptr,#$0006
    lcall load_value ; LDATA               
    mov dptr,#$0000
    lcall load_constant
    lcall int_greater
    mov a,#$01
    mov dptr,#$0007
    lcall load_value ; RDATA               
    mov dptr,#$0000
    lcall load_constant
    lcall int_greater
    lcall bool_and
    mov dptr,#L16
    lcall jump_if_false
    mov a,#$01
    mov dptr,#$0006
    lcall load_address ; LDATA               
    mov a,#$01
    mov dptr,#$0006
    lcall load_value ; LDATA               
    mov dptr,#$0001
    lcall load_constant
    lcall int_minus
    lcall store
    mov a,#$01
    mov dptr,#$0007
    lcall load_address ; RDATA               
    mov a,#$01
    mov dptr,#$0007
    lcall load_value ; RDATA               
    mov dptr,#$0001
    lcall load_constant
    lcall int_minus
    lcall store
    mov a,#$01
    mov dptr,#$0004
    lcall load_address ; LEFT                
    mov dptr,#$0100
    lcall load_constant
    mov a,#$01
    mov dptr,#$0006
    lcall load_value ; LDATA               
    lcall int_plus
    lcall store
    mov a,#$01
    mov dptr,#$0005
    lcall load_address ; RIGHT               
    mov dptr,#$0300
    lcall load_constant
    mov a,#$01
    mov dptr,#$0007
    lcall load_value ; RDATA               
    lcall int_plus
    lcall store
    lcall mark_stack
    mov a,#$01
    mov dptr,#$0004
    lcall load_value ; LEFT                
    mov r5,#$01
    mov H1_LSB,#$05
    mov H1_MSB,#$00
    mov dptr,#$0003
    lcall call_usr_proc
    lcall L0 ; *** PROCEDURE SEND                
    lcall mark_stack
    mov a,#$01
    mov dptr,#$0005
    lcall load_value ; RIGHT               
    mov r5,#$01
    mov H1_LSB,#$05
    mov H1_MSB,#$00
    mov dptr,#$0003
    lcall call_usr_proc
    lcall L0 ; *** PROCEDURE SEND                
L16:     mov a,#$01
    mov dptr,#$0003
    lcall load_address ; CONTROLS            
    mov a,P1
    lcall F1388
    mov dptr,#$00F8
    lcall load_constant
    lcall bool_and
    lcall store
    mov a,#$01
    mov dptr,#$0003
    lcall load_value ; CONTROLS            
    mov dptr,#$00E8
    lcall load_constant
    lcall int_notequal
    mov dptr,#L15
    lcall jump_if_false
L17:     mov a,#$01
    mov dptr,#$0003
    lcall load_value ; CONTROLS            
    mov dptr,#$0078
    lcall load_constant
    lcall int_equal
    mov dptr,#L20
    lcall jump_if_false
    mov a,#$01
    mov dptr,#$0007
    lcall load_value ; RDATA               
    mov dptr,#$0000
    lcall load_constant
    lcall int_greater
    mov dptr,#L20
    lcall jump_if_false
    mov a,#$01
    mov dptr,#$0006
    lcall load_value ; LDATA               
    mov a,#$01
    mov dptr,#$0007
    lcall load_value ; RDATA               
    lcall int_less
    mov a,#$01
    mov dptr,#$0006
    lcall load_value ; LDATA               
    mov dptr,#$00FF
    lcall load_constant
    lcall int_less
    lcall bool_and
    mov dptr,#L18
    lcall jump_if_false
    mov a,#$01
    mov dptr,#$0006
    lcall load_address ; LDATA               
    mov a,#$01
    mov dptr,#$0006
    lcall load_value ; LDATA               
    mov dptr,#$0001
    lcall load_constant
    lcall int_plus
    lcall store
    mov a,#$01
    mov dptr,#$0004
    lcall load_address ; LEFT                
    mov dptr,#$0100
    lcall load_constant
    mov a,#$01
    mov dptr,#$0006
    lcall load_value ; LDATA               
    lcall int_plus
    lcall store
    lcall mark_stack
    mov a,#$01
    mov dptr,#$0004
    lcall load_value ; LEFT                
    mov r5,#$01
    mov H1_LSB,#$05
    mov H1_MSB,#$00
    mov dptr,#$0003
    lcall call_usr_proc
    lcall L0 ; *** PROCEDURE SEND                
    ljmp L19
L18:     mov a,#$01
    mov dptr,#$0007
    lcall load_address ; RDATA               
    mov a,#$01
    mov dptr,#$0007
    lcall load_value ; RDATA               
    mov dptr,#$0001
    lcall load_constant
    lcall int_minus
    lcall store
L19:     mov a,#$01
    mov dptr,#$0005
    lcall load_address ; RIGHT               
    mov dptr,#$0300
    lcall load_constant
    mov a,#$01
    mov dptr,#$0007
    lcall load_value ; RDATA               
    lcall int_plus
    lcall store
    lcall mark_stack
    mov a,#$01
    mov dptr,#$0005
    lcall load_value ; RIGHT               
    mov r5,#$01
    mov H1_LSB,#$05
    mov H1_MSB,#$00
    mov dptr,#$0003
    lcall call_usr_proc
    lcall L0 ; *** PROCEDURE SEND                
L20:     mov a,#$01
    mov dptr,#$0003
    lcall load_address ; CONTROLS            
    mov a,P1
    lcall F1388
    mov dptr,#$00F8
    lcall load_constant
    lcall bool_and
    lcall store
    mov a,#$01
    mov dptr,#$0003
    lcall load_value ; CONTROLS            
    mov dptr,#$0078
    lcall load_constant
    lcall int_notequal
    mov dptr,#L17
    lcall jump_if_false
L21:     mov a,#$01
    mov dptr,#$0003
    lcall load_value ; CONTROLS            
    mov dptr,#$00B8
    lcall load_constant
    lcall int_equal
    mov dptr,#L24
    lcall jump_if_false
    mov a,#$01
    mov dptr,#$0006
    lcall load_value ; LDATA               
    mov dptr,#$0000
    lcall load_constant
    lcall int_greater
    mov dptr,#L24
    lcall jump_if_false
    mov a,#$01
    mov dptr,#$0007
    lcall load_value ; RDATA               
    mov a,#$01
    mov dptr,#$0006
    lcall load_value ; LDATA               
    lcall int_less
    mov a,#$01
    mov dptr,#$0007
    lcall load_value ; RDATA               
    mov dptr,#$00FF
    lcall load_constant
    lcall int_less
    lcall bool_and
    mov dptr,#L22
    lcall jump_if_false
    mov a,#$01
    mov dptr,#$0007
    lcall load_address ; RDATA               
    mov a,#$01
    mov dptr,#$0007
    lcall load_value ; RDATA               
    mov dptr,#$0001
    lcall load_constant
    lcall int_plus
    lcall store
    mov a,#$01
    mov dptr,#$0005
    lcall load_address ; RIGHT               
    mov dptr,#$0300
    lcall load_constant
    mov a,#$01
    mov dptr,#$0007
    lcall load_value ; RDATA               
    lcall int_plus
    lcall store
    lcall mark_stack
    mov a,#$01
    mov dptr,#$0005
    lcall load_value ; RIGHT               
    mov r5,#$01
    mov H1_LSB,#$05
    mov H1_MSB,#$00
    mov dptr,#$0003
    lcall call_usr_proc
    lcall L0 ; *** PROCEDURE SEND                
    ljmp L23
L22:     mov a,#$01
    mov dptr,#$0006
    lcall load_address ; LDATA               
    mov a,#$01
    mov dptr,#$0006
    lcall load_value ; LDATA               
    mov dptr,#$0001
    lcall load_constant
    lcall int_minus
    lcall store
L23:     mov a,#$01
    mov dptr,#$0004
    lcall load_address ; LEFT                
    mov dptr,#$0100
    lcall load_constant
    mov a,#$01
    mov dptr,#$0006
    lcall load_value ; LDATA               
    lcall int_plus
    lcall store
    lcall mark_stack
    mov a,#$01
    mov dptr,#$0004
    lcall load_value ; LEFT                
    mov r5,#$01
    mov H1_LSB,#$05
    mov H1_MSB,#$00
    mov dptr,#$0003
    lcall call_usr_proc
    lcall L0 ; *** PROCEDURE SEND                
L24:     mov a,#$01
    mov dptr,#$0003
    lcall load_address ; CONTROLS            
    mov a,P1
    lcall F1388
    mov dptr,#$00F8
    lcall load_constant
    lcall bool_and
    lcall store
    mov a,#$01
    mov dptr,#$0003
    lcall load_value ; CONTROLS            
    mov dptr,#$00B8
    lcall load_constant
    lcall int_notequal
    mov dptr,#L21
    lcall jump_if_false
    mov dptr,#$0000
    lcall load_constant
    mov dptr,#L11
    lcall jump_if_false
    ljmp halt
.END CODE
.SEGMENT XRAM
.XRAM
.ORG $0000
$INCLUDE FPASENDE.ASM
