Vorheriger Eintrag Übersicht Nächster Eintrag

PaSo's Virtuelles Computermuseum: Amiga Software Entwicklung - Assembler

Asembler war meine "erste" Sprache auf allen Systemen, egal ob C64/128 (MOS 6502/6510), Amiga (Motorolla 68xxx) oder Intel Prozessoren (i80x6).

Auf dem Amiga begann meine Kariere mit folgenden drei Assembler.

Kuma K-SEKA Assembler 2.1

Ein Bitgewordener Alptraum. Ich habe einige Programme damit erstellt, es ging irgendwie... Assembler ist halt nix für Weicheier.

Mir war der SEKA aber dann doch zu hart, deshalb bin ich kurze Zeit später auf den DevPack Assembler von HiSoft umgestiegen.
Kuma K-SEKA Assembler 2.1 - Programmstart
Kuma K-SEKA Assembler 2.1 - Programmstart


Kuma K-SEKA Assembler 2.1 - Der Zeileneditor
Kuma K-SEKA Assembler 2.1 - Der Zeileneditor


DevPack Assembler 2.14D von HiSoft

Dieser Assembler verfügte bereits über eine rudimentäre IDE sowie einen Debugger. Der Preis lag damals (glaube ich) bei 149,-- DM (Bitte korrigieren)
HiSoft DevPac Assembler 2.14D - Programmstart und Dateiauswahl
HiSoft DevPac Assembler 2.14D - Programmstart und Dateiauswahl


HiSoft DevPac Assembler 2.14D - Programmstart und Dateiauswahl
HiSoft DevPac Assembler 2.14D - Programmstart und Dateiauswahl


HiSoft DevPac Assembler 2.14D - Der Editor mit geöffneten Quellcode - Aus: Programmieren in Maschinensprache (Markt & Technik)
HiSoft DevPac Assembler 2.14D - Der Editor mit geöffneten Quellcode - Aus: Programmieren in Maschinensprache (Markt & Technik)


HiSoft DevPac Assembler 2.14D - Der Debugger - Geöffnet ist das Programm "EndCli" aus dem Verzeichnis DF0:c
HiSoft DevPac Assembler 2.14D - Der Debugger - Geöffnet ist das Programm "EndCli" aus dem Verzeichnis DF0:c


MaxonASM Assembler V1.1 von Maxon

Der "MaxonASM Assembler V1.1" war ein sehr komfortabler und schneller Assembler mit einer für die damalige Zeit sehr guten IDE, er unterstützte alle Motorolla CPU's vom 68000 bis 68040 sowie die FPU/MMU. Der Preis lag damals (glaube ich) bei 79,-- DM (Bitte korrigieren)
Maxon MaxonASM Assembler V1.1 - Programmstart und Dateiauswahl
Maxon MaxonASM Assembler V1.1 - Programmstart und Dateiauswahl


Maxon MaxonASM Assembler V1.1 - Editor und Beispielprogram "WindowTest.ASM"
Maxon MaxonASM Assembler V1.1 - Editor und Beispielprogram "WindowTest.ASM"


Maxon MaxonASM Assembler V1.1 - Editor und Beispielprogram "CopperDemo.ASM"
Maxon MaxonASM Assembler V1.1 - Editor und Beispielprogram "CopperDemo.ASM"


Maxon MaxonASM Assembler V1.1 - Ausgabe von "CopperDemo"
Maxon MaxonASM Assembler V1.1 - Ausgabe von "CopperDemo"


Maxon MaxonASM Assembler V1.1 - Startdiskette unter Kickstart 3.1
Maxon MaxonASM Assembler V1.1 - Startdiskette unter Kickstart 3.1


Maxon MaxonASM Assembler V1.1 - Handbuch
Maxon MaxonASM Assembler V1.1 - Handbuch


Maxon MaxonASM Assembler V1.1 - Handbuch
Maxon MaxonASM Assembler V1.1 - Handbuch


Maxon MaxonASM Assembler V1.1 - Handbuch
Maxon MaxonASM Assembler V1.1 - Handbuch


Maxon MaxonASM Assembler V1.1 - Handbuch
Maxon MaxonASM Assembler V1.1 - Handbuch


Maxon MaxonASM Assembler V1.1 - Verpackung
Maxon MaxonASM Assembler V1.1 - Verpackung


Ein kleines Extra - Original Assembler Code von PaSo

1992 habe ich zum zweiten male bei → Jugend Forscht teilgenommen, dafür brauchte ich für meinen Amiga 2000 ein Laufband als "Eye catcher". Das folgende Programm entstand an einem Nachmittag unter erschwerten Bedingungen.

Laufband für Jugend Forscht 1992 - Der originale Text ist leider nicht mehr bekannt (hust hust)
Laufband für Jugend Forscht 1992 - Der originale Text ist leider nicht mehr bekannt (hust hust)


Hier ist der Original Quellcode, unzensiert und unpluged...:
    SECTION "MainCode",CODE
    incdir Include:include3.x/
    include exec/exec_lib.i
    include exec/memory.i
    include dos/dos_lib.i
    include dos/dosextens.i
    include intuition/intuition_lib.i
    include intuition/intuition.i
    include graphics/graphics_lib.i
    bra.s .Woher_komme_ich_wohin_gehe_ich
    VERSION_String <"Laufschrift für Jugend Forscht 1992 - V1.0 Patric Sokoll">
.Woher_komme_ich_wohin_gehe_ich
    move.l 4.w,a6
    suba.l a1,a1
    jsr _LVOFindtask(a6)
    move.l d0,a4
    tst.l pr_CLI(a4)
    bne.s .Start_per_SHELL
    lea pr_MsgPort(a4),a0
    jsr _LVOWaitPort(a6)
    lea pr_MsgPort(a4),a0
    jsr _LVOGetMsg(a6)
    lea .WB_MSG(pc),a5
    move.l d0,(a5)
.Start_per_SHELL
    bsr.s Main
    lea .WB_MSG(pc),a2
    tst.l (a2)
    beq.s .Exit
    move.l 4.w,a6
    jsr _LVOForbid(a6)
    move.l (a2),a1
    jsr _LVOReplyMsg(a6)
.Exit   moveq #0,d0
    rts
.WB_Msg DL 0
Main    moveq #0,d0
    lea _IntuitionName(pc),a1
    jsr _LVOOpenLibrary(a6)
    lea _IntuitionBase(pc),a0
    move.l d0,(a0)
    beq .Error
    moveq #0,d0
    lea _GfxName(pc),a1
    jsr _LVOOpenLibrary(a6)
    lea _GfxBase(pc),a0
    move.l d0,(a0)
    beq .Error

    bsr Laufschrift_Main

    move.l 4.w,a6
    move.l _IntuitionBase(pc),a1
    jsr _LVOCloseLibrary(a6)
    move.l _GfxBase(pc),a1
    jsr _LVOCloseLibrary(a6)
.Error  rts
_IntuitionBase DL 0
_GfxBase DL 0
_IntuitionName DB "intuition.library",0
_GfxName DB "graphics.library",0
    even
Laufschrift_Main
    move.l _IntuitionBase(pc),a6
    suba.l a0,a0
    lea LaufSchriftScreenTags(pc),a1
    jsr _LVOOpenScreenTagList(a6)
    lea LaufSchriftScreenPointer(pc),a5
    move.l d0,(a5)
    beq LaufSchrift_Ende
    lea LaufSchriftScreenPointer1(pc),a5
    move.l d0,(a5)
    suba.l a0,a0
    lea LaufSchriftWindowTags(pc),a1
    jsr _LVOOpenWindowTagList(a6)
    lea LaufSchriftWindowPointer(pc),a5
    move.l d0,(a5)
    beq LaufSchrift_Ende1
    move.l d0,a0
    lea LeerMausData,a1
    moveq #1,d0
    moveq #1,d1
    moveq #-1,d2
    moveq #-1,d3
    jsr _LVOSetPointer(a6)
    move.l LaufSchriftWindowPointer(pc),a1
    lea LaufSchriftRastPort(pc),a0
    move.l wd_RPort(a1),(a0)
    move.l LaufSchriftScreenPointer(pc),a5
    move.l sc_RastPort+rp_BitMap(a5),a5
    addq.w #bm_Planes,a5
    lea BitMapPointer(pc),a4
    move.l a5,(a4)
.Loop   move.l _GfxBase(pc),a6
    jsr _LVOWaitTOF(a6)
    moveq #3,d6
    move.l BitMapPointer(pc),a5
.Scroll_Main
    move.l (a5)+,a4
    add.w #40*224,a4
    moveq #30,d7
.Scroll_Zeile
    move.l a4,a3
    andi.b #% 01111,CCR
    roxl.w 38(a4)
    roxl.w 36(a4)
    roxl.w 34(a4)
    roxl.w 32(a4)
    roxl.w 30(a4)
    roxl.w 28(a4)
    roxl.w 26(a4)
    roxl.w 24(a4)
    roxl.w 22(a4)
    roxl.w 20(a4)
    roxl.w 18(a4)
    roxl.w 16(a4)
    roxl.w 14(a4)
    roxl.w 12(a4)
    roxl.w 10(a4)
    roxl.w 8(a4)
    roxl.w 6(a4)
    roxl.w 4(a4)
    roxl.w 2(a4)
    roxl.w (a4)
    move.l a3,a4
    add.w #40,a4
    dbra d7,.Scroll_Zeile
    dbra d6,.Scroll_Main
.Text_Reset
    lea LaufSchrift_Text(pc),a6
    add.l LaufSchriftTextPos(pc),a6
    moveq #0,d7
    move.b (a6),d7
    bne.s .Text_OK
    lea LaufSchriftTextPos(pc),a5
    clr.l (a5)
    bra.s .Text_Reset
.Text_OK
    sub.b #" ",d7
    lsl.w #8,d7
    lsl.w #1,d7
    lea CharImZW(pc),a0
    tst.w (a0)
    bne.s .Buchstaben_Zeichenen
    not.w (a0)
    lea Zeichensatz_Zwischenspeicher,a0
    lea LaufSchrift_Zeichensatz,a6
    add.l d7,a6
    moveq #127,d0
.Copy_Zeichen
    move.l (a6)+,(a0)+
    dbra d0,.Copy_Zeichen
.Buchstaben_Zeichenen
    move.l BitMapPointer(pc),a5
    lea Zeichensatz_Zwischenspeicher,a0
    moveq #3,d7
.Copy_oberstes_Bit
    move.l (a5)+,a4
    add.w #40*224,a4
    move.l a0,a1
    moveq #30,d2
.cob_Loop
    move.b (a1),d0
    and.w #% 10000000,d0
    rol.b #1,d0
    or.b d0,39(a4)
    add.w #40,a4
    addq.w #4,a1
    dbra d2,.cob_Loop
    add.w #128,a0
    dbra d7,.Copy_oberstes_Bit
    lea Zeichensatz_Zwischenspeicher,a0
    moveq #3,d7
.Scroll_ZW
    move.l a0,a1
    moveq #30,d6
.Scroll_ZW1
    andi.b #% 01111,CCR
    roxl.w 2(a1)
    roxl.w (a1)
    addq.w #4,a1
    dbra d6,.Scroll_ZW1
    add.w #128,a0
    btst #6,$bfe001
    beq.s LaufSchrift_Ende1
    dbra d7,.Scroll_ZW
    lea PixelGeScrollt(pc),a0
    subq.w #1,(a0)
    bne .Loop
    move.w #31,(a0)
    lea CharImZW(pc),a0
    clr.w (a0)
    lea LaufSchriftTextPos(pc),a5
    addq.l #1,(a5)
    bra .Text_Reset
LaufSchrift_Ende1
    move.l _IntuitionBase(pc),a6
    lea LaufSchriftWindowPointer(pc),a0
    tst.l (a0)
    beq.s Kein_LaufSchriftWindow
    move.l (a0),a0
    jsr _LVOCloseWindow(a6)
Kein_LaufSchriftWindow
    lea LaufSchriftScreenPointer(pc),a0
    tst.l (a0)
    beq.s LaufSchrift_Ende
    move.l (a0),a0
    jsr _LVOCloseScreen(a6)
LaufSchrift_Ende
    rts
LaufSchriftScreenTags
    DL SA_Left,0
    DL SA_Top,0
    DL SA_Width,320
    DL SA_Height,256
    DL SA_Depth,4
    DL SA_Type,CUSTOMSCREEN
    DL SA_Colors,ScreenColors2
    DL TAG_DONE
ScreenColors2
ScreenColors:
    DW 0,$00,$00,$00
    DW 1,$0F,$0F,$0F
    DW 2,$0E,$0E,$0F
    DW 3,$0D,$0D,$0F
    DW 4,$0B,$0D,$0F
    DW 5,$0A,$0C,$0F
    DW 6,$09,$0B,$0F
    DW 7,$08,$0A,$0E
    DW 8,$08,$09,$0C
    DW 9,$07,$08,$0B
    DW 10,$06,$07,$0A
    DW 11,$05,$06,$08
    DW 12,$04,$05,$07
    DW 13,$04,$04,$06
    DW 14,$03,$03,$04
    DW 15,$02,$02,$03
    DW $FFFF,$00,$00,$00
LaufSchriftWindowTags
    DL WA_Left,0
    DL WA_Top,0
    DL WA_Width,320
    DL WA_Height,256
    DL WA_IDCMP,IDCMP_MOUSEBUTTONS
    DL WA_Flags,WFLG_BORDERLESS!WFLG_SMART_REFRESH!WFLG_RMBTRAP|WFLG_ACTIVATE
    DL WA_CustomScreen
LaufSchriftScreenPointer1 DL 0
    DL TAG_DONE
LaufSchriftScreenPointer DL 0
LaufSchriftWindowPointer DL 0
LaufSchriftRastPort DL 0
BitMapPointer DL 0
LaufSchriftTextPos DL 0
CharImZW DW 0
PixelGeScrollt DW 31
LaufSchrift_Text
    DB "01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ AMIGA-FOREVER!"
    DB "          ",0
    even
LaufSchrift_Zeichensatz
    incbin Assembler:codes/tools/Laufschrift/Intro_Zeichensatz
    SECTION "Gfx-Data",DATA_C
LeerMausData DL 0,0,0,0
    SECTION "BSS-Daten",BSS
Zeichensatz_Zwischenspeicher
    DS.B 512
    END


Das Computermuseum per Mail kommentieren oder korrigieren

Erstellt durch: PaSo's MuseumsWelt - V3.06.01 Edition #Neuland / Datenschutz-Grundverordnung (DSGVO)
Datensatz geändert am: 15.08.2019 01:41