Peter's Assemblerecke aus CK-Magazin

Moderator: Rockford

Benutzeravatar
Dr. Irata
Beiträge: 946
Registriert: 24.08.2021 14:40
Has thanked: 113 times
Been thanked: 275 times
Kontaktdaten:

Re: Peter's Assemblerecke aus CK-Magazin

Beitrag von Dr. Irata »

... ich habe das jetzt mal auf MADS umgesetzt und getestet - ob die Routine nun schneller ist weiß ich nicht, allerdings scheint sie etwas kompakter zu sein und hat alle Draw- Richtungen und Fälle integriert, ich habe dafür 4 einzelne (etwas kürzere Routinen) und frage vorher die Fälle ab.
Ich habe dennoch die Routine bei mir eingebaut und es funktioniert gut... den Code musste ich dabei kaum anpassen:

Code: Alles auswählen

.proc drawto
			
* Schnelle Berechnung von Linien 
* 
* Parameter: XALT,YALT: Startpunkt 
*           <X>,<Y>   : Endpunkt

DRAWTO		STX XNEU	;Endpunkt merken 
			STY YNEU
			LDX XALT	;Anfangspunkt
			LDY YALT	;zeichnen
			JSR PLOT	; Sprung zur Plot-Routine
			
			LDA #0		;Flags ruecksetzen
			STA XFLAG
			STA YFLAG
			LDX XNEU	;Endpunkt in Register
			LDY YNEU	;(einfacher)

			CPX XALT	;Anfang = Ende?
			BNE DR1
			CPY YALT
			BNE DR1
 			RTS			;ja fertig!==>

DR1			CPX XALT	;Neuer Punkt ist
 			BCC DRX		;links von alten P.->
 			INC XFLAG	;rechts!
			TXA			;Delta ausrechnen
			SBC XALT
			JMP DR2

DRX			DEC XFLAG	;links!
			SEC
 			LDA XALT	;Delta her.
 			SBC XNEU

DR2			STA DELTAX	;Abstand merken
 			CPY YALT	;neuer Punkt ist
 			BCC DRY		;oberhalb alten P. 
 			INC YFLAG	;unterhalb
 			TYA
 			SBC YALT	;Delta berechnen
			JMP DR3

DRY			DEC YFLAG	;oberhalb
			SEC
			LDA YALT	;Abstand (delta)
			SBC YNEU

DR3			STA DELTAY	;und merken
			LDA XALT	;Neuer P.= alter P.
			STA XNEU
			LDA YALT
			STA YNEU
			LDA DELTAX	;welches Delta ist
			CMP DELTAY	;groesser?
			BCC DRYSTEP	;DY ist groesser->

			LDA DELTAY	;DX ist groesser!
			ASL
			STA HILFA	;Naeherung fuer
			LDA #0		;Schrittweite
			ROL
			STA HILFA+1

						;SUB HILFA,DELTAX,HILFT
			sec
			lda HILFA
			sbc DELTAX
			sta HILFT
			lda HILFA+1
			sbc #0
			sta HILFT+1
						;SUB HILFT,DELTAX,HILFB
			sec
			lda HILFT
			sbc DELTAX
			sta HILFB
			lda HILFT+1
			sbc #0
			sta HILFB+1
			
			LDA DELTAX	;Zaehler fuer
			STA ZAEHLER	;Pixels einrichten

DXSCHL		CLC
			LDA XNEU	;X weiterzaehlen
			ADC XFLAG
			STA XNEU
			LDA HILFT+1	;Schritt nach Y
			BPL DRX5	;erfoderlich? Ja->
			clc			;ADD HILFA,HILFT
			lda HILFT
			adc HILFA
			sta HILFT
			lda HILFT+1
			adc HILFA+1
			sta HILFT+1
			JMP DRX4	;kein Schritt

DRX5		 
			clc			;ADD HILFB,HILFT
			lda HILFT
			adc HILFB
			sta HILFT
			lda HILFT+1
			adc HILFB+1
			sta HILFT+1
			
			CLC
			LDA YNEU	;Schritt nach Y
			ADC YFLAG	;ausfuehren
			STA YNEU

DRX4		LDX XNEU	;Pixel plotten
			LDY YNEU
			JSR PLOT			; Sprung zur Plot-Routine
			DEC ZAEHLER	;ganzes Deltax
			BNE DXSCHL	;abgefahren? nein->
			JMP DREND 	;fertig !==>

DRYSTEP		LDA DELTAX	;Delta Y war groesser
			ASL
			STA HILFA	;Naeherung fuer
			LDA #0		;Schritt in X-Richt.
			ROL
			STA HILFA+1
						;SUB HILFA,DELTAY,HILFT
			sec
			lda HILFA
			sbc DELTAY
			sta HILFT
			lda HILFA+1
			sbc #0
			sta HILFT+1
						;SUB HILFT,DELTAY,HILFB
			sec
			lda HILFT
			sbc DELTAY
			sta HILFB
			lda HILFT+1
			sbc #0
			sta HILFB+1
			
			LDA DELTAY	;Zaehler fuer Abstand
			STA ZAEHLER	;einrichten

DYSCHL		CLC
			LDA YNEU	;Y weiterzaehlen
			ADC YFLAG
			STA YNEU
			LDA HILFT+1	;Schritt nach X
			BPL DRY5	;noetig? ja ->
			clc			;ADD HILFA,HILFT
			lda HILFT
			adc HILFA
			sta HILFT
			lda HILFT+1
			adc HILFA+1
			sta HILFT+1
			JMP DRY4	;keine X-Korrektur

DRY5		clc			;ADD HILFB,HILFT
			lda HILFT
			adc HILFB
			sta HILFT
			lda HILFT+1
			adc HILFB+1
			sta HILFT+1
			CLC
			LDA XNEU	;X-Korrektur aus-
			ADC XFLAG	;fuehren
			STA XNEU
DRY4		LDX XNEU	;Pixel ausgeben
			LDY YNEU
			JSR PLOT		; Sprung zur Plot-Routine
			DEC ZAEHLER	;alle Punkte?
			BNE DYSCHL	;nein —->

DREND		LDX XNEU	;Ende der Linie
			LDY YNEU	;kann Anfang einer
			STX XALT	;neuen sein.
			STY YALT
			RTS	
			
			.endp
LG
Peter

Online
Benutzeravatar
Olix
Beiträge: 1093
Registriert: 17.08.2021 07:06
Has thanked: 132 times
Been thanked: 475 times
Kontaktdaten:

Re: Peter's Assemblerecke aus CK-Magazin

Beitrag von Olix »

... die vorletzte noch fehlende Assemblerecke:

Peters's Assemblerecke 20 - Text flott gedruckt (8-9/87)

... alle Texte und Inhalte stammen von Peter Finzel und wurden von mir nur optisch aufbereitet und nicht inhaltlich verändert.
Wie immer sind neben dem (aufpolierten) Original-Scan, eine von mir neu gesetzte PDF-Datei, das Programmlisting als Textfiles sowie ein Diskettenimage mit den Programmen angefügt:
Assemblerecke_20_CK.pdf
Original-Artikel aus CK 08/09-1987
(1.87 MiB) 28-mal heruntergeladen
Assemblerecke_20.pdf
Neu bearbeiteter Artikel
(79.8 KiB) 30-mal heruntergeladen
Assemblerecke_20.atr
Diskimage mit Assembler Sourcecode
(90.02 KiB) 29-mal heruntergeladen
Listing1.txt
Assembler Listing als PC-Textfile
(2.66 KiB) 25-mal heruntergeladen
PRINT.XEX
Das Demoprogramm als ausführbare Datei
(151 Bytes) 23-mal heruntergeladen

Online
Benutzeravatar
Olix
Beiträge: 1093
Registriert: 17.08.2021 07:06
Has thanked: 132 times
Been thanked: 475 times
Kontaktdaten:

Re: Peter's Assemblerecke aus CK-Magazin

Beitrag von Olix »

GESCHAFFT! Heute folgt die letzte noch fehlende Assemblerecke:

Peters's Assemblerecke 18 - Turbo Tape (4-5/87)

Diese ist etwas besonders, da sie kein Assembler Listing enthält. Dieses soll laut Artikelbeschreibung aber auf der CK-Programmservice-Diskette vorhanden sein. Falls also zufällig jemand im Besitz dieser Diskette ist, dann würde ich mich über ein Image der Selben sehr freuen ;)

Die abgedruckten Listings habe ich wie immer getestet. Allerdings diesmal nur in Altirra, da ich gerade kein Aufbau mit Kassettenlaufwerk habe. Die sind alle in meiner Museumsvitrine vor dem Einstauben geschützt und ich war zu faul eines davon heraus zu fummeln. Falls sich also jemand bereit erklären könnte die Listings noch auf echter Hardware auf Funktion zu testen, gerne Rückmeldung hier im Forum.

Hier nun alle zugehörigen Dateien:
Assemblerecke_18_CK.pdf
Original-Artikel aus CK 04/05-1987
(4.18 MiB) 25-mal heruntergeladen
Assemblerecke_18.pdf
Neu bearbeiteter Artikel
(89.72 KiB) 26-mal heruntergeladen
Assemblerecke_18atr.atr
Diskimage mit Programmfiles (DOS 2.5)
(130.02 KiB) 21-mal heruntergeladen
Listing1.txt
Listing 1 als PC-Textfile
(5.55 KiB) 22-mal heruntergeladen
Listing2.txt
Listing 2 als PC-Textfile
(2.35 KiB) 22-mal heruntergeladen
LISTING1.BAS
Listing 1 als Atari-Basic File
(5.12 KiB) 19-mal heruntergeladen
CBAUD.XEX
Der Tape-Speeder als ausführbare Datei
(847 Bytes) 21-mal heruntergeladen
BAERCOPY.BAS
Listing 2 als Atari-Basic File
(2.62 KiB) 20-mal heruntergeladen
CAS-Files.zip
Diverse Kassetten Image-Dateien
(8 KiB) 21-mal heruntergeladen
Da ich hier keine CAS Dateien direkt einstellen kann, habe ich diese in einer ZIP-Datei zusammengefasst. Folgende Dateien sind enthalten:

BAERCOPY.CAS
Das ist BASIC-Listing2 über CSAVE gespeichert

BAERCOPY_1200.CAS
Ebenfalls Listing2 aber bereits mit 1200 Baud über CSAVE gespeichert

CBAUD.CAS
Das CBAUD 1200 Kasseten-Speeder auf Kassette (mit SELECT gedrückt booten)

Game_1200.cas
Ein Maschinensprache Spiel im Turboformat gespeichert. ( mit SELECT und OPTION CBAUD.CAS lasen und von dort dann dieses Maschinenprogramm)

Online
Benutzeravatar
Olix
Beiträge: 1093
Registriert: 17.08.2021 07:06
Has thanked: 132 times
Been thanked: 475 times
Kontaktdaten:

Re: Peter's Assemblerecke aus CK-Magazin

Beitrag von Olix »

Das war es dann also... Arbeit getan.

Nein, noch nicht ganz.

Ich muss jetzt nochmal alle Folgen nacharbeiten und die Dateien einheitlich gestalten.
Danach wird es dann alle Assemblerecken nochmals zusammengefasst in einer ZIP-Datei geben.

Und natürlich nochmals ein riesiges Dankeschön und meine größte Hochachtung an Peter Finzel, der in den 80er Jahren nicht nur einige wirklich tolle Programme für den Atari geschrieben hat, sondern mit seinen Veröffentlichungen auch viele hilfreiche Informationen zur Programmierung des Atari zusammengestellt hat. Schade, dass er in der ATARI Szene nicht mehr präsent ist, aber falls doch einmal jemand zu ihm einen Kontakt herstellen kann, dann bitte von mir die besten Grüße und ein dickes Dankeschön für seine Werke übermitteln. Es wäre schön, wenn er wüsste, dass seine Artikel und Bücher auch nach fast 40 Jahren immer noch gelesen werden und für Atari-Assembler Neulinge auch heute noch eine große Hilfe darstellen.

... und wer weiß, vielleicht schlummert in seinen Schubladen ja auch noch die angekündigte aber nie erschienene Assemblerecke "Selbstbootende Disketten Teil 2" ...

Online
Benutzeravatar
Olix
Beiträge: 1093
Registriert: 17.08.2021 07:06
Has thanked: 132 times
Been thanked: 475 times
Kontaktdaten:

Re: Peter's Assemblerecke aus CK-Magazin

Beitrag von Olix »

Noch ein kleiner Nachtrag, für alle die eines der Assembler Listings ausprobieren möchte, aber sich nicht in der Bedienung des ATMAS-Assemblers auskennen.

Auf den angehängten ATR-Imagesdateien ist auch immer der ATMAS-II Assembler enthalten. Entweder wird er direkt gestartet oder wird aus dem DOS gestartet (ATMAS.COM).
Geladen wird ein Quellcode mit folgendem Befehl:

ESC drücken. (Dadurch gelangt man in die Befehlszeile unten)
RD:<QUELLCODENAME> (ohne Dateiextension)
2x ESC
Bild1.jpg
Der Assembler-Code ist nun geladen und kann auch bearbeitet werden.

Die Assemblierung wird gestartet durch Eingabe von CTRL+Y
danach springt man mit CTRL+P in den Maschinensprachemonitor und startet das Programm mit G
Nun noch die Startadresse in HEX-Form eingeben (ohne $ Zeichen) und das Programm wird gestartet.
Bild2.jpg
Mehr Infos zum ATMAS-II sowie Handbücher, Befehlreferenzkarte und Diskimages des Assemblers gibt es hier:
https://atariwiki.org/wiki/Wiki.jsp?page=Atmas%20II

ACHTUNG: Von mir wurde ein Fehler im ATMAS-Assembler entdeckt:
viewtopic.php?f=7&t=795

Dieser wurde aber von User DjayBee gefixt. Hier die fehlerfreie gepatchte Version:
ATMAS-II (1985)(Hofacker)(DE)[m][h LDX].atr
(90.02 KiB) 18-mal heruntergeladen
Bild3.jpg

Benutzeravatar
Mathy
Beiträge: 1170
Registriert: 18.06.2021 11:13
Wohnort: Heerlen, NL
Has thanked: 478 times
Been thanked: 261 times
Kontaktdaten:

Re: Peter's Assemblerecke aus CK-Magazin

Beitrag von Mathy »

.
Hallo Oliver

Olix hat geschrieben:
25.07.2023 12:53

Peters's Assemblerecke 18 - Turbo Tape (4-5/87)

Diese ist etwas besonders, da sie kein Assembler Listing enthält. Dieses soll laut Artikelbeschreibung aber auf der CK-Programmservice-Diskette vorhanden sein. Falls also zufällig jemand im Besitz dieser Diskette ist, dann würde ich mich über ein Image der Selben sehr freuen ;)
Vielleicht können GoodbyteXL oder Michael und Mattias von Waseo dir sagen ob die Diskette beim PD-Service erhältlich ist.

Tschüß

Mathy
Wer oder was hat denn da geblitzt?

Benutzeravatar
DjayBee
Beiträge: 676
Registriert: 17.08.2021 04:02
Has thanked: 418 times
Been thanked: 199 times
Kontaktdaten:

Re: Peter's Assemblerecke aus CK-Magazin

Beitrag von DjayBee »

Olix hat geschrieben:
25.07.2023 12:53
Diese ist etwas besonders, da sie kein Assembler Listing enthält. Dieses soll laut Artikelbeschreibung aber auf der CK-Programmservice-Diskette vorhanden sein. Falls also zufällig jemand im Besitz dieser Diskette ist, dann würde ich mich über ein Image der Selben sehr freuen ;)
Ist es die CKA16B.ATR bei Mr. Bacardi?

Online
Benutzeravatar
Olix
Beiträge: 1093
Registriert: 17.08.2021 07:06
Has thanked: 132 times
Been thanked: 475 times
Kontaktdaten:

Re: Peter's Assemblerecke aus CK-Magazin

Beitrag von Olix »

DjayBee hat geschrieben:
25.07.2023 15:07
Ist es die CKA16B.ATR bei Mr. Bacardi?
...ja, super!

Vielen Dank.

.... und die BASIC Programme sind auch drauf. Da hätte ich mir ja einiges an Arbeit sparen können :?

FlorianD
Beiträge: 185
Registriert: 19.08.2021 00:18
Has thanked: 21 times
Been thanked: 57 times
Kontaktdaten:

Re: Peter's Assemblerecke aus CK-Magazin

Beitrag von FlorianD »

Vielen Dank, lieber Olix, für diese tolle Arbeit!

Online
Benutzeravatar
Olix
Beiträge: 1093
Registriert: 17.08.2021 07:06
Has thanked: 132 times
Been thanked: 475 times
Kontaktdaten:

Re: Peter's Assemblerecke aus CK-Magazin

Beitrag von Olix »

FlorianD hat geschrieben:
12.08.2023 11:40
Vielen Dank, lieber Olix, für diese tolle Arbeit!
Vielen Dank, habe ich gerne gemacht.
Um nun endgültig einen Schlussstrich unter das Projekt zu ziehen, habe ich nun nochmals alle Folgen und Dateien überarbeitet und in komprimierter Form in einem neuen Thread zusammengefasst:

viewtopic.php?f=7&t=2070

Ich habe ganz bewusst, einen neuen Thread angefangen, so dass diese finale Fassung nicht in diesem inzwischen über 3 Seiten laufenden Beitrag untergeht.

Benutzeravatar
CharlieChaplin
Beiträge: 610
Registriert: 18.06.2021 22:59
Has thanked: 124 times
Been thanked: 161 times
Kontaktdaten:

Re: Peter's Assemblerecke aus CK-Magazin

Beitrag von CharlieChaplin »

In der CK gab es auch mal ein Turbotape Programm namens "Speedtape.BAS", dieses konnte Dateien (Basic und ML, wenn ich mich nicht irre) auf ca. 1000 Baud umkopieren. Da kein spez. Loader dabei war vermute ich mal, dass diese 1000 Baud Dateien dann einfach so wie normale 600 Baud Tapes gebootet werden konnten. Sicher weiß ich das aber nicht, da ich es nie getestet habe. Das Programm Speedtape lief unter Atari Basic und nutzte dessen freien Speicherbereich, also max. 32K und weil das Programm selber ca. 2K lang war konnte man nur Tapes mit max. 30K Länge umkopieren (daher habe ich es nicht getestet, denn 30K waren mir viel zu wenig).

CBAUD von Arndt Bär (der später auch das Programm Trackcopy für die Turbo 1050 codete) konnte immerhin schon 1200 Baud, doch zum Booten solcher 1200 Baud Tapes war dann ein spez. Bootloader notwendig. Das Kopierprogramm, welches Tapes von 600 Baud auf 1200 Baud umkopiert ist leider auch in Atari Basic verfasst und hat daher die gleiche Limitierung, wie Speedtape (max. 32K minus Länge vom Copyprogramm, also wieder ca. 30k). Man kann da vielleicht noch ein wenig tricksen, indem man TB XL für das Kopierprogramm benutzt, dann hat man ca. 34K zur Verfügung oder man kompiliert es mit dem TB XL Compiler, dann sind es ca. 37K. Dennoch ist es für die meisten kommerz. Tapes einfach zu wenig Speicher. Zybex, Tomahawk und viele andere laaange Tapes lassen sich damit dann nicht auf 1200 Baud umkopieren.

Es sei denn... jemand würde ein solches Kopierprogramm in ML entwickeln, das RAM unter dem OS nutzt und von 64K base RAM dann 54K, 56K oder 58K zum Kopieren bereitstellt. Ob der spez. Loader aber so lange Tapes überhaupt booten/laden kann, weiß ich nicht. Aber hey, wer arbeitet denn heute noch mit Tapes? Und warum dann mit 1200 Baud, wenn es ja auch Turbo Tapes mit 6000 Baud und mehr gibt. Es gibt ja inzwischen sogar immer weniger Atarianer die sich mit Floppy und Diskette herumschlagen wollen, weil ihnen diese zu langsam und zu umständlich sind...

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast