Guest User

Untitled

a guest
May 15th, 2018
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .model small
  2. .stack 100h
  3. .data
  4. rows STRUC
  5.     row1 DB 201,205,205,205,203,205,205,205,203,205,205,205,187,32,32,32,201,205,205,205,203,205,205,205,203,205,205,205,187,13,10,"$"
  6.     row2 DB 186,32,32,32,186,32,32,32,186,32,32,32,186,32,32,32,186,32,49,32,186,32,50,32,186,32,51,32,186,13,10,"$"
  7.     row3 DB 204,205,205,205,206,205,205,205,206,205,205,205,185,32,32,32,204,205,205,205,206,205,205,205,206,205,205,205,185,13,10,"$"
  8.     row4 DB 186,32,32,32,186,32,32,32,186,32,32,32,186,32,32,32,186,32,52,32,186,32,53,32,186,32,54,32,186,13,10,"$"
  9.     row5 DB 204,205,205,205,206,205,205,205,206,205,205,205,185,32,32,32,204,205,205,205,206,205,205,205,206,205,205,205,185,13,10,"$"
  10.     row6 DB 186,32,32,32,186,32,32,32,186,32,32,32,186,32,32,32,186,32,55,32,186,32,56,32,186,32,57,32,186,13,10,"$"
  11.     row7 DB 200,205,205,205,202,205,205,205,202,205,205,205,188,32,32,32,200,205,205,205,202,205,205,205,202,205,205,205,188,13,10,"$"
  12. rows ENDS
  13. field rows <>
  14.  
  15. strings STRUC
  16.     error DB "Falsche Eingabe!$"
  17.     horseerror DB "Zug nicht zulaessig!$"
  18.     figureerror DB "Feld von Figur x besetzt!$"
  19.     fieldtitle DB "Spielfeld:",32,32,32,32,32,32,"Positionen:",13,10,13,10,"$"
  20.     menu DB "(1) Spielen",13,10,"(2) Highscore",13,10,"(3) Ende",13,10,"$"
  21.     figuremove DB "Figur auswaehlen (1,2,a oder b)",13,10,"$"
  22.     horsedestination DB "Moegliche Ziele: x und y",13,10,"$"
  23.     movecount DB 13,10,13,10,"Anzahl Zuege: xx$"
  24.     win DB "Gewonnen in xx Zuegen!$"
  25. strings ENDS
  26. speech strings <>
  27.  
  28. variables STRUC
  29.     moves DB 0
  30.     input DB ?
  31.     curfield DB ?
  32.     movewish DB ?
  33.     horsemove DB ?
  34.     fig1 DB ?
  35.     fig2 DB ?
  36.     figa DB ?
  37.     figb DB ?
  38.     testvar DB "xx"
  39. variables ENDS
  40. var variables <>
  41.  
  42. .code
  43. Start:
  44. mov ax,@data ;DS initialisieren
  45. mov ds,ax
  46.  
  47. dude MACRO
  48. mov ax,37
  49. mov bl,10
  50. div bl
  51. add ax,3030h
  52. mov var.testvar[1],ah
  53. mov var.testvar[0],al
  54. dude ENDM
  55.  
  56. paintField MACRO
  57. mov ah,09h
  58. mov dx,OFFSET speech.fieldtitle
  59. int 21h
  60. mov dx,OFFSET field.row1
  61. int 21h
  62. mov dx,OFFSET field.row2
  63. int 21h
  64. mov dx,OFFSET field.row3
  65. int 21h
  66. mov dx,OFFSET field.row4
  67. int 21h
  68. mov dx,OFFSET field.row5
  69. int 21h
  70. mov dx,OFFSET field.row6
  71. int 21h
  72. mov dx,OFFSET field.row7
  73. int 21h
  74. mov dx,OFFSET speech.movecount
  75. int 21h
  76. ENDM
  77.  
  78. resetField MACRO
  79. mov field.row2[2],49
  80. mov field.row2[6],32
  81. mov field.row2[10],97
  82. mov field.row4[2],32
  83. mov field.row4[6],32
  84. mov field.row4[10],32
  85. mov field.row6[2],50
  86. mov field.row6[6],32
  87. mov field.row6[10],98
  88. ENDM
  89.  
  90. paintField
  91. resetField
  92. paintField
  93.  
  94. resetGame MACRO
  95.     mov var.fig1,1
  96.     mov var.fig2,7
  97.     mov var.figa,3
  98.     mov var,figb,9
  99.     mov var.moves,0
  100. ENDM
  101.  
  102. horsecheck MACRO
  103.     horsecheckoutput MACRO var1,var2 ;Parameter: Ziele in ASCII
  104.         mov speech.horsedestination[17],var1
  105.         mov speech.horsedestination[23],var2
  106.         mov ah,09h
  107.         mov dx,OFFSET speech.horsedestination
  108.         int 21h
  109.     ENDM
  110.    
  111.     horsecheckinput MACRO
  112.         mov ah,08h
  113.         int 21h ;einzelnes Zeichen eingeben
  114.         mov var.movewish,al
  115.     ENDM
  116.    
  117.     horsecheckerror MACRO
  118.         mov ah,09h
  119.         mov dx,OFFSET speech.horseerror
  120.         int 21h
  121.     ENDM
  122.  
  123.     horseStage1:
  124.     cmp var.curfield,1
  125.     jnz horseStage2
  126.     horsecheckoutput 54,56 ;6 oder 8
  127.     horsecheckinput
  128.     cmp var.movewish,6
  129.     jnz horseStage11
  130.     mov var.horsemove,6
  131.     jmp horseFinalstage
  132.     horseStage11:
  133.     cmp var.movewish,8
  134.     jnz horseStage12
  135.     mov var.horsemove,8
  136.     jmp horseFinalstage
  137.     horseStage12:
  138.     horsecheckerror
  139.     ;jmp move
  140.  
  141.     horseStage2:
  142.     cmp var.curfield,2
  143.     jnz horseStage3
  144.     horsecheckoutput 55,57 ;7 oder 9
  145.     horsecheckinput
  146.     cmp var.movewish,7
  147.     jnz horseStage21
  148.     mov var.horsemove,7
  149.     jmp horseFinalstage
  150.     horseStage21:
  151.     cmp var.movewish,9
  152.     jnz horseStage22
  153.     mov var.horsemove,9
  154.     jmp horseFinalstage
  155.     horseStage22:
  156.     horsecheckerror
  157.     ;jmp move
  158.  
  159.     horseStage3:
  160.     cmp var.curfield,3
  161.     jnz horseStage4
  162.     horsecheckoutput 52,56 ;4 oder 8
  163.     horsecheckinput
  164.     cmp var.movewish,4
  165.     jnz horseStage31
  166.     mov var.horsemove,4
  167.     jmp horseFinalstage
  168.     horseStage31:
  169.     cmp var.movewish,8
  170.     jnz horseStage32
  171.     mov var.horsemove,8
  172.     jmp horseFinalstage
  173.     horseStage32:
  174.     horsecheckerror
  175.     ;jmp move
  176.  
  177.     horseStage4:
  178.     cmp var.curfield,4
  179.     jnz horseStage6
  180.     horsecheckoutput 51,57 ;3 oder 9
  181.     horsecheckinput
  182.     cmp var.movewish,3
  183.     jnz horseStage41
  184.     mov var.horsemove,3
  185.     jmp horseFinalstage
  186.     horseStage41:
  187.     cmp var.movewish,9
  188.     jnz horseStage42
  189.     mov var.horsemove,9
  190.     jmp horseFinalstage
  191.     horseStage42:
  192.     horsecheckerror
  193.     ;jmp move
  194.  
  195.     horseStage6:
  196.     cmp var.curfield,6
  197.     jnz horseStage7
  198.     horsecheckoutput 49,55 ;1 oder 7
  199.     horsecheckinput
  200.     cmp var.movewish,1
  201.     jnz horseStage61
  202.     mov var.horsemove,1
  203.     jmp horseFinalstage
  204.     horseStage61:
  205.     cmp var.movewish,7
  206.     jnz horseStage62
  207.     mov var.horsemove,7
  208.     jmp horseFinalstage
  209.     horseStage62:
  210.     horsecheckerror
  211.     ;jmp move
  212.  
  213.     horseStage7:
  214.     cmp var.curfield,7
  215.     jnz horseStage8
  216.     horsecheckoutput 50,54 ;2 oder 6
  217.     horsecheckinput
  218.     cmp var.movewish,2
  219.     jnz horseStage71
  220.     mov var.horsemove,2
  221.     jmp horseFinalstage
  222.     horseStage71:
  223.     cmp var.movewish,6
  224.     jnz horseStage72
  225.     mov var.horsemove,6
  226.     jmp horseFinalstage
  227.     horseStage72:
  228.     horsecheckerror
  229.     ;jmp move
  230.  
  231.     horseStage8:
  232.     cmp var.curfield,8
  233.     jnz horseStage9
  234.     horsecheckoutput 50,54 ;1 oder 3
  235.     horsecheckinput
  236.     cmp var.movewish,1
  237.     jnz horseStage81
  238.     mov var.horsemove,1
  239.     jmp horseFinalstage
  240.     horseStage81:
  241.     cmp var.movewish,3
  242.     jnz horseStage82
  243.     mov var.horsemove,3
  244.     jmp horseFinalstage
  245.     horseStage82:
  246.     horsecheckerror
  247.     ;jmp move
  248.  
  249.     horseStage9:
  250.     horsecheckoutput 50,54 ;2 oder 4
  251.     horsecheckinput
  252.     cmp var.movewish,2
  253.     jnz horseStage81
  254.     mov var.horsemove,2
  255.     jmp horseFinalstage
  256.     horseStage81:
  257.     cmp var.movewish,4
  258.     jnz horseStage82
  259.     mov var.horsemove,4
  260.     jmp horseFinalstage
  261.     horseStage82:
  262.     horsecheckerror
  263.     ;jmp move
  264.  
  265.     horseFinalstage:
  266. ENDM
  267.  
  268. figurecheck MACRO
  269.     figurecheckoutput MACRO var1 ;Parameter: Spielfigur
  270.         mov speech.figureerror[15],var1
  271.         mov ah,09h
  272.         mov dx,OFFSET speech.figureerror
  273.         int 21h
  274.     ENDM
  275.    
  276.     figureStage1:
  277.     mov dx,var.fig1
  278.     cmp var.horsemove,dx
  279.     jnz figureStage2
  280.     figurecheckoutput 49
  281.     ;jmp move
  282.    
  283.     figureStage2:
  284.     mov dx,var.fig2
  285.     cmp var.horsemove,dx
  286.     jnz figureStagea
  287.     figurecheckoutput 50
  288.     ;jmp move
  289.    
  290.     figureStagea:
  291.     mov dx,var.figa
  292.     cmp var.horsemove,dx
  293.     jnz figureStageb
  294.     figurecheckoutput 97
  295.     ;jmp move
  296.    
  297.     figureStageb:
  298.     mov dx,var.figb
  299.     cmp var.horsemove,dx
  300.     jnz figureFinalstage
  301.     figurecheckoutput 98
  302.     ;jmp move
  303.    
  304.     figureFinalstage:
  305.     mov dx,var.horsemove
  306.     mov var.finalmove,dx
  307.     inc var.moves
  308. ENDM
  309.  
  310. mov ah,4Ch
  311. int 21h
  312.  
  313. END Start
Add Comment
Please, Sign In to add comment