]> git.sur5r.net Git - cc65/blobdiff - asminc/smc.inc
fixup conio.c some more. also includes merge of upstream/master because git is retarded.
[cc65] / asminc / smc.inc
index 42dcb1055b4ffc55c79540ffbacdc4f60a2cb747..383417c3d2f0ee8a772b5ac08853fcf8645c7cb6 100644 (file)
 ;    distribution.\r
 ;\r
 \r
-.define _SMCDesignator .mid(0, .tcount(label) - 1, label) .ident(.concat(.string(.right(1, label)), "_SMC"))\r
-.define _SMCAlias .mid(0, .tcount(alias) - 1, alias) .ident(.concat(.string(.right(1, alias)), "_SMC"))\r
+.define _SMCDesignator  .mid(0, .tcount(label) - 1, label) .ident(.concat(.string(.right(1, label)), "_SMC"))\r
+.define _SMCAlias       .mid(0, .tcount(alias) - 1, alias) .ident(.concat(.string(.right(1, alias)), "_SMC"))\r
 .define SMC_AbsAdr      $FADE\r
-.define SMC_ZpAdr               $00\r
+.define SMC_ZpAdr       $00\r
 .define SMC_Opcode      nop\r
-.define SMC_Value               $42\r
+.define SMC_Value       $42\r
 \r
 .macro SMC_OperateOnValue opcode, label\r
         opcode _SMCDesignator+1\r
 .export _SMCAlias := _SMCDesignator\r
 .endmacro\r
 \r
-.macro  SMC    label, statement\r
+.macro  SMC     label, statement\r
 _SMCDesignator: statement\r
 .endmacro\r
 \r
 .macro SMC_TransferOpcode       label, opcode, register\r
 .if .paramcount = 2 .or .match ({register}, a)\r
-                        lda #opcode\r
-                        sta _SMCDesignator\r
+        lda #opcode\r
+        sta _SMCDesignator\r
 .elseif .match ({register}, x)\r
-                        ldx #opcode\r
-                        stx _SMCDesignator\r
+        ldx #opcode\r
+        stx _SMCDesignator\r
 .elseif .match ({register}, y)\r
-                        ldy #opcode\r
-                        sty _SMCDesignator\r
+        ldy #opcode\r
+        sty _SMCDesignator\r
 .endif\r
 .endmacro\r
 \r
 .macro SMC_LoadOpcode   label, register\r
 .if .paramcount = 1 .or .match ({register}, a)\r
-                        lda _SMCDesignator\r
+        lda _SMCDesignator\r
 .elseif .match ({register}, x)\r
-                        ldx _SMCDesignator\r
+        ldx _SMCDesignator\r
 .elseif .match ({register}, y)\r
-                        ldy _SMCDesignator\r
+        ldy _SMCDesignator\r
 .endif\r
 .endmacro\r
 \r
 .macro SMC_StoreOpcode  label, register\r
 .if .paramcount = 1 .or .match ({register}, a)\r
-                        sta _SMCDesignator\r
+        sta _SMCDesignator\r
 .elseif .match ({register}, x)\r
-                        stx _SMCDesignator\r
+        stx _SMCDesignator\r
 .elseif .match ({register}, y)\r
-                        sty _SMCDesignator\r
+        sty _SMCDesignator\r
 .endif\r
 .endmacro\r
 \r
 .macro SMC_ChangeBranch         label, destination, register\r
 .if .paramcount = 2 .or .match ({register}, a)\r
-                        lda #(destination - _SMCDesignator -2)\r
-                        sta _SMCDesignator+1\r
+        lda #(destination - _SMCDesignator -2)\r
+        sta _SMCDesignator+1\r
 .elseif .match ({register}, x)\r
-                        ldx #(destination - _SMCDesignator - 2)\r
-                        stx _SMCDesignator+1\r
+        ldx #(destination - _SMCDesignator - 2)\r
+        stx _SMCDesignator+1\r
 .elseif .match ({register}, y)\r
-                        ldy #(destination - _SMCDesignator - 2)\r
-                        sty _SMCDesignator+1\r
+        ldy #(destination - _SMCDesignator - 2)\r
+        sty _SMCDesignator+1\r
 .endif\r
 .endmacro\r
 \r
 .macro SMC_TransferValue        label, value, register\r
 .if .paramcount = 2 .or .match ({register}, a)\r
-                        lda value\r
-                        sta _SMCDesignator+1\r
+        lda value\r
+        sta _SMCDesignator+1\r
 .elseif .match ({register}, x)\r
-                        ldx value\r
-                        stx _SMCDesignator+1\r
+        ldx value\r
+        stx _SMCDesignator+1\r
 .elseif .match ({register}, y)\r
-                        ldy value\r
-                        sty _SMCDesignator+1\r
+        ldy value\r
+        sty _SMCDesignator+1\r
 .endif\r
 .endmacro\r
 \r
 .macro SMC_LoadValue    label, register\r
 .if .paramcount = 1 .or .match ({register}, a)\r
-                        lda _SMCDesignator+1\r
+        lda _SMCDesignator+1\r
 .elseif .match ({register}, x)\r
-                        ldx _SMCDesignator+1\r
+        ldx _SMCDesignator+1\r
 .elseif .match ({register}, y)\r
-                        ldy _SMCDesignator+1\r
+        ldy _SMCDesignator+1\r
 .endif\r
 .endmacro\r
 \r
 .macro SMC_StoreValue   label, register\r
 .if .paramcount = 1 .or .match ({register}, a)\r
-                        sta _SMCDesignator+1\r
+        sta _SMCDesignator+1\r
 .elseif .match ({register}, x)\r
-                        stx _SMCDesignator+1\r
+        stx _SMCDesignator+1\r
 .elseif .match ({register}, y)\r
-                        sty _SMCDesignator+1\r
+        sty _SMCDesignator+1\r
 .endif\r
 .endmacro\r
 \r
@@ -146,77 +146,76 @@ SMC_StoreValue label, register
 \r
 .macro SMC_TransferHighByte     label, value, register\r
 .if .paramcount = 2 .or .match ({register}, a)\r
-                        lda    value\r
-                        sta _SMCDesignator+2\r
+        lda value\r
+        sta _SMCDesignator+2\r
 .elseif .match ({register}, x)\r
-                        ldx value\r
-                        stx _SMCDesignator+2\r
+        ldx value\r
+        stx _SMCDesignator+2\r
 .elseif .match ({register}, y)\r
-                        ldy value\r
-                        sty _SMCDesignator+2\r
+        ldy value\r
+        sty _SMCDesignator+2\r
 .endif\r
 .endmacro\r
 \r
 .macro SMC_LoadHighByte label, register\r
 .if .paramcount = 1 .or .match ({register}, a)\r
-                        lda _SMCDesignator+2\r
+        lda _SMCDesignator+2\r
 .elseif .match ({register}, x)\r
-                        ldx _SMCDesignator+2\r
+        ldx _SMCDesignator+2\r
 .elseif .match ({register}, y)\r
-                        ldy _SMCDesignator+2\r
+        ldy _SMCDesignator+2\r
 .endif\r
 .endmacro\r
 \r
 .macro SMC_StoreHighByte        label, register\r
 .if .paramcount = 1 .or .match ({register}, a)\r
-                        sta _SMCDesignator+2\r
+        sta _SMCDesignator+2\r
 .elseif .match ({register}, x)\r
-                        stx _SMCDesignator+2\r
+        stx _SMCDesignator+2\r
 .elseif .match ({register}, y)\r
-                        sty _SMCDesignator+2\r
+        sty _SMCDesignator+2\r
 .endif\r
 .endmacro\r
 \r
-\r
 .macro SMC_TransferAddressSingle        label, address, register\r
 .if .paramcount = 2 .or .match ((register), a)\r
-        .if (.match (.left (1, {adress}), #))\r
+        .if (.match (.left (1, {address}), #))\r
                 ; immediate mode\r
-        lda     #<(.right (.tcount ({adress})-1, {adress}))\r
+                lda #<(.right (.tcount ({address})-1, {address}))\r
                 sta _SMCDesignator+1\r
-        lda #>(.right (.tcount ({adress})-1, {adress}))\r
+                lda #>(.right (.tcount ({address})-1, {address}))\r
                 sta _SMCDesignator+2\r
-    .else\r
-        ; assume absolute or zero page\r
-                lda    address\r
+        .else\r
+                ; assume absolute or zero page\r
+                lda address\r
                 sta _SMCDesignator+1\r
                 lda 1+(address)\r
                 sta _SMCDesignator+2\r
         .endif\r
 .elseif .match ((register), x)\r
-        .if (.match (.left (1, {adress}), #))\r
+        .if (.match (.left (1, {address}), #))\r
                 ; immediate mode\r
-        ldx     #<(.right (.tcount ({adress})-1, {adress}))\r
+                ldx #<(.right (.tcount ({address})-1, {address}))\r
                 stx _SMCDesignator+1\r
-        ldx #>(.right (.tcount ({adress})-1, {adress}))\r
+                ldx #>(.right (.tcount ({address})-1, {address}))\r
                 stx _SMCDesignator+2\r
-    .else\r
-        ; assume absolute or zero page\r
-                ldx    address\r
+        .else\r
+                ; assume absolute or zero page\r
+                ldx address\r
                 stx _SMCDesignator+1\r
                 ldx 1+(address)\r
                 stx _SMCDesignator+2\r
         .endif\r
 .elseif .match ((register), y)\r
-        .if (.match (.left (1, {adress}), #))\r
+        .if (.match (.left (1, {address}), #))\r
                 ; immediate mode\r
-        ldy     #<(.right (.tcount ({adress})-1, {adress}))\r
+                ldy #<(.right (.tcount ({address})-1, {address}))\r
                 sty _SMCDesignator+1\r
-        ldy #>(.right (.tcount ({adress})-1, {adress}))\r
+                ldy #>(.right (.tcount ({address})-1, {address}))\r
                 sty _SMCDesignator+2\r
-    .else\r
-        ; assume absolute or zero page\r
-                ldy    address\r
+        .else\r
+                ; assume absolute or zero page\r
+                ldy address\r
                 sty _SMCDesignator+1\r
                 ldy 1+(address)\r
                 sty _SMCDesignator+2\r
@@ -224,17 +223,16 @@ SMC_StoreValue label, register
 .endif\r
 .endmacro\r
 \r
-\r
 .macro SMC_TransferAddress      label, address\r
-.if (.match (.left (1, {adress}), #))\r
+.if (.match (.left (1, {address}), #))\r
         ; immediate mode\r
-        lda    #<(.right (.tcount ({adress})-1, {adress}))\r
+        lda #<(.right (.tcount ({address})-1, {address}))\r
         sta _SMCDesignator+1\r
-        ldx #>(.right (.tcount ({adress})-1, {adress}))\r
+        ldx #>(.right (.tcount ({address})-1, {address}))\r
         stx _SMCDesignator+2\r
 .else\r
         ; assume absolute or zero page\r
-        lda    {address}\r
+        lda {address}\r
         sta _SMCDesignator+1\r
         ldx 1+{address}\r
         stx _SMCDesignator)+2\r
@@ -242,8 +240,6 @@ SMC_StoreValue label, register
 .endmacro\r
 \r
 .macro SMC_StoreAddress label\r
-                sta _SMCDesignator+1\r
-                stx _SMCDesignator+2\r
+        sta _SMCDesignator+1\r
+        stx _SMCDesignator+2\r
 .endmacro\r
-\r
-\r