home *** CD-ROM | disk | FTP | other *** search
/ messroms.de / 2007-01-13_www.messroms.de.zip / VZ200 / TOOLS / ZCCSRC.ZIP / demo.asm next >
Assembly Source File  |  2000-03-08  |  4KB  |  360 lines

  1. ;    Small C z80;
  2. ;    Coder (2.5,00/03/03)
  3. ;    Front End (2.7,84/11/28)
  4.     .globl    .gchar,.gint,.pchar,.pint,.bool
  5.     .globl    .sxt
  6.     .globl    .or,.and,.xor
  7.     .globl    .eq,.ne,.gt,.le,.ge,.lt,.uge,.ult,.ugt,.ule
  8.     .globl    .asr,.asl
  9.     .globl    .sub,.neg,.com,.lneg,.mul,.div,.mod
  10.     .globl    .case
  11.     .module    demo.i
  12.     .area    _CODE
  13. main:
  14.     push    ix
  15.     ld    ix, #0
  16.     add    ix, sp
  17.     push    bc
  18.     push    bc
  19.     ld    hl,#28672
  20.     push    hl
  21.     ld    a,#1
  22.     call    setbase
  23.     pop    bc
  24.     ld    hl,#0
  25.     push    hl
  26.     ld    a,#1
  27.     call    mode
  28.     pop    bc
  29.     ld    hl,#.0+0
  30.     push    hl
  31.     ld    hl,#12    ;6(ix) [argc]
  32.     add    hl,sp
  33.     call    .gint
  34.     push    hl
  35.     ld    a,#2
  36.     call    printf
  37.     pop    bc
  38.     pop    bc
  39.     ld    hl,#.0+13
  40.     push    hl
  41.     ld    hl,#10    ;4(ix) [argv]
  42.     add    hl,sp
  43.     call    .gint
  44.     push    hl
  45.     ld    hl,#0
  46.     add    hl,hl
  47.     pop    de
  48.     add    hl,de
  49.     call    .gint
  50.     push    hl
  51.     ld    a,#2
  52.     call    printf
  53.     pop    bc
  54.     pop    bc
  55.     ld    hl,#.0+26
  56.     push    hl
  57.     ld    a,#1
  58.     call    printf
  59.     pop    bc
  60.     ld    a,#0
  61.     call    getch
  62. .2:
  63.     ld    a,#0
  64.     call    inch
  65.     ld    a,h
  66.     or    l
  67.     j    z,.3
  68.     j    .2
  69. .3:
  70.     ld    hl,#0
  71.     push    hl
  72.     ld    a,#1
  73.     call    rand
  74.     pop    bc
  75.     ld    hl,#2    ;-2(ix) [i]
  76.     add    hl,sp
  77.     push    hl
  78.     ld    hl,#1
  79.     pop    de
  80.     call    .pint
  81. .4:
  82.     ld    hl,#2    ;-2(ix) [i]
  83.     add    hl,sp
  84.     call    .gint
  85.     push    hl
  86.     ld    hl,#50
  87.     pop    de
  88.     call    .lt
  89.     ld    a,h
  90.     or    l
  91.     j    nz,.6
  92.     j    .7
  93. .5:
  94.     ld    hl,#2    ;-2(ix) [i]
  95.     add    hl,sp
  96.     push    hl
  97.     call    .gint
  98.     inc    hl
  99.     pop    de
  100.     call    .pint
  101.     dec    hl
  102.     j    .4
  103. .6:
  104.     ld    hl,#0    ;-4(ix) [j]
  105.     add    hl,sp
  106.     push    hl
  107.     ld    hl,#10000
  108.     push    hl
  109.     ld    a,#1
  110.     call    rand
  111.     pop    bc
  112.     pop    de
  113.     call    .pint
  114.     ld    hl,#.0+57
  115.     push    hl
  116.     ld    hl,#2    ;-4(ix) [j]
  117.     add    hl,sp
  118.     call    .gint
  119.     push    hl
  120.     ld    hl,#4    ;-4(ix) [j]
  121.     add    hl,sp
  122.     call    .gint
  123.     push    hl
  124.     ld    a,#1
  125.     call    sqrt
  126.     pop    bc
  127.     push    hl
  128.     ld    a,#3
  129.     call    printf
  130.     pop    bc
  131.     pop    bc
  132.     pop    bc
  133.     j    .5
  134. .7:
  135.     ld    hl,#.0+26
  136.     push    hl
  137.     ld    a,#1
  138.     call    printf
  139.     pop    bc
  140.     ld    a,#0
  141.     call    getch
  142. .8:
  143.     ld    a,#0
  144.     call    inch
  145.     ld    a,h
  146.     or    l
  147.     j    z,.9
  148.     j    .8
  149. .9:
  150.     ld    hl,#1
  151.     push    hl
  152.     ld    a,#1
  153.     call    mode
  154.     pop    bc
  155.     ld    hl,#2    ;-2(ix) [i]
  156.     add    hl,sp
  157.     push    hl
  158.     ld    hl,#0
  159.     pop    de
  160.     call    .pint
  161. .10:
  162.     ld    hl,#2    ;-2(ix) [i]
  163.     add    hl,sp
  164.     call    .gint
  165.     push    hl
  166.     ld    hl,#128
  167.     pop    de
  168.     call    .lt
  169.     ld    a,h
  170.     or    l
  171.     j    nz,.12
  172.     j    .13
  173. .11:
  174.     ld    hl,#2    ;-2(ix) [i]
  175.     add    hl,sp
  176.     push    hl
  177.     call    .gint
  178.     inc    hl
  179.     pop    de
  180.     call    .pint
  181.     dec    hl
  182.     j    .10
  183. .12:
  184.     ld    hl,#2    ;-2(ix) [i]
  185.     add    hl,sp
  186.     call    .gint
  187.     push    hl
  188.     ld    hl,#0
  189.     push    hl
  190.     ld    hl,#127
  191.     push    hl
  192.     ld    hl,#8    ;-2(ix) [i]
  193.     add    hl,sp
  194.     call    .gint
  195.     pop    de
  196.     call    .sub
  197.     push    hl
  198.     ld    hl,#63
  199.     push    hl
  200.     ld    hl,#10    ;-2(ix) [i]
  201.     add    hl,sp
  202.     call    .gint
  203.     push    hl
  204.     ld    hl,#3
  205.     pop    de
  206.     call    .and
  207.     push    hl
  208.     ld    a,#5
  209.     call    line
  210.     ex    de,hl
  211.     ld    hl,#10
  212.     add    hl,sp
  213.     ld    sp,hl
  214.     ex    de,hl
  215.     ld    hl,#2    ;-2(ix) [i]
  216.     add    hl,sp
  217.     call    .gint
  218.     push    hl
  219.     ld    hl,#1
  220.     pop    de
  221.     add    hl,de
  222.     push    hl
  223.     ld    hl,#8
  224.     push    hl
  225.     ld    a,#2
  226.     call    sound
  227.     pop    bc
  228.     pop    bc
  229.     j    .11
  230. .13:
  231.     ld    hl,#1
  232.     push    hl
  233.     ld    a,#1
  234.     call    bgrd
  235.     pop    bc
  236.     ld    hl,#2    ;-2(ix) [i]
  237.     add    hl,sp
  238.     push    hl
  239.     ld    hl,#0
  240.     pop    de
  241.     call    .pint
  242. .14:
  243.     ld    hl,#2    ;-2(ix) [i]
  244.     add    hl,sp
  245.     call    .gint
  246.     push    hl
  247.     ld    hl,#64
  248.     pop    de
  249.     call    .lt
  250.     ld    a,h
  251.     or    l
  252.     j    nz,.16
  253.     j    .17
  254. .15:
  255.     ld    hl,#2    ;-2(ix) [i]
  256.     add    hl,sp
  257.     push    hl
  258.     call    .gint
  259.     inc    hl
  260.     pop    de
  261.     call    .pint
  262.     dec    hl
  263.     j    .14
  264. .16:
  265.     ld    hl,#0
  266.     push    hl
  267.     ld    hl,#4    ;-2(ix) [i]
  268.     add    hl,sp
  269.     call    .gint
  270.     push    hl
  271.     ld    hl,#127
  272.     push    hl
  273.     ld    hl,#63
  274.     push    hl
  275.     ld    hl,#10    ;-2(ix) [i]
  276.     add    hl,sp
  277.     call    .gint
  278.     pop    de
  279.     call    .sub
  280.     push    hl
  281.     ld    hl,#10    ;-2(ix) [i]
  282.     add    hl,sp
  283.     call    .gint
  284.     push    hl
  285.     ld    hl,#3
  286.     pop    de
  287.     call    .and
  288.     push    hl
  289.     ld    a,#5
  290.     call    line
  291.     ex    de,hl
  292.     ld    hl,#10
  293.     add    hl,sp
  294.     ld    sp,hl
  295.     ex    de,hl
  296.     ld    hl,#2    ;-2(ix) [i]
  297.     add    hl,sp
  298.     call    .gint
  299.     push    hl
  300.     ld    hl,#1
  301.     pop    de
  302.     add    hl,de
  303.     push    hl
  304.     ld    hl,#6
  305.     push    hl
  306.     ld    a,#2
  307.     call    sound
  308.     pop    bc
  309.     pop    bc
  310.     j    .15
  311. .17:
  312.     ld    a,#0
  313.     call    getch
  314.     ld    hl,#0
  315.     push    hl
  316.     ld    a,#1
  317.     call    mode
  318.     pop    bc
  319.     ld    hl,#0
  320.     push    hl
  321.     ld    a,#1
  322.     call    bgrd
  323.     pop    bc
  324.     ld    hl,#0
  325.     j    .1
  326. .1:
  327.     pop    bc
  328.     pop    bc
  329.     pop    ix
  330.     ret
  331.     .area    _DATA
  332. .0:    .db    65,82,71,67,32,32,32,58
  333.     .db    32,37,117,10,0,65,82,71
  334.     .db    86,91,48,93,58,32,37,115
  335.     .db    10,0,45,32,80,82,69,83
  336.     .db    83,32,65,78,89,32,75,69
  337.     .db    89,32,84,79,32,67,79,78
  338.     .db    84,73,78,85,69,32,45,10
  339.     .db    0,83,81,82,84,40,37,100
  340.     .db    41,32,61,32,37,100,10,0
  341.     .area    _BSS
  342.     .globl    etext
  343.     .globl    edata
  344.     .globl    main
  345.     .globl    setbase
  346.     .globl    mode
  347.     .globl    printf
  348.     .globl    getch
  349.     .globl    inch
  350.     .globl    rand
  351.     .globl    sqrt
  352.     .globl    line
  353.     .globl    sound
  354.     .globl    bgrd
  355.  
  356. ;0 error(s) in compilation
  357. ;    Literal pool:72
  358. ;    Global pool :416
  359. ;    Macro pool  :36
  360.