; ASMPLOT.ASM: Setzt einen Punkt im Grafik-Bildschirm ; ; Autor: Frank Riemenschneider ; ; Eingabe: CX = X-Koordinate (0-239) ; DX = Y-Koordinate (0-63) ; ; Ausgabe: keine DATASEG extrn Farbe : word extrn gcursorx : word extrn gcursory : word CODESEG PROC AsmPlot push ax push bx push cx ; Stack kommen push dx push si push di mov [gcursorx],ax mov [gcursory],bx mov cx,ax mov dx,bx mov ah, 12 mov al, [BYTE farbe] int 16 pop di ; Alle Register wieder von den B„umen, pop si ; „h, Stack herunterholen pop dx pop cx pop bx pop ax ret ; Back home ENDP ; PLOT.ASM: Regelt die Parameterbernahme von Turbo Pascal aus fr ; die ASMPLOT-Routine in Turbo Assembler ; ; Autor: Frank Riemenschneider ; ; Eingabe: Parameter der PLOT-Funktion auf dem Stack ; Plot( X, Y:WORD ); ; Ausgabe: keine CODESEG PROC Plot FAR Xkoor:WORD, Ykoor:WORD PUBLIC Plot mov ax, [Xkoor] ; X- und Y-Koordinaten in die mov bx, [Ykoor] ; entsprechenden Register bringen cmp ax, 0 ; X-Koordinate < 0? jl PlotExit ; Ja -> Rcksprung cmp ax, 239 ; X-Koordinate > 239 jg PlotExit ; Ja -> Rcksprung cmp bx, 0 ; Y-Koordinate < 0? jl PlotExit ; Ja -> Rcksprung cmp bx, 63 ; Y-Koordinate > 63? jg PlotExit ; Ja -> Rcksprung call AsmPlot ; Plot-Routine aufrufen PlotExit: ret ; Back home ENDP